计算方法实验报告
班级: 学号: 姓名: 成绩:
1 舍入误差及稳定性
一、实验目的
(1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性
二、实验内容
1、用两种不同的顺序计算?n,分析其误差的变化
n?110000?22、已知连分数f?b0?a1,利用下面的算法计算f:
b1?a2/?b2?a3/(...?an/bn)?dn?bn,di?bi?ai?1 (i?n?1,n?2,... , 0f?d0 di?1写一程序,读入n,b0,b1,...,bn,a1,...,an,计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分
xnyn??dx (n?0,1,..., 104x?114、设SN??j?2N11?311?,已知其精确值为???? 22?2NN?1?j?1(1)编制按从大到小的顺序计算SN的程序 (2)编制按从小到大的顺序计算SN的程序
(3)按两种顺序分别计算S1000,S10000,S30000,并指出有效位数
三、实验步骤、程序设计、实验结果及分析
1、用两种不同的顺序计算?n,分析其误差的变化
n?110000?2(1)实验步骤:
分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h和math.h (2)程序设计: a.顺序计算
#include
b.逆序计算
#include
(3)实验结果及分析: 程序运行结果: a.顺序计算
b.逆序计算
结果分析:两种不同顺序计算结果是一样的,顺序计算误差从一开始就很小,而逆序计算误差最开始十分大,后来结果正确。 2、已知连分数f?b0?(1)实验步骤:
利用 dn?bn,di?bi?a1,计算f:
b1?a2/?b2?a3/(...?an/bn)?ai?1 (i?n?1,n?2,...,,0f?d0,计算f di?1(2)程序设计 #include
printf(\ scanf(\ } printf(\ for(i=0;i<=n;i++) { printf(\ scanf(\ }
d[n]=b[n]; for(i=n-1;i>=0;i--) d[i]=b[i]+a[i+1]/d[i+1]; printf(\}
(3)实验结果 程序运行结果:
3、给出一个有效的算法和一个无效的算法计算积分
xnyn??dx (n?0,1,..., 104x?11(1)实验步骤
利用C语言编写程序,分别使用数值稳定的和数值不稳定的计算公式所建立的递推公式进行计算。 (2)程序设计 #include
while(1) { y_3=1.0/n-4.0*y_2; printf(\ if(m<=1) break; y_2=y_3; m--; if(m%2==0) printf(\ } }
(3)实验结果及分析 程序运行结果:
结果分析:无效算法数值不稳定,误差造成的影响特别大 4、设SN??j?2N11?311?,已知其精确值为????
2?2NN?1?j2?1(1)实验步骤
先编程按从大到小的顺序计算SN的程序,再编程按从小到大的顺序计算SN的程序,然后按两种顺序分别计算S1000,S10000,S30000。
(2)程序设计 #include
(3)实验结果及分析 程序运行结果:
:
:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库西电计算方法上机实习题在线全文阅读。
相关推荐: