计算方法-周虹光-02121334

计算方法-周虹光-02121334

ID:14372207

大小:2.08 MB

页数:32页

时间:2018-07-28

计算方法-周虹光-02121334_第1页
计算方法-周虹光-02121334_第2页
计算方法-周虹光-02121334_第3页
计算方法-周虹光-02121334_第4页
计算方法-周虹光-02121334_第5页
资源描述:

《计算方法-周虹光-02121334》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算方法与实习上机报告021214班-周虹光-学号02121334第一:舍入误差及稳定性一、实验目的(1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令;(2)通过上机计算,了解舍入误差所引起的数值不稳定性二、实验内容1、用两种不同的顺序计算,分析其误差的变化2、已知连分数,利用下面的算法计算:写一程序,读入计算并打印3、给出一个有效的算法和一个无效的算法计算积分4、设,已知其精确值为(1)编制按从大到小的顺序计算的程序(2)编制按从小到大的顺序计算的程序(3)按两种顺序分别计算并指出有效位数三、实验步骤、程序设计、实验结

2、果及分析1、用两种不同的顺序计算,分析其误差的变化(1)实验步骤:分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h和math.h(2)程序设计:a.顺序计算#include#includevoidmain(){doublesum=0;intn=1;while(1){sum=sum+(1/pow(n,2));if(n%1000==0)printf("sun[%d]=%-30f",n,sum);if(n>=10000)break;n++;}printf("sum[%

3、d]=%f",n,sum);}b.逆序计算#include#includevoidmain(){doublesum=0;intn=10000;while(1){sum=sum+(1/pow(n,2));if(n%1000==0)printf("sum[%d]=%-30f",n,sum);if(n<=1)break;n--;}printf("sum[%d]=%f",n,sum);}(3)实验结果及分析:程序运行结果:a.顺序计算b.逆序计算结果分析:两种不同顺序计算结果是一样的,顺序计算误差从

4、一开始就很小,而逆序计算误差最开始十分大,后来结果正确。2、已知连分数,计算:(1)实验步骤:利用,,计算(2)程序设计#include#includevoidmain(){inti=0,n;floata[1024],b[1024],d[1024];printf("pleaseinputn,n=");scanf("%d",&n);printf("pleaseinputa[1]toa[n]:");for(i=1;i<=n;i++){printf("a[%d]=",i);scanf("%f",&

5、a[i]);}printf("pleaseinputb[0]tob[n]:");for(i=0;i<=n;i++){printf("b[%d]=",i);scanf("%f",&b[i]);}d[n]=b[n];for(i=n-1;i>=0;i--)d[i]=b[i]+a[i+1]/d[i+1];printf("f=%f",d[0]);}(3)实验结果程序运行结果:3、给出一个有效的算法和一个无效的算法计算积分(1)实验步骤利用C语言编写程序,分别使用数值稳定的和数值不稳定的计算公式所建立的递推公式进行计算。(2)程

6、序设计#include#includemain(){doubley_0=(1/4.0)*log(5),y_1;doubley_2=(1.0/55.0+1.0/11.0)/2,y_3;intn=1,m=10;printf("有效算法输出结果:");printf("y[0]=%-20f",y_0);while(1){y_1=1.0/(4*n)+y_0/(-4.0);printf("y[%d]=%-20f",n,y_1);if(n>=10)break;y_0=y_1;n++;if(n%3==0)pri

7、ntf("");}printf("无效算法的输出结果:");printf("y[10]=%-20f",y_2);while(1){y_3=1.0/n-4.0*y_2;printf("y[%d]=%-20f",m-1,y_3);if(m<=1)break;y_2=y_3;m--;if(m%2==0)printf("");}}(3)实验结果及分析程序运行结果:结果分析:无效算法数值不稳定,误差造成的影响特别大4、设,已知其精确值为(1)实验步骤先编程按从大到小的顺序计算的程序,再编程按从小到大的顺序计算的程序,然后按两种

8、顺序分别计算。(2)程序设计#includemain(){intN;doubleSN[30000];SN[30000]=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0;for(N=30000;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。