正在加载图片...
.314. 附录B数值计算中的误差 B3.3算法的稳定性 例B.5近似计算 ==12 解.通过观察可知 因此。 =-58- (B.1) 易知5=ln6-ln5≈0.182(保留三位有效数字),利用上面的递推公式可得(保留三位有效数字) S1=0.0900,2=0.0500,53=0.0833,54=-0.166, 55=1.03,56=-4.98,S7=25.0,58=-125. 另一方面,我们有 1 B.2) 因此,上面计算的S4,,Ss显然是不对的.原因是什么呢:误差! 设S是Sn的近似值,则 4=8-8=(日-5)(日-58)=-1--=-4-山 即误差是以5倍速度增长,这说明计算过程是不稳定的,因此我们不能使用该算法。 事实上,递推公式(B.1)可以改写为 S-1= 因此,我们可以先估计S的值,然后通过反向递推,得到其它值 我们可以根据(B.2)对S。做简单的估计,即 s=(若女+女)=o 于是 5=0.0209,56=0.0244,5=0.0285,54=0.0343 53=0.0431,52=0.0580,S1=0.0884,50=0.182. 对比精确值S:可知,此时计算出来的Sn精度要好很多. 通过误差分析可知,误差是以号的速度减小,因此计算过程是稳定的 算法的稳定性:通俗地讲,对于某个给定的算法,如果输入数据的误差在运算过程不断增长而 得不到控制,那么我们就说该算法是数值不稳定的,否则就是数值稳定的. 假设输人数据的误差为eo,经n次运算后的计算结果的误差为en·如果en≈Gneo,其中9 是与n无关的常数,则称误差是线性增长的.如果en≈c2k”e0,其中c2,k是与n无关的常数且 http://math.ecnu.edu.cn/-jypan仅供课堂教学使用,请勿外传 · 314 · 附录 B 数值计算中的误差 B.3.3 算法的稳定性 例 B.5 近似计算 Sn = ˆ 1 0 x n x + 5 dx, n = 1, 2, . . . , 8. 解. 通过观察可知 Sn + 5Sn−1 = ˆ 1 0 x n + 5x n−1 x + 5 dx = ˆ 1 0 x n−1 = 1 n , 因此, Sn = 1 n − 5Sn−1. (B.1) 易知 S0 = ln 6 − ln 5 ≈ 0.182 (保留三位有效数字), 利用上面的递推公式可得 (保留三位有效数字) S1 = 0.0900, S2 = 0.0500, S3 = 0.0833, S4 = −0.166, S5 = 1.03, S6 = −4.98, S7 = 25.0, S8 = −125. 另一方面, 我们有 1 6(n + 1) = ˆ 1 0 x n 6 dx ≤ ˆ 1 0 x n x + 5 dx ≤ ˆ 1 0 x n 5 dx = 1 5(n + 1). (B.2) 因此, 上面计算的 S4, . . . , S8 显然是不对的. 原因是什么呢? 误差! 设 S ∗ n 是 Sn 的近似值, 则 e(S ∗ n ) = S ∗ n − Sn =  1 n − 5S ∗ n−1  −  1 n − 5Sn−1  = −5(S ∗ n−1 − Sn−1) = −5e(S ∗ n−1 ). 即误差是以 5 倍速度增长, 这说明计算过程是不稳定的, 因此我们不能使用该算法. 事实上, 递推公式 (B.1) 可以改写为 Sn−1 = 1 5n − 1 5 Sn. 因此, 我们可以先估计 S8 的值, 然后通过反向递推, 得到其它值. 我们可以根据 (B.2) 对 S8 做简单的估计, 即 S8 ≈ 1 2 ˆ 1 0 x n 6 dx + ˆ 1 0 x n 5 dx  ≈ 0.0204. 于是 S7 = 0.0209, S6 = 0.0244, S5 = 0.0285, S4 = 0.0343, S3 = 0.0431, S2 = 0.0580, S1 = 0.0884, S0 = 0.182. 对比精确值 S ∗ n 可知, 此时计算出来的 Sn 精度要好很多. 通过误差分析可知, 误差是以 1 5 的速度减小, 因此计算过程是稳定的. □ 算法的稳定性: 通俗地讲, 对于某个给定的算法, 如果输入数据的误差在运算过程不断增长而 得不到控制, 那么我们就说该算法是数值不稳定的, 否则就是数值稳定的. 假设输入数据的误差为 e0, 经 n 次运算后的计算结果的误差为 en. 如果 en ≈ c1ne0, 其中 c1 是与 n 无关的常数, 则称误差是线性增长的. 如果 en ≈ c2k n e0, 其中 c2, k 是与 n 无关的常数且 http://math.ecnu.edu.cn/~jypan
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有