- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算方法与实习上机报告
计算方法与实习
——上机报告
学院:电子工程学院
学号 姓名: 刘 波
2015.1.4
计算方法与实习上机报告
习题一:
1 舍入误差及稳定性
一、实验目的
(1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令;
(2)通过上机计算,了解舍入误差所引起的数值不稳定性
二、实验内容
1、用两种不同的顺序计算,分析其误差的变化
2、已知连分数,利用下面的算法计算:
写一程序,读入计算并打印
3、给出一个有效的算法和一个无效的算法计算积分
4、设,已知其精确值为
(1)编制按从大到小的顺序计算的程序
(2)编制按从小到大的顺序计算的程序
(3)按两种顺序分别计算并指出有效位数
三、实验步骤、程序设计、实验结果及分析
1、用两种不同的顺序计算,分析其误差的变化
(1)实验步骤:
分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h和math.h
(2)程序设计:
a.顺序计算
#includestdio.h
#includemath.h
void main()
{
double sum=0;
int n=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[%d]=%f\n,n,sum);
}
b.逆序计算
#includestdio.h
#includemath.h
void main()
{
double sum=0;
int n=10000;
while(n!=0)
{
sum=sum+(1/pow(n,2));
if(n%200==0)
printf(sum[%d]=%-10f,n,sum);
if(n1)
break;
n--;
}
printf(sum[%d]=%f\n,n,sum);
}
(3)实验结果及分析:
程序运行结果:
顺序计算
b.逆序计算
结果分析:两种不同顺序计算结果是一样的,顺序计算误差从一开始就很小,而逆序计算误差最开始十分大,后来结果正确。
2、已知连分数,计算:
(1)实验步骤:
利用 ,,计算
(2)程序设计
#includestdio.h
#includemath.h
void main()
{
int i=0,n;
float a[100],b[100],c[100];
printf(please input n=);
scanf(%d,n);
printf(\nplease input a[0] to a[n-1]:\n);
for(i=1;in;i++)
{
printf(a[%d]=,i);
scanf(%f,a[i]);
}
printf(\nplease input b[0] to b[n-1]:\n);
for(i=0;in;i++)
{
printf(b[%d]=,i);
scanf(%f,b[i]);
}
d[n]=b[n];
for(i=n-1;i=0;i--)
c[i]=b[i]+a[i+1]/c[i+1];
printf(\nf=%f\n,c[0]);
}
(3)实验结果
程序运行结果:
3、给出一个有效的算法和一个无效的算法计算积分
(1)实验步骤
利用C语言编写程序,分别使用数值稳定的和数值不稳定的计算公式所建立的递推公式进行计算。
(2)程序设计
#includestdio.h
#includemath.h
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(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) printf(\n);
}
printf(\n无效算法的输出结果:\n);
printf(y[10]=%-20f,y_2);
您可能关注的文档
最近下载
- 2025智算中心行业研究报告.pdf VIP
- (2025秋新版)人教版三年级数学上册《观察物体》PPT课件.pptx VIP
- 油料配送操作规程.docx VIP
- NB∕T 20006.3-2021 压水堆核电厂用合金钢 第3部分:反应堆压力容器过渡段和法兰用锰-镍-钼钢锻件.pdf
- 残疾、弱智儿童送教上门教案12篇.docx VIP
- 【中外历史纲要上册】第一单元单元测试题及答案解析.pdf VIP
- NB_T 20006.5-2021 压水堆核电厂用合金钢 第5部分:反应堆压力容器封头用锰-镍-钼钢锻件.docx VIP
- 统编版高中语文选择性必修上册第二单元测试卷(Word版,含答案).pdf VIP
- NB_T 20006.4-2021 压水堆核电厂用合金钢 第4部分:反应堆压力容器接管嘴用锰-镍-钼钢锻件.docx VIP
- 电缆桥架安装及电缆敷设工程.docx VIP
文档评论(0)