matlab实验一(误差)
PI =
3.1415
e =
5.0000e-005
er =
1.5915e-005
2.运行结果如下:
直接计算X=0.7的值,运行结果如下:
>> zhijie
k =
21
Px =
-18.0718
秦九韶计算X=0.7的值,运行结果如下:
>> qin
k =
6
Px =
-18.0718
【结果分析】
1、由运行结果可
实验一误差与算法优劣
日期:
2012-10-12
专业:
数学与应用数学
学号:
姓名:
【实验目的】
1.理解截断误差对数据精度的影响。
2.理解舍入误差所引起的数值不稳定性,并初步掌握如何消除或减小误差。
3.了解如何简化算法步骤,减少运算次数。
【实验内容】
一、利用公式: ,编程求π的近似值,分别取10000项与20000项进行计算,将计算结果与π的值3.1415926…进行比较,得出其绝对误差。
程序内容:a=[7 -7 1 3 -5 2];
x=0.7;
Px=-20;
k=0;
fori=1:6
tmp=a(i);
forj=1:i
tmp=tmp*x;
k=k+1;
end
Px=Px+tmp;
end
k=k,
Px=Px
文件名:qin.m
程序内容:k=0;
a=[7 -7 1 3 -5 2];
Px=-20;
x=0.7;
三、编程计算多项式的值。
方法1:直接计算。
方法2:秦九韶算法
用以上两种方法分别计算多项式
在x=0.7处的值。比较两种方法的计算量。
【实验结果】
一、n分别取10000和20000,运行结果如下:
>> n=10000;pai
PI =
3.1415
e =
1.0000e-004
er =
3.1831e-005
>>n=20000;pai
2、由运行结果可以看出秦九韶的算法计算量比直接算的计算量多很多。
【教师评语和成绩】
成绩:指导教师:日期:
附录:
一、文件名:pai.m
程序内容:tmp=1;
t=-1;
for i=2:n
tmp=tmp+t*1.0/(2*i-1);
t=(-1)*t;
end
PI=4*tmp,
e=pi-PI,
er=e/pi
2、文件名:zhijie.m
tmp=a(6);
fori=5:-1:1
tmp=tmp*x+a(i);
k=k+1;
end
K=k+1,
Px=Px+x*tmp