计算方法上机实习题大作业(实验报告).. 下载本文

内容发布更新时间 : 2024/7/1 7:48:45星期一 下面是文章的全部内容请认真阅读。

计算方法实验报告

班级: 学号: 姓名: 成绩:

1 舍入误差及稳定性

一、实验目的

(1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性

二、实验内容

1、用两种不同的顺序计算?n?2,分析其误差的变化

n?1100002、已知连分数f?b0?a1,利用下面的算法计算f:

b1?a2/?b2?a3/(...?an/bn)?dn?bn,di?bi?ai?1f?d0 (i?n?1,n?2,... , 0di?1写一程序,读入n,b0,b1,...,bn,a1,...,an,计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分

xnyn??dx (n?0,1,..., 104x?114、设SN??j?2N11?311???,已知其精确值为?? 2j?12?2NN?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 #include void main() { double sum=0; int n=1; while(1) { sum=sum+(1/pow(n,2)); if(n00==0)printf(\ if(n>=10000)break; n++; } printf(\}

b.逆序计算

#include #include void main() { double sum=0; int n=10000; while(1) { sum=sum+(1/pow(n,2)); if(n00==0) printf(\ if(n<=1)break; n--; } printf(\}

(3)实验结果及分析: 程序运行结果: a.顺序计算

b.逆序计算

结果分析:两种不同顺序计算结果是一样的,顺序计算误差从一开始就很小,而逆序计算误差最开始十分大,后来结果正确。 2、已知连分数f?b0?(1)实验步骤:

利用 dn?bn,di?bi?a1,计算f:

b1?a2/?b2?a3/(...?an/bn)?ai?1f?d0,计算f (i?n?1,n?2,...,,0di?1(2)程序设计 #include #include void main() { int i=0,n; float a[1024],b[1024],d[1024]; printf(\ scanf(\ printf(\ for(i=1;i<=n;i++) {

printf(\ scanf(\ } printf(\ for(i=0;i<=n;i++) { printf(\ scanf(\ }