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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

计算数值方法实验报告概要.docx

1、计算数值方法实验报告概要课程名称: 计算机数值方法 实验项目:方程求根,线性方程组的直接解法与迭代 解法,代数插值,最小二乘法拟合多项式实验地点: 逸夫楼402 专业班级: 学号: 学生姓名: 指导教师: 于亚男 2012年4月26日太原理工大学学生实验报告学院名称软件学院专业班级学号学生姓名 实验日期4月26日成绩课程名称计算机数值方法实验题目 方程求根1、实验目的和要求(1)了解非线性方程求根的常见方法,如二分法、牛顿法、割线法。(2)加深对方程求根方法的认识,掌握算法。二、实验内容和原理熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:

2、f(x)=x3+4x2-10=0在1,2内的一个实根,且要求满足精度|x*-xn|0.510-53、主要仪器设备 HP笔记本,VC+6.04、操作方法与实验步骤 1.二分法:#include #include double f(double x) double y; y=pow(x,3)+4*pow(x,2)-10; return (y);main() double a,b,yl,yr,ym,x1,xr,xm;a=1;b=2; yl=f(a); yr=f(b); while(yl*yr0) yl=f(a); yr=f(b); xr=a; x1=b; while(fabs(xr-x1)0.000

3、001) xm=(x1+xr)/2; ym=f(xm); yl=f(x1); yr=f(xr); if(yl*ym0) xr=xm; else x1=xm;printf(%ft%ft%fn,x1,xr,xm); printf(n所求根为x=%fn,xm); return 0;2.牛顿法:#include #include double f(double x) return (pow(x,3)+4*pow(x,2)-10);double f1(double x) return (3*pow(x,2)+10*x);int main() double x,x1,y1,y2; printf(请输入一个

4、任意实数:X=); scanf(%lf,&x); printf(方程的解为:n); do x1=x; y1=f(x); y2=f1(x1); x=x1-y1/y2; while (fabs(x-x1)=5e-6); printf( %lfn,x1);3.追赶法5、实验数据记录和处理1.二分法2.牛顿法6、实验结果与分析 通过这个两个程序可看出,二分法的计算量更大一些。7、讨论、心得 通过这个实验,我了解了线性方程的一些求根方法,对于方程近似值的求解有了更多的理解。实验地点 指导教师于亚男太原理工大学学生实验报告学院名称专业班级学号学生姓名 实验日期4月26日成绩课程名称计算机数值方法实验题目

5、求解线性方程组一、实验目的和要求(1)了解直接法解线性方程组(2)对Gauss消元法、LU分解法、追赶法有更深刻的理解二、实验内容和原理合理利用Gauss消元法、LU分解法、追赶法求解下列方程组: (n=5,10,100,)三主要仪器设备 HP笔记本,VC+6.0四操作方法与实验步骤 1.高斯:#include void main() int i,j,f,n; float a55,b5,x5,l,k; printf(Input n:); scanf(%d,&n); printf(Input a:); for(i=0;in;i+) for(f=0;fn;f+) scanf(%f,&aif); p

6、rintf(Input b:); for(i=0;in;i+) scanf(%f,&bi); for(i=0;in-1;i+) for(j=i+1;jn;j+) l=-aji/aii; bj=bj+bi*l; for(f=i;f=0;i-) xi=bi; k=0; for(f=i+1;fn;f+) k=k-aif*xf; xi=(k+bi)/aii; printf(The answer is ); for(i=0;in;i+) printf(%.4f ,xi);2.LU分解:#include #include #define L 30 double aLL,bL,lLL,uLL,xL,yL;

7、int main() int n,i,j,k,r; printf(n=n); scanf(%d,&n); printf(ann=n); for(i=1;i=n;+i) for(j=1;j=n;+j) scanf(%lf,&aij); printf(bn=n); for(i=1;i=n;+i) scanf(%lf,&bi); for(i=1;i=n;+i) for(j=1;j=n;+j) lij=0; uij=0.0; for(k=1;k=n;+k) for(j=k;j=n;+j) ukj=akj; for(r=1;rk;+r) ukj-=lkr*urj; for(i=k+1;i=n;+i) l

8、ik=aik; for(r=1;rk;+r) lik-=lir*urk; lik/= ukk; lkk=1.0; for(i=1;i=n;+i) yi = bi; for(j=1;j0;-i) xi = yi; for(j=i+1;j=n;+j) xi-=uij*xj; xi/= uii; for(i=1;i=n;+i) printf(%0.2lfn,xi); return 0; 五实验数据记录和处理1.高斯2.LU分解六、实验结果与分析 本次实验数据较多,在输入上要多费点功夫,一不小心就全部都错了。在今后编程过程中,一定要小心谨慎。七、讨论、心得 通过本次实验,我深刻理解了直接法在计算机上解

