理论教育 稳定的数值算法如何避免错误结果

稳定的数值算法如何避免错误结果

时间:2023-11-23 理论教育 版权反馈
【摘要】:人们把运算过程中舍入误差增长可以控制的计算公式称为稳定的数值算法,否则是不稳定的数值算法。对于一个稳定的计算过程,由于舍入误差不增大,因而不具体估计舍入误差也是可用的;而对于一个不稳定的计算过程,如果计算步骤太多,就可能出现错误结果。因此,在实际应用中应选用稳定的数值算法,尽量避免使用不稳定的数值算法。

稳定的数值算法如何避免错误结果

所谓算法,就是给定一些数据,按着某种规定的次序进行计算的一个运算序列。算法是一个近似的计算过程,选择一个算法,主要要求它的计算结果能达到给定的精度。一般而言,在计算过程中初始数据的误差和计算中产生的舍入误差总是存在的,而数值解是逐步求出的,前一步数值解的误差必然要影响到后一步数值解的精度。人们把运算过程中舍入误差增长可以控制的计算公式称为稳定的数值算法,否则是不稳定的数值算法。只有稳定的数值算法才可能给出可靠的计算结果,不稳定的数值算法毫无实用价值。下面用一个例子来简单介绍一下稳定性的概念。

在上述计算结果中,I4的近似值是负的,这个结果显然是错的。为什么会这样呢?这就是误差传播所引起的危害。由式(1.2.4)可看出,In-1的误差扩大到5倍后传给In,因而初值I0的误差对以后各步计算结果的影响随着n的增大愈来愈严重,这就造成I4的计算结果严重失真。

如果改变计算公式,先取一个In的近似值,用下面的公式倒过来计算In-1,In-2,…,I0,即(www.daowen.com)

显然,这样算出的I0与ln(1.2)的值比较符合。虽然初值I9很粗糙,但因为用式(1.2.5)计算时,误差是逐步衰减的,所以计算结果相当可靠。

比较以上两个计算方案,显然,前者是一个不稳定的数值算法,后者是一个稳定的数值算法。对于一个稳定的计算过程,由于舍入误差不增大,因而不具体估计舍入误差也是可用的;而对于一个不稳定的计算过程,如果计算步骤太多,就可能出现错误结果。因此,在实际应用中应选用稳定的数值算法,尽量避免使用不稳定的数值算法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