matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

1.1 误差的来源

本章用matlab展示如何计算绝对误差和相对误差.

同时, 通过例子对matlab的浮点数表示进行说明.


例1.1.1  用差商处导数的近似值.取 ,=0.000 000 000 000 001和=0.000 000 000 000 000 1分别用MATLAB软件计算,取十五位数字计算.

解  在MATLAB工作窗口输入下面程序

>>a=3;h=0.1;y=log(a+h)-log(a);yx=y/h

运行后得

yx = 0.32789822822991

将此程序中改为0.000 1,运行后得

yx = 0.33332777790385

后者比前者好.再取h = 0.000 000 000 000 001,运行后得

yx = 0.44408920985006

不如前者好.取h = 0.000 000 000 000 000 1,运行后得

yx = 0

算出的结果反而毫无价值.

例1.1.2  分别求方程组在下列情况时的解,其中*.

(1);(2).

解 (1) 首先将方程组化为同解方程,然后在MATLAB工作窗口输入程序

 >> b=[2,2]';A=[1,1;1,1.01]; X=A\b

运行后输出当时,的解为

(2)同理可得,当时,的解为.

 

例1.1.3  计算的近似值.

解  泰勒级数

e ,  

,得

*.              (1.2)

这是一个无限过程,计算机无法求到精确值.只能在(1.2)取有限项时计算,再估计误差.如果取有限项

作为的值必然会有误差,根据泰勒余项定理可知其截断误差为

e.

如果取(1.2)的前九项,输入程序

>> n=8;

s=1;S =1;

for

k=1:n

s=s*k;

S=S+1/s,

end

s, S,

R=3/(s*(n+1))

>>S1=1+1+1/2+1/(1*2*3)+1/(1*2*3*4)+1/(1*2*3*4*5)+1/(1*2*3*4*5*6)+1/(1*2*3*4*5*6*7)+1/(1*2*3*4*5*6*7*8),

R1=3/(1*2*3*4*5*6*7*8*9)

运行后结果

S =                             R =

   2.71827876984127                8.267195767195768e-006

因为截断误差为

所以e的近似值e2.718 28.


欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3010100.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1