误差的来源1

更新时间:2024-05-28 23:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数值分析也称计算方法,它不仅是一种研究并解决数学问题的数值近似解的方法,而且是在计算机上使用的解数学问题的方法.它的计算对象是那些在理论上有解,而无法用手工计算的数学问题.

1.1 误差的来源

在运用计算方法解决实际问题的过程中,会出现各种各样的误差,必须注重误差分析.否则,一种合理的计算也可能得出错误的结果.

f(a?h)?f(a)h例1 用差商求f(x)?lnx在x?3处导数的近似值.

(1)取h?0.1和h?0.0001,用手工计算,取五位数字计算;

(2)取h?0.1 ,h?0.0001,h=0.000 000 000 000 001和h=0.000 000 000 000 000

f'(a)?1分别用MATLAB软件计算,取十五位数字计算;

(3)比较以上的运算结果,说明是否.

h越小则计算结果越准确.

1.4 数值计算中应注意的问题

从例1.3.4可以看出,一个问题的解决,往往要经过多次运算.每一步运算都可能产生误差,在反复多次计算的过程中,必然产生误差的传播和积累.显然,当误差积累偏大时,会使计算结果失真.因此,在每一步计算中,都应该防止产生误差升级的现象.

15?19x?7?(1?8?1)例1.4.1 求数的近似值.

解 (1)直接用MATLAB命令

>> x=(7^15)*(sqrt(1+8^(-19))-1)

运行后输出结果

x = 0

问题出现在两个相近的数1?8与1相减时,计算机运行程序

>>sqrt(1+8^(-19))-1

运行后输出结果

ans = 0

由于计算机硬件只支持有限位机器数的运算,因此在计算中可能引入和传播舍入误差.因为

?19?1的结果为0,计算机不能再与数7继续进行真实有效数字的严重损失,导致输出1?8的计算,所以,最后输出的结果与x的精确值不符.

?1915(2)如果化为

x?7?(1?815?19?1)?715?8?191?8?19?1,

再用MATLAB命令

>> x=(7^15)*( (8^(-19))/(sqrt(1+8^(-19))+1))

运行后输出结果

x = 1.6471e-005

8?19?1化为1?8?1后,计算机运行程序 这是因为1?8>> x= (8^(-19))/(sqrt(1+8^(-19))+1)

运行后的结果为

x =3.4694e-018

由于有效数字的损失甚少,所以运算的结果3.4694?10与x的精确值相差无几.

2y?ln(30?30?1)的近似值. 例 求数

?19?19-18再与7继续计算,最后输出的结果

15解 (1)直接用MATLAB程序 >> x=30;x1= sqrt(x^2-1)

运行后输出结果

x1 = 29.9833 输入MATLAB程序

>> x=30; x1=29.9833;y=log(x-x1)

运行后输出结果

y = -4.0923

(2)因为

ln(30?302?1)中的x?30很大,如果采用倒数变换法

z1?x?x2?1?即

1x?x2?1,

ln(30?302?1)?ln130?302?1??ln(30?900?1).

输入MATLAB程序

>> x=30;y=-log(x+sqrt(x^2-1))

运行后输出结果

y = -4.0941

(3)输入MATLAB程序

>> x=30; y=log(x-sqrt(x^2-1))

运行后输出结果

y = -4.0941 可见,(2)计算的近似值比(1)的误差小.

本文来源:https://www.bwwdw.com/article/7637.html

Top