77范文网 - 专业文章范例文档资料分享平台

西电计算方法上机实习题

来源:网络收集 时间:2019-02-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

计算方法实验报告

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

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 #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?1 (i?n?1,n?2,...,,0f?d0,计算f di?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(\ }

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 #include main() { double y_0=(1/4.0)*log(5),y_1; double y_2=(1.0/55.0+1.0/11.0)/2,y_3; int n=1,m=10; printf(\有效算法输出结果:\\n\ printf(\ while(1) { y_1=1.0/(4*n)+y_0/(-4.0); printf(\ if(n>=10) break; y_0=y_1; n++; if(n%3==0) printf(\ } printf(\无效算法的输出结果:\\n\ printf(\

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 main() { int N; double SN[30000]; SN[30000]=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0; for(N=30000;N>=2;N--) SN[N-1]=SN[N]-1.0/(N*N-1); printf(\从大到小顺序计算\\nSN[1000]=%f\\nSN[10000]=%f\\nSN[30000]=%f\\n\ SN[2]=(3.0/2-1.0/2.0-1/3.0)/2.0; for(N=3;N<=30000;N++) SN[N]=SN[N-1]+1.0/(N*N-1); printf(\从小到大顺序计算\\nSN[1000]=%f\\nSN[10000]=%f\\nSN[30000]=%f\\n\}

(3)实验结果及分析 程序运行结果:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库西电计算方法上机实习题在线全文阅读。

西电计算方法上机实习题.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/478403.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: