第1章 误差分析利用计算机进行数值计算几乎全都是近似计算:计算机所能表示的数的个数是有限的,我们需要用到的数的个数是无限的,所以在绝大多数情况下,计算机不可能进行绝对精确的计算。
定义:设x *为某个量的真值,x为 x *的近似值,称x *- x为近似值x的误差,通常记为e(x),以表明它是与x有关的量。
与误差作斗争是时计算方法研究的永恒的主体,由于时间和经验的关系,我们仅对这方面的只是做一个最基本的介绍。
1.1 误差的来源误差的来源是多方面的,但主要来源为:描述误差,观测误差,截断误差和舍入误差。
1描述误差为了便于数学分析和数值计算,人们对实际问题的数学描述通常只反映出主要因素之间的数量关系,而忽略次要因素的作用,由此产生的误差称为描述误差。对实际问题进行数学描述通常称为是建立数学模型,所以描述误差也称为是模型误差。
2观测误差描述实际问题或实际系统的数学模型中的某些参数往往是通过实验观测得到的。由试验得到的数据与实际数据之间的误差称为观测误差。
比如我们用仪表测量电压、电流、压力、温度时,指针通常会落在两个刻度之间,读数的最后一位只能是估计值,从而也产生了观测误差。
3.舍入误差几乎所有的计算工具,当然也包括电子计算机,都只能用一定数位的小数来近似地表示数位较多或无限的小数,由此产生的误差称为舍入误差。
4.截断误差假如真值x* 为近似值系列{xn}的极限,由于计算机只能执行有限步的计算过程,所以我们只能选取某个xN作为x *的近似值,由此产生的误差称为截断误差。
我们可以通过函数的泰勒展式来理解截断误差:设f(x)可以在x=x0处展开为泰勒级数,记fN(x)为前N+1项的和,RN(x)为余项,如果用fN(x)近似表示f(x),则RN(x)就是截断误差。
提示:在我们的课程中,重点是考虑尽可能减小截断误差,尽可能消除舍入误差的副作用。
1.2 误差基本概念
1.绝对误差与相对误差定义:设x *为某个量的真值,x为 x *的近似值,我们称 |x *- x|为近似值x的绝对误差;称|x *- x|/|x*|为近似值x的相对误差。
注释:我们在实际进行误差分析时,所讨论的误差几乎全都是绝对误差,所以在口语中,我们也把绝对误差简称为误差。
提示:在实际应用中,我们通常是用|x *- x|/|x|来表示x的相对误差,这样会使得有关的计算和理论分析更简单一些。
2 误差限的概念由于在绝大多数情况下我们无法确定出真值x*,所以近似值x的误差、相对误差、以及绝对误差也都是无法确定的,但是我们总有办法估计出它们的范围。这就是误差限的概念。
定义 设x为真值x* 的近似值:
若e>0满足条件|x*-x|≤e,则称e为x的绝对误差限(或误差限);
若er>0满足条件|x*-x|/|x|≤er,则称er为x的相对误差限.
提示:由绝对误差限和相对误差限的定义可知,它们满足关系
e = er·|x|,所以只要知道其中的任意一个,即可求出另外一个。
3.数的近似表示若x为真值x 的近似值,且误差限为e,那么我们可以把真值x 表示为 x*=x±e
提示:若x为真值x *的近似值,且误差限为e,那么我们有
x-e≤x*≤x+e.
1.3 有效数字
1.有效数字的概念定义:如果真值x *的近似值x的绝对误差限是它的某一个数位的半个单位,则称近似值x准确到这一位,且这一位一直到最左边第一个非零数字为止的所有数字都称为有效数字,有效数字的个数称为有效数字的位数。
记号:若近似值x有p位有效数字,那么我们可以把x表示为
x=±0.x1x2…xp×10n
其中x1,x2,…,xp∈{0,1,…,9},且x1≠0.
提示:我们在书写近似数的时候,不要忽略了小数点右边最后面的零,例如,0.6,0.60,0.600所表示的数是相同的,但隐含说明了有效数字的位数是不同的。
2.四舍五入法若x *的近似值为
x=±0.x1x2…xm×10n
其中x1,x2,…,xm∈{0,1,…,9},且x1≠0.
如果要保留x有p(1≤p≤m) 位有效数字,即(|x*-x|≤0.5×10n-p),那么我们可以把x的小数点后的第p+1位四舍五入,称为使x保留p位有效数字。
3.根据有效数字估算相对误差限若x*的近似值x有p位有效数字,那么我们有
由此不难得到
为了得到与具体的数无关的相对误差限的表达形式,我们可以把x1取为最小值1,从而有

