数值分析也称计算方法,它不仅是一种研究并解决数学问题的数值近似解的方法,而且是在计算机上使用的解数学问题的方法.它的计算对象是那些在理论上有解,而无法用手工计算的数学问题.
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)的误差小.
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库误差的来源1在线全文阅读。
相关推荐: