发布网友 发布时间:2022-04-23 08:50
共1个回答
热心网友 时间:2022-06-18 14:33
在数值分析中,一般不讨论“模型误差”和“观测误差”。数值分析只研究用数学方法求解数学模型产生的误差,主要包括算法的截断误差和舍入误差。
当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。如果用泰勒多项式Pn(x)近似代替函数f(x),即
地球物理数据处理基础
则数值方法的截断误差是
地球物理数据处理基础
可见截断误差与算法的收敛性有关。如用泰勒多项式Pn(x)代替函数f(x),计算时要确定n。若n越大误差越小,则算法是收敛的;反之,若随着n的增大,截断误差随之增大,则称算法是发散的。
在用计算机进行数值计算时,由于计算机内存的字长有限,原始数据在计算机内部的储存会产生误差,计算过程又可能产生新的误差,这种误差称为舍入误差。例如,用3.14159近似代替π,产生的误差R=π-3.14159=0.0000026…,R就是舍入误差。在大型计算中运算次数太多,舍入误差一般很难估计,为此引入算法稳定性的概念。我们把运算过程舍入误差不增长的计算公式称为数值稳定的。这样,对于数值稳定的计算过程,可以不去估计具体的舍入误差,只是分析计算过程的数值稳定性,因而对运算过程中的误差积累问题进行定性分析是有重要意义的。
由此可见,在数值分析中除了研究数学问题的算法外,还要研究计算结果的误差是否满足精度要求,这就是误差估计问题。
下面举例说明误差分析的重要性。
[例]计算积分In=e-1∫10xnexdx,n=0,1,…,并估计误差。
解:由分部积分法可得计算In的递推公式:
地球物理数据处理基础
(1)算法A(顺序递推法)
首先算出I0=e-1∫10exdx=1-e-1,即要算出e-1,可用泰勒多项式展开,取n=7以前各项的和,并且精确到4位小数,计算得到e-1≈0.3679。
截断误差 计算过程中小数点后的第5位数字按四舍五入原则取舍,由此产生的舍入误差不作讨论。当取初值为 时,递推公式为
地球物理数据处理基础
计算结果如表2-1的 列,即
表2-1 两种算法计算结果
利用积分估计可知 而表2-1中 出现负值,显然是不正确的。这里计算公式与每步计算都是正确的,那么什么原因使计算结果错误呢?主要是初值 有误差 由此引起以后各步计算的误差为
地球物理数据处理基础
容易推出
地球物理数据处理基础
这说明 有误差e0,则 就有e0的n!倍误差。例如n=8,若 则|e8|=8!×|e0|>2,这就说明 完全不能近似I8了。
(2)算法B(逆序递推法)
现在换一种计算方案,取n=9,得
地球物理数据处理基础
我们粗略取 然后得倒序递推公式
地球物理数据处理基础
计算结果见表2-1的 列。我们发现 与I0的误差不超过10-4。由于 比 缩小了n!倍。因此,尽管 较大,但由于误差逐步缩小,故可用 近似In,此例说明我们应重视计算过程中的误差分析。