ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:705.72KB ,
资源ID:3149886      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3149886.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算方法上机实习题大作业实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算方法上机实习题大作业实验报告.docx

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

2、化(1)实验步骤:分别从110000和从100001两种顺序进行计算,应包含的头文件有stdio.h和math.h(2)程序设计:a.顺序计算#include#includevoid 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=%fn,n,sum);b.逆序计算#include#includevoid main() double sum=0; int n=10000; wh

3、ile(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=%fn,n,sum); (3)实验结果及分析:程序运行结果:a.顺序计算b.逆序计算结果分析:两种不同顺序计算结果是一样的,顺序计算误差从一开始就很小,而逆序计算误差最开始十分大,后来结果正确。2、已知连分数,计算:(1)实验步骤:利用 ,计算(2)程序设计#include#includevoid main() int i=0,n; float a1024,b1024,d1024; printf(p

4、lease input n,n=); scanf(%d,&n); printf(nplease input a1 to an:n); for(i=1;i=n;i+) printf(a%d=,i); scanf(%f,&ai); printf(nplease input b0 to bn:n); for(i=0;i=0;i-) di=bi+ai+1/di+1; printf(nf=%fn,d0);(3)实验结果程序运行结果:3、给出一个有效的算法和一个无效的算法计算积分 (1)实验步骤利用C语言编写程序,分别使用数值稳定的和数值不稳定的计算公式所建立的递推公式进行计算。(2)程序设计#inclu

5、de#includemain() 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(y0=%-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(y10=%-20f,y_2); whi

6、le(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(n); (3)实验结果及分析程序运行结果:结果分析:无效算法数值不稳定,误差造成的影响特别大4、设,已知其精确值为(1)实验步骤先编程按从大到小的顺序计算的程序,再编程按从小到大的顺序计算的程序,然后按两种顺序分别计算。(2)程序设计#includemain() int N; double SN30000; SN30000=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0; for

7、(N=30000;N=2;N-) SNN-1=SNN-1.0/(N*N-1); printf(从大到小顺序计算:nSN1000=%fnSN10000=%fnSN30000=%fn,SN1000,SN10000,SN30000); SN2=(3.0/2-1.0/2.0-1/3.0)/2.0; for(N=3;N=30000;N+) SNN=SNN-1+1.0/(N*N-1); printf(从小到大顺序计算:nSN1000=%fnSN10000=%fnSN30000=%fn,SN1000,SN10000,SN30000);(3)实验结果及分析程序运行结果:结果分析:不同顺序计算所得结果是一样的。

8、四、总结通过这次上机,学习了解了舍入误差在不同算法时对结果的影响不同,稳定的算法才能获得正确的结果。2 方程求根一、实验目的(1)通过对二分法与牛顿迭代法做编程练习和上机运算,进一步体会二分法和牛顿法的不同。(2)编写割线迭代法的程序,求非线性方程的解,并与牛顿迭代法作比较。二、实验内容1、用牛顿法求下列方程的根(1)(2)(3)2、编写割线法程序求解第一问的方程三、实验步骤、程序设计、实验结果及分析1、牛顿法(1)实验步骤通过定义牛顿法求方程的子函数,用main函数调用子函数求根(2)程序设计#include #include typedef float (*p)(float );float

9、 ff1(float x) return x*x-exp(x);float ff2(float x) return x*exp(x)-1;float ff3(float x) return log(x)+x-2;float answer(float(*p)(float) int k=2; float m=1,n=-1,x2,a,b,c; if (p=ff3)n=2; printf(x0 = %.4f, x1 = %.4f, ,m,n); while (1) if (fabs(m-n)1e-4) break; a=p(n)*(n-m); b=p(n)-p(m); c=a/b; x2=n-c; m

10、 = n; n = x2; printf(x%d = %.4f, ,k,x2); k+; if (k%3=0) printf(n); if (k%3!=0) printf(n); printf(iteration times: %d, roots: %.4fn ,k-2,n); return 0; main() printf(x*x-exp(x),n); answer(ff1); printf(x*exp(x)-1,n); answer(ff2); printf(lg(x)+x-2,n); answer(ff3); return 0;(3)实验结果及分析2、割线法(1)程序设计#include

11、#includefloat gexian(float,float);float f(float);main() int i,j; float x1=2.2; float x2=2,x3; scanf(%d,&i); if(i=1) printf(%f,x1); else if(i=2) printf(%f,x2); else for(j=3;j=i;j+) x3=gexian(x1,x2); x1=x2; x2=x3; printf(%f,gexian(x1,x2) ; float f(float x)return (x*x-exp(x);float gexian(float x1,float

12、 x2)return (x2-(f(x2)/(f(x2)-f(x1)*(x2-x1);(3)实验结果及分析四、总结了解和学习了二分法和牛顿迭代法的思想以及程序设计的方法,比较了迭代法和牛顿法的特点:牛顿法收敛速度较快,但对初值选取要求较高;割线法计算量少。3 线性方程组数值解法一、实验目的(1)熟悉求解线性方程组的有关理论和方法;(2)会编制列主元消去法,LU分解法,雅可比及高斯-赛德尔迭代法的程序;(3)通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。二、实验内容1、用列主元消去法解方程组2、用LU分解法解方程组三、实验步骤、程序设计、实验结果及分析1、用列主元消去法解方程组(1)程序设计#include#includevoid ColPivot(float*,int,float);void ColPivot(float*c,int n,float x) int i,j,t,k; float p; for(i=0;i=n-2;i+) k=i; for(j=i+1;j(fabs(*(c+k*(n+1)+i) k=j; if(k!=i) for(j=i;j=n;j+) p=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1