4.根据相对误差限估算有效数字位数注释:实际中几乎不会有这种类型的问题,为了完整性,所以做一个简单的提示。
若近似值的相对误差限满足
则x至少有p位有效数字
1.4 利用微分进行误差估计数值计算可理解为求某个函数y=f(x)的值,假如输入值x没有误差,那么输出值y仅含舍入误差和截断误差,它们不会影响结果的有效性;如果x是真值x*与一个误差项Δx之和,那么那么输出值y与真值y*之间的误差Δy主要是由Δx产生的,可以形象地理解为在计算过程中的误差传播。
1函数的一阶泰勒展式设f(t)在x*附近处处连续可导,对于绝对值充分小的Δx,记x= x*+Δx,我们有:
f(x*+Δx)= f(x*)+ f' (x*)·Δx + o(Δx)
从数值计算的角度看,假如x*是某个量的真值,因此也是无法准确得到的,所以上面的f(x*),f' (x*)都是无法得到的,所以我们要改换一下形式,x* = x +Δx,从而有
f(x*)=f(x+Δx)= f(x)+ f' (x)·Δx + o(Δx)
我们可以利用这个公式估算“计算结果”的误差.
2利用微分估计绝对误差在计算方法课程中,我们可以这样来理解上面的一阶泰勒展式:假设f是一个系统,x*是我们希望输入的真值,从而得到希望输出的真值f(x*)。但是实际输入的是x*的近似值x=x*+Δx,其误差为Δx,如果用f(x)作为f(x*)的近似值,则误差为
Δy =f' (x)·Δx + o(Δx)
略去比Δx高级的无穷小项,两边取绝对值,则有:
|Δy|≈|f' (x)·Δx|
结论:在微分公式df(x)= f'(x)dx中如果把|dx|解释为x的绝对误差(限),那么|df(x)|就是所得到的计算结果f(x)的绝对误差限。
3.利用微分估计相对误差当我们把f(x)的绝对误差(限)近似地表示为df(x)时,我们可以进一步得到f(x)的相对误差(限)为。
结论:我们可以把| dln[f(x)]|)作为f(x)的相对误差限的计算公式。
提示:虽然有时候f(x)可以取负值,但进行误差分析时,可以将它反号而不影响误差分析的结果。
1.4四则运算的误差估计因为所有的计算工具都只能进行有限数位的数的四则运算,所以我们应当掌握四则运算的误差分析方法。
不是一般性,我们只讨论两个正数的四则运算的误差估计问题,为此,假设x>y>0,x,y的绝对误差限分别为|dx|,|dy|.
和与差的绝对误差

结论:和或差的绝对误差(限)不会超过所有加数的绝对误差(限)的和。
注意:在实际应用中,我们的有效数字通常是由四舍五入得到的,所以误差的符号会均衡出现,所以绝对误差不会显著增大。
和的相对误差

结论:和的相对误差不超过加数中的较大的相对误差,或者说,和的相对误差有下降的趋势。
注意:如果两个加数的数量级相差较大,由于计算机要对位相加,所以较小的加数会扔掉许多有效数字,从而有可能产生较大的相对误差。
差的相对误差

若,则,从而有,此时数字稳定性很好。
若,则,从而x-y的相对误差会大大增大,此时数字稳定性非常糟糕。
积的绝对误差

商的绝对误差

当|x|充分大而|y|充分小时,都很小,从而商的绝对误差近似等于,此时,,所以会显著增大。
结论:绝对值较大的除以绝对值较小的数,上的绝对误差会显著增大,这有可能导致计算机数字上溢,因此数值稳定性可能不好。
积与商的相对误差


所以,即或上的相对误差不会超过相对误差的和。
1.5选用计算方法应遵循的规则
1,应当尽量避免绝对值相近的两个正数相减。
2,应当尽量避免绝对值较大的数除以绝对值较小的数。
3,应当防止“大数”吃“小数”。
4,尽可能减少运算次数,防止误差扩散。