下载此文档

计算数值方法实验报告 太原理工大学.doc


文档分类:高等教育 | 页数:约23页 举报非法文档有奖
1/23
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/23 下载此文档
文档列表 文档介绍
计算数值方法实验报告学院:计算机与软件学院专业:计算机与科学技术班级:计算机学号:1111111111:某某理工大学学生实验报告学院名称计算机科学与技术专业班级计算机学号1111111111学生某某实验日期2011-6-13成绩课程名称数值计算方法实验题目实验一二分法一、课题名称方程求根:熟悉使用、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:二分法f(x)=x3+4x2-10=0在[1,2]的一个实根,且要求满足精度|x*-xn|<×10-5二、目的和意义(1)了解非线性方程求根的常见方法,如二分法、牛顿法、割线法。(2)加深对方程求根方法的认识,掌握算法。(3)会进行误差分析,并能对不同方法进行比较。三、计算公式 f(x)在区间(x,y)上连续先找到a、b属于区间(x,y),使f(a),f(b)异号,说明在区间(a,b)一定有零点,然后求f[(a+b)/2], 现在假设f(a)<0,f(b)>0,a<b①如果f[(a+b)/2]=0,该点就是零点, 如果f[(a+b)/2]<0,则在区间((a+b)/2,b)有零点,(a+b)/2=>a,从①开始继续使用中点函数值判断。如果f[(a+b)/2]>0,则在区间(a,(a+b)/2)有零点,(a+b)/2<=b,从①开始继续使用中点函数值判断。这样就可以不断接近零点。通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值四、结构程序设计#include<iostream>#include<cmath>usingnamespacestd;doublef(doublex){returnx*x*x+4*x*x-10;}intmain(){doublet1=1,t2=2;doublet=(t1+t2)/2;while(fabs(f(t))>=){if(f(t1)*f(t)<=0){t2=t;t=(t1+t2)/2;}elseif(f(t)*f(t2)<=0){t1=t;t=(t1+t2)/2;}}cout<<t<<endl;return1;}结果:五、结果讨论和分析 在编写这个程序的时候我感觉到了在编写的过程中的不易,在编写的过程中我改变初值然后运行,发现在初值的改变对运行时间的影响不大,结果没有影响。在调试的过程中发现自己还是很粗心,容易犯很简单的错误。在今后的学习中应该做编写程序。实验地点综合楼六层606室指导教师王峥学院名称计算机科学与技术专业班级计算机学号1111111111学生某某实验日期2011-6-13成绩课程名称数值计算方法实验题目实验二线性方程组的直接解法一、课题名称线性方程组的直接解法合理利用Gauss消元法、LU分解法、追赶法求解下列方程组:①②③④(n=5,10,100………)二、目的和意义(1)了解线性方程组常见的直接解法,如Guass消元法、LU分解法、追赶法。(2)加深对线性方程组求解方法的认识,掌握算法。(3)会进行误差分析,并能对不同方法进行比较。四、计算公式高斯分解法:⑴将原方程组化为三角形方阵的方程组:lik=aik/akkaij=aij-lik*akjk=1,2,…,n-1i=k+1,k+2,…,nj=k+1,k+2,…,n+1⑵由回代过程求得原方程组的解:xn=ann+1/annxk=(akn+1-∑akjxj)/akk(k=n-1,n-2,…,2,1)五、结构程序设计#include""doublea[15][15],a0[15][15];doubleb[15],b0[15],l[15];intn;voiddisplayA(){ printf("\n"); for(intj=1;j<=n;j++) { for(inti=1;i<=n;i++) printf("a[%d][%d]=%f",j,i,a[j][i]); printf("b[%d]=%f\n",j,b[j]); } for(intm=1;m<=n;m++) printf("l[%d]=%f",m,l[m]); printf("\n");}intmain(){ FILE*f; inti,j,k; f=fopen("","r"); fscanf(f,"%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { fscanf(f,"%lf",&a[i][j]); a0[i][j]=a[i][j]; } fscanf(f,"%lf",&b[i]); b0[i]=b[i]; } displayA(); fclose(f); k=1; do { for(i=1;i<=n;i++) { if(i==k)c

计算数值方法实验报告 太原理工大学 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数23
  • 收藏数0 收藏
  • 顶次数0
  • 上传人799474576
  • 文件大小2.49 MB
  • 时间2020-06-26
最近更新