欢迎来到天天文库
浏览记录
ID:51998525
大小:376.50 KB
页数:9页
时间:2020-03-21
《数值分析实验报告一.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数值分析课程实验报告实验名称班级动力实1201姓名李凯学号201202000511序号教师赵美玲地点数学实验屮心评分—、实验目的(1)、了解计算机屮浮点数的有效数字;(2)、了解舍入误差产生的原因,知道截断误差和舍入误差的区别;(3)、了解算法“稳定性”的概念。二、用文字或图表记录实验过程和结果1、关于浮点数(1)令^=0.1234567890123456789;#=0.1234567890123456789;在计算机屮分别将它们定义成单精度型和双精度型,输出观察结果,#include#includevoidmain(){floatff;
2、doubledf;ff=O.1234567890123456789;df=O.1234567890123456789;cout<3、a4、川►结果分析:位是16位。F5、loat内存中占4个字节,有效数位是7位;double占8个字节,有效数所以输出结果不一样。(2)设6/1=1.000001;d2=1.000000;a3=0.0000001,在单精度的变量环境下做以下操作:1)按以下两种算法计算臼1与100个臼3相加的结果。方法一:将100个日3逐个加到日1上;方法二:先将100个於相加,再加到&1上;观察所得到的结果,写出你得到的结论。解:#includevoidnidin(){floatal,a2,a3,yl,y2;inti;al=l.000001;a2=1.000000;a3=0.0000001;yl=al;y2=0;6、for(i=l;i<=100;i++){yl=yl+a3;}for(i=l;i<=100;i++){y2=y2+a3;}y2=y2+al;cout<voidmain(){floatal,a2,a3;al=l.000001;a2=1.000000;a3=0.0000001;floata,b7、;a=al/a3+a2;b=al-a2;cout<floatf(floeitx){floata;a二x*x*x;ret8、urna;}voidmain(){floath二l,b,fl,f2;inti;for(i=l;i<=15;i++){fl二f(1+h);f2=f(l);b二(fl-f2)/h;h=h/10;cout<,h=/,<floatf(floatx){floata;a二x*x*x;returna;}voidmain(){floath二l,b,fl,f2;inti;for(i=l;i<=15;i++){fl=f(1+h);f2=f(l-h);b二(fl-f2)/(2*h);h二h/10;c9、out«"h="«h«"时,(x)=,,«b«endl;}}结果分析:因为f(x)二3兀2,所以随着h越来越小,倒数值越来越接近0,但不等于0,实验屮两种方法屮,当h为1e-008吋,导数值就近似为0了,说明当数很小时,阶段误差和舍入误差还是有影响的。3、算法的稳定性考虑积分易见,且计算得到/0=ln-=0.1823,从而可得如下递推算法:人二丄一5/灯,(〃=1,2,3,…,100)(1)n对上述积分有估计式171<<,6(刃+1)"5(刃+1)我们取人
3、a
4、川►结果分析:位是16位。F
5、loat内存中占4个字节,有效数位是7位;double占8个字节,有效数所以输出结果不一样。(2)设6/1=1.000001;d2=1.000000;a3=0.0000001,在单精度的变量环境下做以下操作:1)按以下两种算法计算臼1与100个臼3相加的结果。方法一:将100个日3逐个加到日1上;方法二:先将100个於相加,再加到&1上;观察所得到的结果,写出你得到的结论。解:#includevoidnidin(){floatal,a2,a3,yl,y2;inti;al=l.000001;a2=1.000000;a3=0.0000001;yl=al;y2=0;
6、for(i=l;i<=100;i++){yl=yl+a3;}for(i=l;i<=100;i++){y2=y2+a3;}y2=y2+al;cout<voidmain(){floatal,a2,a3;al=l.000001;a2=1.000000;a3=0.0000001;floata,b
7、;a=al/a3+a2;b=al-a2;cout<floatf(floeitx){floata;a二x*x*x;ret
8、urna;}voidmain(){floath二l,b,fl,f2;inti;for(i=l;i<=15;i++){fl二f(1+h);f2=f(l);b二(fl-f2)/h;h=h/10;cout<,h=/,<floatf(floatx){floata;a二x*x*x;returna;}voidmain(){floath二l,b,fl,f2;inti;for(i=l;i<=15;i++){fl=f(1+h);f2=f(l-h);b二(fl-f2)/(2*h);h二h/10;c
9、out«"h="«h«"时,(x)=,,«b«endl;}}结果分析:因为f(x)二3兀2,所以随着h越来越小,倒数值越来越接近0,但不等于0,实验屮两种方法屮,当h为1e-008吋,导数值就近似为0了,说明当数很小时,阶段误差和舍入误差还是有影响的。3、算法的稳定性考虑积分易见,且计算得到/0=ln-=0.1823,从而可得如下递推算法:人二丄一5/灯,(〃=1,2,3,…,100)(1)n对上述积分有估计式171<<,6(刃+1)"5(刃+1)我们取人
此文档下载收益归作者所有