9、线性方程组的有效性,对于Gauss消元法、LU分解法也有了深刻的理解。实验地点 逸夫楼402指导教师于亚男太原理工大学学生实验报告学院名称软件学院专业班级学号学生姓名 实验日期4月26日成绩课程名称计算机数值方法实验题目 线性方程组的迭代解法1、实验目的和要求掌握雅可比迭代法和高斯-赛德尔迭代法对方程组进行求解二、实验内容和原理使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。三、主要仪器设备 HP笔记本,VC+6.0四、操作方法与实验步骤 雅可比迭代法:#include #include int main() double a33=10,-1,-2,-1,10,-2,-1,-1,5,

10、b3=7.2,8.3,4.2;/定义方程组 float x3=0,0,0,sum; int i,j,k,n=3; printf(tt X1tt X2tt X3n); for(k=0;k8;k+) for(i=0;i3;i+) sum=0; for(j=0;jn;j+) if(i=j)continue; sum=sum+aij*xj; xi=(bi-sum)/aii; printf(第%d次迭代:t,k+1); for(i=0;in;i+) printf(%ft,xi); printf(n); 五、实验数据记录和处理六、实验结果与分析 在本次实验中,编程不太容易,对c/c+的学习应该更进一步。七

11、、讨论、心得 通过这次实验,我明白了雅克比迭代的一般性解法,对于编程的应用也有了更深刻的理解。实验地点 逸夫楼402指导教师于亚男太原理工大学学生实验报告学院名称软件学院专业班级学号学生姓名 实验日期4月26日成绩课程名称计算机数值方法实验题目 代数插值1、实验目的和要求 掌握拉格朗日插值法和牛顿插值法求近似解二、实验内容和原理使用拉格朗日插值法或牛顿插值法求解:已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.596)的近似值。X0.400.550.650.800.901.05f(x)0.410750.578150.696750.888111.026521.25386三、主要仪

12、器设备 HP笔记本,VC+6.0四、操作方法与实验步骤#include stdafx.h#include #include #include #include void difference(float *x,float *y,int n) float *f; int k,i; f=(float *) malloc (n*sizeof(float); for(k=1;k=n;k+) f0=yk; for(i=0;ik;i+)fi+1=(fi-yi)/(xk-xi); yk=fk; return; int main() int i,n; float x10,y10,xx,yy; printf(输

13、?入?结点?个?数簓n:阰); scanf(%d,&n);printf(n); for(i=0;i=0;i-)yy=yy*(xx-xi)+yi; printf(n近似?值为a:阰F(%f)=%fn,xx,yy); 五、实验数据记录和处理六、实验结果与分析 拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点是原有多项式不能利用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的浪费。所以要用到牛顿插值多项式,两种方法相结合才能更好的解决多项式的问题。实验地点 逸夫楼402指导教师于亚男太原理工大学学生实验报告学院名称软件学院专业班级学号学生姓名实验日期4月26日成绩课程名称计算机数

14、值方法实验题目 最小二乘法拟合多项式一、实验目的和要求掌握用最小二乘法拟合数据的多项式,并求平方误差二、实验内容和原理给定数据点(xi ,yi),用最小二乘法拟合数据的多项式,并求平方误差。xi00.50.60.70.80.91.0yi11.751.962.192.442.713.00三、主要仪器设备 HP笔记本,VC+6.0四、操作方法与实验步骤#include#include#define N 15double power(double &a,int n) double b=1; for(int i=0;in;i+) b*=a; return b;void Gauss();double X

15、N,YN,sumXN,sumYN,aNN,bN,lNN,xN;void main() ofstream outdata; ifstream indata; double s; int i,j,k,n,index; coutn; coutendl; cout请输入X和Y:endl; /输入给定数据 for(i=0;in;i+) coutXiXi; sumX1+=Xi; coutYiYi; sumY1+=Yi; coutendl; coutsumX1=sumX1tsumY1=sumY1endl; coutindex; coutendl; i=n; sumX0=i; for(i=2;i=2*inde

16、x;i+) sumXi=0; for(j=0;jn;j+) sumXi+=power(Xj,i); coutsumXi=sumXiendl; for(i=2;i=index+1;i+) sumYi=0; for(j=0;jn;j+) sumYi+=power(Xj,i-1)*Yj; coutsumYi=sumYiendl; for(i=1;i=index+1;i+) /建立正规方程组 for(j=1;j=index+1;j+) aij=sumXi+j-2; bi=sumYi; k=1; /用高斯消元法解方程组 do for(j=k+1;j=index+1;j+) ljk=ajk/akk; fo

17、r(i=k+1;i=index+1;i+) for(j=k+1;j=1;i-) s=0; for(j=i+1;j=index+1;j+) s=s+aij*xj; xi=(bi-s)/aii; cout拟合系数为:; /输出拟合系数 for(i=1;i=index+1;i+) coutxit; double m=0; coutendl平方误差为:; for(i=0;in;i+) double t=x1+x2*Xi-Yi; m=m+power(t,2); coutmendl;五、实验数据记录和处理六、讨论、心得 通过本次实验,我了解到了拟合的重要性,对于解决方程有了更多的方法和技巧。实验地点 逸夫楼402指导教师于亚男

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

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