数
值 分 析 上 机 实 验
理学院 11级统计01班 41108030125
鲁庆
实验报告一
一.实验名称
误差与误差估计
二.实验目的
掌握数值运算的误差估计方法
三.数学原理 1.绝对误差e(x*)
设某一量的准确值为x,近似值为x*,则x*与x之差叫做近似值x*的绝对误差(简称误差),记为e*?e(x*)?x*?x 2.绝对误差限
适当小的正数,使|e(x*)|?|x*?x|??*则称?*为近似值 x* 的绝对误差限。(有时用
x?x??*表示近似值x*的精度或准确值的所在范围。
?3.相对误差er(x*)
绝对误差与准确值之比er?er(x*)?误差。
4.相对误差限?r(x*)
若指定一个适当小的正数 ?r(x*),使|er(x*)|?的相对误差限。
5.有效数字
若近似值x*的绝对误差限是某一位的半个单位,该位到x*的第一位非零数字一共有n位,则称近似值x*有n位有效数字,或说x*精确到该位。 6.绝对误差的运算:
*e(x*)x*?x?,x?0称为x*的相对 xx|e(x*)|??(r*)x则称?r(x*)为近似值 x*|x|?(x1?x2)??(x1)??(x2) ?(x1x2)?x1?(x2)?x2?(x1)
?(x??(x?)?x??(x?)x?)? ?x?x? ?(f(x))?f?(x)?(x)
四.实验内容
1. 计算
I=e?0xn-11nexdx (n=0,1,...)并估计误差。
2解: >> I0 = exp(-1)*quad('(x.^0).*exp(x.^2)',0,1,10^(-10));
>> vpa(I0,10) ans =
.5380795069
>> I1= exp(-1)*quad('(x.^1).*exp(x.^2)',0,1,10^(-10)); >> vpa(I1,10) ans =
.3160602794
>> I2 = exp(-1)*quad('(x.^2).*exp(x.^2)',0,1,10^(-10)); >> vpa(I2,10) ans =
.2309602465
>> I3 = exp(-1)*quad('(x.^3).*exp(x.^2)',0,1,10^(-10)); >> vpa(I3,10) ans =
.1839397206
>> I4 = exp(-1)*quad('(x.^4).*exp(x.^2)',0,1,10^(-10)); >> vpa(I4,10) ans =
.1535596302
>> I5 = exp(-1)*quad('(x.^5).*exp(x.^2)',0,1,10^(-10)); >> vpa(I5,10) ans =
.1321205588
>> I6 = exp(-1)*quad('(x.^6).*exp(x.^2)',0,1,10^(-10)); >> vpa(I6,10) ans =
.1161009245
>> I7 = exp(-1)*quad('(x.^7).*exp(x.^2)',0,1,10^(-10)); >> vpa(I7,10) ans =
.1036383235
>> I8 = exp(-1)*quad('(x.^8).*exp(x.^2)',0,1,10^(-10)); >> vpa(I8,10) ans =
.9364676413e-1
>> I9 = exp(-1)*quad('(x.^9).*exp(x.^2)',0,1,10^(-10)); >> vpa(I9,10) ans =
.8544670595e-1 2.计算
x255的值。如果逐个相乘用254次乘法,但若写成
2x255=X.X.X.X.X.X.X.Xnn?148163264128,只要做14次乘法运算即可。有如计算多
k项式
pn(x)?anx?an?1x?...?a1?a0的值时,若直接计算akx再逐项相加,一共
需做n+(n-1)+...+2+1=n(n?1)次乘法和n2s?a,?xs?as次加法。若采用秦九韶法
p(x)?snknk?1n0nk,(k=n-1,n-2,...,0),只要n次乘法和n次加法就可算出
p?x?的值。若
an?2an?1?3,a0?5,求(1)
p?x?,x?0.5,(2)p?x?,x?13.
100150解:function q=qjs(n,x) a(1)=5; for i=1:n+1
a(i+1)=2.*a(i)+3; end
s1=a(n+1); for j=1:n
s=x*s1+a(n+1-j); s1=s; end q=s; end
>> qjs (100,0.5) ans = 802
>> qjs (150,13) ans =
1.4660e+213
3.设Y0?28,按递推公式Yn?Yn?1?计算到Y100,
1783 (n=1,2,…) 100Y500。若取783?27.982(5位有效数字),试问计算Y100,
Y500将有多大
误差?
11001 ?Y100?Y99?1001 Y99?Y98?1001 Y98?Y97?100解:?Yn?Yn?1? ...... Y1?Y0?783 783 783 783 1783 100依次代入后,有Y100?Y0?100?即Y100?Y0?783,
1783 100若取783?27.982, ?Y100?Y0?27.982
1*??(Y100)??(Y0)??(27.982)??10?3
21?Y100的误差限为?10?3。
21783,即Y500=Y0-5x783,若取783?27.982, 所以同理,Y500=Y0-500X1001?2=-139.91 ,所以的误差限为X. 10Y500Y0Y5002