《数值计算的误差》由会员分享,可在线阅读,更多相关《数值计算的误差(12页珍藏版)》请在金锄头文库上搜索。
1、1.2 数值计算的误差数值计算的误差1.2.1 误差的来源误差的来源应用数学工具解决实际问题,首先,要对被描述的实际问题进行抽象、应用数学工具解决实际问题,首先,要对被描述的实际问题进行抽象、简化,得到实际的数学模型。数学模型与实际问题之间会出现的误差,我简化,得到实际的数学模型。数学模型与实际问题之间会出现的误差,我们称之为们称之为模型误差模型误差。其中其中 是由实验观测得到的常数,是由实验观测得到的常数, 则则称称 为模型误差,为模型误差, 是是 的观测误差。的观测误差。 例如,设一根铝棒在温度例如,设一根铝棒在温度t时的实际长度为时的实际长度为Lt , 在在t=0 时的实际长度时的实际长
2、度为为L0,用,用lt来表示铝棒在温度为来表示铝棒在温度为t时的长度计算值,并建立一个数学模型:时的长度计算值,并建立一个数学模型: 在数学模型中,通常要包含一些由观测数据确定的参在数学模型中,通常要包含一些由观测数据确定的参数。对数学模型中一些参数的观测结果一般不是绝对准确的。我们把观测数。对数学模型中一些参数的观测结果一般不是绝对准确的。我们把观测模型参数值产生的误差称为模型参数值产生的误差称为观测误差观测误差。在解实际问题时,数学模型往往很复杂,因而不易获得分析解,这就需在解实际问题时,数学模型往往很复杂,因而不易获得分析解,这就需要建立一套行之有效的近似方法和数值方法。我们可能用容易计
3、算的问题代要建立一套行之有效的近似方法和数值方法。我们可能用容易计算的问题代替不易计算的问题而产生误差,也可能用有限的过程代替无限的过程而产生替不易计算的问题而产生误差,也可能用有限的过程代替无限的过程而产生误差。我们将模型的准确解与用数值方法求得的准确解之间的误差称为误差。我们将模型的准确解与用数值方法求得的准确解之间的误差称为截断截断误差误差或或方法误差方法误差。例如,对函数例如,对函数当当|x|较小时,我们若用前三项作为较小时,我们若用前三项作为sinx的近似值,则截断误差的绝对值不超的近似值,则截断误差的绝对值不超过过在数值分析中,除了研究数学问题的算法外,还要研究计算结果的误差在数值
4、分析中,除了研究数学问题的算法外,还要研究计算结果的误差是否满足精度要求,这就是误差估计问题。在数值计算方法中,主要讨论的是否满足精度要求,这就是误差估计问题。在数值计算方法中,主要讨论的是截断误差和舍入误差。是截断误差和舍入误差。1.2.2 误差与有效数字误差与有效数字定义定义 1.1 设设 是某实数的精确值,是某实数的精确值, 是它的一个近似值,则称是它的一个近似值,则称 为近似值为近似值 的的绝对误差绝对误差,或简称,或简称误差误差。 称为称为 的的相对误差相对误差。 用计算机做数值计算时,一般也不能获得数值计算公式的准确解,需要用计算机做数值计算时,一般也不能获得数值计算公式的准确解,
5、需要对原始数据、中间结果和最终结果取有限位数字。我们将计算过程中取有对原始数据、中间结果和最终结果取有限位数字。我们将计算过程中取有限位数字进行运算而引起的误差称为限位数字进行运算而引起的误差称为舍入误差舍入误差。 例如,例如, 如果我们取小数点后四位数字,则如果我们取小数点后四位数字,则 就是舍入就是舍入误差。误差。当当 时,相对误差没有意义。在实际计算中,精确值时,相对误差没有意义。在实际计算中,精确值 往往是不往往是不知道的,所以通常把知道的,所以通常把 作为作为 的相对误差。的相对误差。 定义定义1.2 设设 是某实值的精确值,是某实值的精确值, 是它的一个近似值,并可对是它的一个近似
6、值,并可对 的绝对误差作估计的绝对误差作估计 ,则称,则称 是是 的的绝对误差界绝对误差界,或者称,或者称误误差界差界。称。称 是是 的的相对误差界相对误差界。 例例1.1 我们知道我们知道 若取近似值若取近似值 ,则,则 ,可以估计绝对误差界为,可以估计绝对误差界为0.002,相对误差界为相对误差界为0.0006。 解解 因为实际问题中所截取的近似数,其绝对误差界一般不超过最小刻因为实际问题中所截取的近似数,其绝对误差界一般不超过最小刻度的半个单位,所以当度的半个单位,所以当 时,有时,有 ,其相对误差界为,其相对误差界为例例1.2 1.2 测量一木板长是测量一木板长是954cm954cm,
7、问测量的相对误差界是是多大?,问测量的相对误差界是是多大? 定义定义1.3 设设 是是 的一个近似值,将的一个近似值,将 写成写成 (1.2.1)它可以是有限或无限小数的形式,其中它可以是有限或无限小数的形式,其中 是是0,1,9中的一中的一个数字,个数字, 为整数。如果为整数。如果则称则称 为为 的具有的具有 位位有效数字有效数字的近似值。的近似值。可见,若近似值可见,若近似值 的误差界是某一位的半个单位,该位到的误差界是某一位的半个单位,该位到 的第一的第一位非零数字共有位非零数字共有 位位有效数字有效数字的近似值。的近似值。通常在通常在 的准确值已知的情况下,若要取有限位数的数字作为近似
8、值,的准确值已知的情况下,若要取有限位数的数字作为近似值,就采用四舍五入得到的近似值,其绝对误差界可以取被保留的最后数位上的就采用四舍五入得到的近似值,其绝对误差界可以取被保留的最后数位上的半个单位。半个单位。显然,近似值的有效数字位数越多,相对误差越小,反之也对。下面,我显然,近似值的有效数字位数越多,相对误差越小,反之也对。下面,我们给出相对误差界与有效数字的关系。们给出相对误差界与有效数字的关系。 定理定理1.1 设设 的近似值的近似值 有(有(1.2.1)的表达式。)的表达式。(1)如果)如果 有有 位有效数字,则位有效数字,则(1.2.2)按定义,按定义,3.14和和3.142分别是
9、具有三位和四位有效数字的近似值。分别是具有三位和四位有效数字的近似值。例如例如证证 由(由(1.2.1)可得到)可得到(1.2.4)所以,当所以,当 有有 位有效数字时,位有效数字时,即(即(1.2.3)得证。)得证。则则 至少具至少具 位有效数字。位有效数字。(2)如果)如果(1.2.3)由(由(1.2.3)和()和(1.2.4)有)有 即说明即说明 有有 位有效数字,(位有效数字,(2)得证。)得证。 例例1.3 已知近似数已知近似数 的相对误差界为的相对误差界为0.3%,问,问 至少有几位有效数至少有几位有效数字?字?1.2.3 函数求值的误差估计函数求值的误差估计 对一元函数对一元函数
10、 , 自变量自变量 x的一个近似值为的一个近似值为 ,以,以 近似近似 ,其误差界记作,其误差界记作 。若。若 具有具有2阶连续导数,阶连续导数,与与 的比值不太大,则可忽略的比值不太大,则可忽略 的二次项,由的二次项,由Taylor展开式得到展开式得到 的一个近似误差界:的一个近似误差界: 解解 设设 有有 位有效数字,由于位有效数字,由于 的第一个有效数的第一个有效数 没有具体给定,没有具体给定,而我们知道而我们知道 一定是一定是1,2, ,9中的一个,由中的一个,由故由(故由(1.2.3)式知)式知 =2,即,即 至少有至少有2位有效数字位有效数字。Ax其中其中 可以得到函数值的一个近可
11、以得到函数值的一个近似误差界:似误差界: 对对n元函数元函数 ,自变量,自变量 的近似值分别为的近似值分别为 ,则有,则有特别地,对特别地,对 有有同样,可以得到同样,可以得到解解 这里这里 并且有并且有 于是有误差界于是有误差界相对误差界相对误差界 例例1.4 设有长为设有长为 ,宽为宽为 的某场地。现测得的某场地。现测得 的近似值的近似值 M,d 的近似值的近似值 =90M,并已知它们的差界为,并已知它们的差界为 试估计该场地面积试估计该场地面积 的误差界和相对误差界。的误差界和相对误差界。例例1.5 设有三个近似数设有三个近似数它们都有三位有效数字。试计算它们都有三位有效数字。试计算 的
12、误差界,并问的误差界,并问 的计算结的计算结果能有几位有效数字?果能有几位有效数字? 解解 于是有误差界于是有误差界 相对误差界相对误差界因为因为 所以所以 能有两位有效数字。能有两位有效数字。1.2.4 计算机中数的表示和舍入误差计算机中数的表示和舍入误差 任意一个非零实数用(任意一个非零实数用(1.2.1)表示,是规格化的十进制科学记数方法。)表示,是规格化的十进制科学记数方法。在计算机中通常采用二进制的数系(或其变形的十六进制等),并且表在计算机中通常采用二进制的数系(或其变形的十六进制等),并且表示成与十进制类似的规格化形式,即浮点形式示成与十进制类似的规格化形式,即浮点形式十进制输入
13、计算机时转换成二进制,并对十进制输入计算机时转换成二进制,并对 位后面的数做舍入处理,使位后面的数做舍入处理,使得尾数为得尾数为 位,因此一般都有舍入误差。两个二进制数作算术运算时,对位,因此一般都有舍入误差。两个二进制数作算术运算时,对计算结果也要作类似计算结果也要作类似 的舍入处理,使得尾数为的舍入处理,使得尾数为 位,从而也有舍入误差。位,从而也有舍入误差。在实现计算时,计算的最后结果与计算的精确解之间的误差,从根本上在实现计算时,计算的最后结果与计算的精确解之间的误差,从根本上说是由机器的舍入误差造成的,包括输入数据和算术运算的舍入误差。因此说是由机器的舍入误差造成的,包括输入数据和算
14、术运算的舍入误差。因此有必要对计算机数的浮点表示方法和舍入误差有一个初步的了解。有时为了有必要对计算机数的浮点表示方法和舍入误差有一个初步的了解。有时为了分析某一个计算方法可能出现的误差现象,为了适应人们的习惯,我们会采分析某一个计算方法可能出现的误差现象,为了适应人们的习惯,我们会采用十进制实数系统进行误差分析。用十进制实数系统进行误差分析。 这里整数这里整数m称为称为阶码阶码,用二进制表示为,用二进制表示为 或或1 , S是阶的位数。小数是阶的位数。小数 称为称为尾数尾数,其中,其中 或或 t是尾数部位的位数。是尾数部位的位数。S和和t与具体的机器有关。与具体的机器有关。由于计算机的字长总是有限位的,所以计算机所能表示的数系是一个特由于计算机的字长总是有限位的,所以计算机所能表示的数系是一个特殊的离散集合,此集合的数称为殊的离散集合,此集合的数称为机器数机器数。