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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

太原理工大学数值计算实验报告资料Word文档下载推荐.docx

1、主要仪器设备笔记本计算机实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)迭代法:#include stdafx.h#includestdio.hmath.hiostreamusing namespace std;float main() float a; cina; float t, x; x=a; do x=sqrt(10-x*x*x)/4); t=a; a=x; while(fabs(a-t)0.5*1e-5); printf(x=%f,a); system(pause);割线法: float c,a=1.0,b=2.0; /cinab; while(1) c=b-(b*b*

2、b+4*b*b-10)*(b-a)/(b*b*b+4*b*b-(a*a*a+4*a*a); if(fabs(b-c)0.5*0.000001) break; b=c; coutc;实验结果和分析 实验结果:割线法:心得体会(遇到的问题和解决方法)使用不同的方法,可以不同程度的求得方程的解,不同的方法速度不同。实验二 线性方程组的直接求解实验内容和要求(1)了解线性方程组常见的直接解法,如Guass消元法、LU分解法、追赶法。(2)加深对线性方程组求解方法的认识,掌握算法。(3)会进行误差分析,并能对不同方法进行比较。实验原理合理利用Gauss消元法、LU分解法或追赶法求解下列方程组:1 、2、

3、3、4、(n=5,10,100,)台式或笔记本计算机 Gauss消元法: float main() float a34=1,2,3,14,0,1,2,8,2,4,1,13; float x3; float sum=0; int k,i,j; for(k=0;k2;k+) for(i=k+1;i3;i+) for(j=k+1;j4;j+)aij=aij-aik/akk*akj; for(i=0; for(j=0; printf(a%d%d=%f,i,j,aij); cout=0;k-) sum=0; for(j=k+1; sum+=akj*xj; xk=(ak3-sum)/akk; for(i=

4、0; printf (x%d=%f,i+1,xi);LU分解法:#include math.h#define L 30 double a L L , b L , l L L , u L L , x L , y L ; int main() int n, i, j, k, r; scanf( %d, &n ); for ( i = 1; i = n; +i ) for ( j = 1; j +j ) %lfa i j );b i ); +i ) for ( j = 1; +j ) l i j =0; u i j = 0.0; for ( k = 1; k +k ) for ( j = k; +j

5、 ) u k j = a k j ; for ( r = 1; r 0; -i ) x i = y i ; for ( j = i + 1; x i -= u i j * x j ; x i /= u i i ; printf( %0.2lfn, x i ); return 0;追赶法:void main() FILE *f; double a15,b15,c15,d15; double t; int i,n; f=fopen(zgf.txt,r fscanf(f,&n);%lf%lf%lfb1,&c1,&d1); for(i=2;=n-1; fscanf(f,%lf%lf%lf%lfai,&

6、bi,&ci,&di);an,&bn,&dn); fclose(f); c1=c1/b1; d1=d1/b1; t=bi-ci-1*ai; ci=ci/t; di=(di-di-1*ai)/t; dn=(dn-dn-1*an)/(bn-cn-1*an); for(i=n-1;i=1;i-) di=di-ci*di+1; printf(n*n for(i=1;=n;d%2d=%lfn,i,di);Zgf.txt文件中的内容是:52 1 -71 2 1 -5 1 2 1 -5 1 2 -5Gauss消元法:在调试过程中发现自己还是很粗心,容易犯简单错误,在今后应该多编写程序。实验三 线性方程组的迭

7、代求解学习使用雅可比迭代法或高斯-赛德尔迭代法高斯-赛德尔迭代法: float a33=10,-1,-2,-1,10,-2,-1,-1,5,b3=7.2,8.3,4.2;float x3=0,0,0,sum1,sum2;int i,j,k,n=3;for (k=0;10; for(i=0;n; sum1=0; sum2=0;for(j=0;i; sum1=sum1+aij*xj;for(j=i+1; sum2=sum2+aij*xj; xi=(bi-sum1-sum2)/aii; for(i=0;i+) printf(n 雅克比迭代: float a33=10,-1,-2,-1,10,-2,-

8、1,-1,5,b3=7.2,8.3,4.2;float x3=0,0,0,sum1; sum1=0; for(j=0; if(i=j) continue; xi=(bi-sum1)/aii;for(i=0; printf(printf(结果:分析:使用高斯-赛德尔和雅克比迭代都可以求出方程组的解,但是利用高斯-赛德尔迭代法所需的迭代次数比雅克比迭代少,能够更早的达到精度要求。高斯迭代法比雅克比迭代迭代速度快,所以在编程时选择了高斯迭代法。实验四 代数插值和最小二乘法拟合 实验内容:使用拉格朗日插值法求解:已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.596)的近似值。x0.4

9、00.550.650.800.901.05f(x)0.410750.578150.696750.888111.026521.25386实验要求:1了解拉格朗日插值法的基本方法、基本原理。 2通过编写程序,进行算法设计和数值求解。拉格朗日基函数为:拉格朗日插值多项式为:#includeiostream.htypedef struct data float x; float y;Data;Data d20;float f(int s,int t) if(t=s+1) return (dt.y-ds.y)/(dt.x-ds.x); else return (f(s+1,t)-f(s,t-1)/(dt

10、.x-ds.x);float Newton(float x,int count) int n; cout请输入n值(即n次插值):; if(n=count-1) break;cls float t=1.0; float y=d0.y; float yt=0.0; for(int j=1; t=(x-dj-1.x)*t; yt=f(0,j)*t; y=y+yt; return y;float lagrange(float x,int count) float y=0.0; for(int k=0;count; float p=1.0; for(int j=0; if(k=j)continue;

11、p=p*(x-dj.x)/(dk.x-dj.x); y=y+p*dk.y; float x,y; int count;请输入xi,yi的组数,不得超过20组: if(count=20) for(int i=0;请输入第i+1组x的值:di.x;组y的值:di.y;请输入x的值:/获得变量x的值x; int choice=3;请您选择使用哪种插值法计算: (0):退出 (1):Lagrange (2):Newton输入你的选择:choice; if(choice=2)你选择了牛顿插值计算方法,其结果为: y=Newton(x,count);break; if(choice=1)你选择了拉格朗日插值计算方法,其结果为: y=lagrange(x,count); if(choice=0)输入错误!x , y拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点是原有多项式不能利用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的浪费。

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

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