计算机数值计算方法.doc_第1页
计算机数值计算方法.doc_第2页
计算机数值计算方法.doc_第3页
计算机数值计算方法.doc_第4页
计算机数值计算方法.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科实验报告课程名称: 计算机数值方法 实验项目: 二分法 牛顿法 迭代法 实验地点: 学院楼606 专业班级: 学号: 学生姓名: 指导教师: 王丽娟 年 05月 8日太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名实验日期5月8日成绩课程名称数值计算方法实验题目二分法迭代法求解方程一、实验目的和要求(必填)熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0在1,2内的一个实根,且要求满足精度|x*-xn|0.510-52、 实验内容和原理(必填)f(x)在区间(x,y)上连续 先找到a、b属于区间(x,y),使f(a),f(b)异号,说明在区间(a,b)内一定有零点,然后求f(a+b)/2, 现在假设f(a)0,ab 如果f(a+b)/2=0,该点就是零点, 如果f(a+b)/2a,从开始继续使用 中点函数值判断。 如果f(a+b)/20,则在区间(a,(a+b)/2)内有零点,(a+b)/2=b,从开始继续使用 中点函数值判断。 这样就可以不断接近零点。 通过每次把f(x)的零点所在小区间收缩一半的方法,使区间的两个端点逐步迫近函数的零点,以求得零点的近似值三、主要仪器设备(必填)PC,DEV-C四、操作方法与实验步骤(可选)1.迭代法#includeint main() int i=0; double a; double b100; printf(请输入任意一个在1与2之间的数n); scanf(%lf,&b0); do bi+1=bi-(bi*bi*bi+4*bi*bi-10)/(3*bi*bi+8*bi); i+; while(bi-bi+10.000005); printf(%.8lf,bi); getch(); 2. 牛顿法#includestdio.h#includemath.hmain() double x=1.5,a=0; while(pow(pow(x-a),2),0.5)/20.5*0.00001) a=x; x=0.5*pow(10-pow(x,3),0.5); printf(%fn,x); getchar();六、实验结果与分析(必填)结果与书上的答案一致,编译过程中对do-while循环中条件的存在一定的不合适。实验地点综合楼六层606室指导教师王丽娟本科实验报告课程名称: 计算机数值方法 实验项目:高斯消元法,LU分解法,追赶法 实验地点: 学院楼606 专业班级: 学号: 学生姓名: 指导教师: 王丽娟 年 5 月 8日太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名实验日期5月8日成绩课程名称计算机数值方法实验题目高斯消元法,LU分解法,追赶法1、 实验目的和要求(必填)2) 线性方程组的直接解法合理利用Gauss消元法、LU分解法、追赶法求解下列方程组: (n=5,10,100,)2、 实验内容和原理(必填)高斯分解法:将原方程组化为三角形方阵的方程组:lik=aik/akk aij= aij- lik* akj k=1,2,n-1 i=k+1,k+2, ,n j=k+1,k+2, ,n+1由回代过程求得原方程组的解: xn= ann+1/ ann xk=( akn+1-akj xj)/ akk (k=n-1,n-2, ,2,1) LU分解法:将系数矩阵A转化为A=L*U, L为单位下三角矩阵,U为普通上三角矩阵,然后通过解方程组l*y=b,u*x=y,来求解x.追赶法:用来求对角方程组;将系数矩阵A转化为A=L*U, L为普通下n-1对角矩阵,U为单位上n-1对角矩阵,然后通过解方程组l*y=b,u*x=y,来求解x.3、 主要仪器设备(必填)PC,DEV-C+4、 操作方法与实验步骤(可选)1. 高斯消元法#includeint main() int i,j; float z,b,c,d,x1,x2,x3; float a34; printf(请输入矩阵n); for(i=0;i3;i+) for(j=0;j4;j+) scanf(%f,&aij); z=a10/a00; if(z!=0); for(j=0;j4;j+) a1j=a1j-z*a0j; b=a20/a00; if(b!=0); for(j=0;j4;j+) a2j=a2j-b*a0j; c=a21/a11; if(c!=0); for(j=0;j4;j+) a2j=a2j-c*a1j; for(i=0;i3;i+) for(j=0;j4;j+) printf( %f,aij); printf(n); x3=a23/a22; x2=(a13-x3*a12)/a11; x1=(a03-x3*a02-x2*a01)/a00; printf(x1=%f x2=%f x3=%f,x1,x2,x3); getch(); 2. 高斯列主元素消元法#includeint main() int i,j,n; float z,b,c,k,x1,x2,x3,x4; float a45; printf(请输入矩阵n); for(i=0;i4;i+) for(j=0;j5;j+) scanf(%f,&aij); for(i=1;i4;i+) if(a00ai0) for(j=0;j5;j+) k=a0j; a0j=aij; aij=k; for(n=1;n4;n+) z=an0/a00; if(z!=0); for(j=0;j5;j+) anj=anj-z*a0j; for(n=2;n4;n+) c=an1/a11; if(c!=0) for(j=0;j5;j+) anj=anj-c*a1j; b=a32/a22; if(b!=0) for(j=0;j5;j+) a3j=a3j-b*a2j; for(i=0;i4;i+) for(j=0;j5;j+) printf( %f,aij); printf(n); x4=a34/a33; x3=(a24-x4*a23)/a22; x2=(a14-x4*a13-x3*a12)/a11; x1=(a04-x4*a03-x3*a02-x2*a01)/a00; printf(%f %f %f,x1,x2,x3); getch(); 3. LU分解法#includeint main() int n,i,j,k,l,m; float a1010,b1010,c1010; float y10,w10; float z; printf(请输入为几阶矩阵n); scanf(%d,&n); printf(请输入矩阵n); for(i=0;in;i+) for(j=0;jn;j+) scanf(%f,&aij); for(l=0;ln-1;l+) for(k=l+1;kn;k+) bkl=akl/all; z=akl/all; printf(b%d%d=%f n z=%fn,k,l,bkl,z); if(bkl!=0); for(j=0;jn;j+) akj=akj-bkl*alj; for(i=0;in;i+) bii=1; for(i=0;in;i+) for(j=0;jn;j+) if(ij) bij=0; for(m=0;mn;m+) for(i=0;in;i+) wm=wm+bn0*yn; for(i=0;in;i+) for(j=0;jn;j+) printf( %f,aij); printf(n); printf(n); for(i=0;in;i+) for(j=0;jn;j+) printf( %f,bij); printf(n); getch(); 4. 追赶法#include stdio.hmain() double a15,b15,c15,d15;double t;int i,n;/*/f=fopen(zgf.txt,r);scanf(%d,&n);scanf(%lf%lf%lf,&b1,&c1,&d1);for(i=2;i=n-1;i+)scanf(%lf%lf%lf%lf,&ai,&bi,&ci,&di);scanf(%lf%lf%lf,&an,&bn,&dn);/fclose(f);/*/c1=c1/b1;d1=d1/b1;for(i=2;i=1;i-) di=di-ci*di+1;printf(n*n);for(i=1;i=n;i+)printf(d%2d=%lfn,i,di); getch(); 实验地点综合楼六层606室指导教师王丽娟本科实验报告课程名称: 计算机数值方法 实验项目: 雅克比迭代法以及高斯赛德尔法 实验地点: 学院楼606 专业班级: 学号: 学生姓名: 指导教师: 王丽娟 年 5 月 8 日太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名实验日期5月8日成绩课程名称计算机数值方法实验题目雅克比迭代法1、 实验目的和要求(必填) 线性方程组的迭代解法使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。2、 实验内容和原理(必填)雅克比迭代法:设线性方程组Ax=b的系数矩阵A可逆且主对角元素a11,a22,ann均不为零,令D=diag(a11,a22,ann)并将A分解成A=(A-D)+D从而线性方程组可写成Dx=(D-A)x+b则有迭代公式x(k+1)=B1x(k)+f1其中,B1=I-D-1A,f1=D-1b。3、 主要仪器设备(必填)4、 PC,vc6.05、 操作方法与实验步骤(可选)#include stdafx.hmain() float a1515,x15,sum=0;int b=0,i,j,m,n;printf(请输入行 列:); scanf(%d%d,&m,&n);printf(请输入系数n);for(i=0;im;i+)for(j=0;jn;j+)scanf(%f,&aij);printf(请输入x的初始值);for(i=0;im;i+)scanf(%f,&xi);while(b8)for(i=0;im;i+)sum=0;for(j=0;jn-1;j+)if(j!=i)sum=sum+xj*aij;xi=(ain-1-sum)/aii;printf(%f ,xi);b+;printf(n); 6、 实验结果与分析(必填) 使用高斯-赛德尔和雅克比迭代都可以求出方程组的解,但是利用高斯-赛德尔迭代法所需的迭代次数比雅克比迭代少,能够更早的达到精度要求。实验地点综合楼六层606室指导教师王丽娟 本科实验报告课程名称: 计算机数值方法 实验项目: 幂法 实验地点: 学院楼606 专业班级: 学号: 学生姓名: 指导教师: 王丽娟 年 5月 8 日太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名实验日期5月8日成绩课程名称计算机数值方法实验题目幂法求特征向量1、 实验目的和要求(必填)矩阵特征值与特征向量问题使用幂法求A模为最大的特征值及其相应的特征向量。2、 实验内容和原理(必填)幂法:由已知的非零向量x0和矩阵A的乘幂构造向量序列xn以计算矩阵A的按模最大特征值及其特征向量的方法,称为幂法。迭代公式:结果可取 3、 主要仪器设备(必填)PC,DEV-C4、 操作方法与实验步骤(可选)#include#includeint main() int i,j,n,f; float s; float a1010; printf(请输入为几阶矩阵n); scanf(%d,&n); float yn,xn,zn,mk10; printf(请输入初始矩阵Xn); for(i=0;in;i+) scanf(%f,&xi); printf(请输入矩阵An); for(i=0;in;i+) for(j=0;jn;j+) scanf(%f,&aij); for(f=0;f8;f+) for(i=0;in;i+) yi=0; for(j=0;jn;j+) yi+=aij*xj; s=y0; for(i=0;iabs(s) s=yi; mkf=s; printf(%f,mkf); for(i=0;in;i+) xi=yi/mkf; printf( %f,xi); printf(n); getch(); 5、 实验结果与分析(必填) 幂法是一种求任意矩阵A的按模最大特征值及其对应特征向量的迭代算法。该方法的最大优点是计算简单,容易在计算机上实现,对稀疏矩阵较为适合,但有时收敛速度很慢。实验地点综合楼六层606室指导教师王丽娟本科实验报告课程名称: 计算机数值方法 实验项目: 拉格朗日插值法牛顿插值法 实验地点: 学院楼606 专业班级: 学号 学生姓名: 指导教师: 王丽娟 2013年 5 月 8 日太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名实验日期5月8日成绩课程名称计算机数值方法实验题目拉格朗日差值法1、 实验目的和要求(必填)代数插值使用拉格朗日插值法或牛顿插值法求解:已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.596)的近似值。x0.400.550.650.800.901.05f(x)0.410750.578150.696750.888111.026521.253862、 实验内容和原理(必填)设函数在区间a,b上n+1互异节点x0,x1,xn上的函数值分别为y0,y1,yn,求n次插值多项式Pn(x),满足条件Pn(xj)=yj, j=0,1,n令Ln(x)=y0l0(x)+y1l1(x)+ynln(x)= yili(x)其中l0(x),l1(x), ln(x) 为以x0,x1,xn为节点的n次插值基函数,则Ln(x)是一次数不超过n的多项式,且满足Ln(xj)=yj, L=0,1,n再由插值多项式的唯一性,得Pn(x)Ln(x)3、 主要仪器设备(必填)PC,DEV-C+4、 操作方法与实验步骤(可选)#includeint main() float x,s=0; int n,i,j; printf(请输入为过几个点的差值多项式n); scanf(%d,&n); float an2,bn; printf(请依次输入各个点n); for(i=0;in;i+) for(j=0;j2;j+) scanf(%f,&anj); printf(请输入xn); scanf(%f,&x); for(i=0;in;i+) bi=1; for(j=0;jn;j+) if(i=j) bi=bi; else bi=bi*(x-aj0)/(ai0-aj0); for(i=0;in;i+) printf( %f,bi); for(i=0;in;i+) s+=bi*ai1; printf(%f,s); getch(); 5、 实验数据记录和处理(可选)六、实验结果与分析(必填)拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点是原有多项式不能利用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的浪费。实验地点综合楼六层606室指导教师王丽娟本科实验报告课程名称: 计算机数值方法 实验项目: 最小二乘法拟合 实验地点: 学院楼606 专业班级: 学号: 学生姓名: 指导教师: 王丽娟 2013年 5 月 8 日太原理工大学学生实验报告学院名称计算机科学与技术专业班级学号学生姓名实验日期5月8日成绩课程名称计算机数值方法实验题目最小二乘法1、 实验目的和要求(必填)最小二乘法拟合多项式 给定数据点(xi ,yi),用最小二乘法拟合数据的多项式,并求平方误差。xi00.50.60.70.80.91.0yi11.751.962.192.442.713.002、 实验内容和原理(必填)建立正规方程组:(xij+k)ak=xijyi ,j=0,1,n 平方误差:I=(akxik-yi)23、 主要仪器设备(必填)PC,DEV-C4、 操作方法与实验步骤(可选)5、 #includeint main() int i,n; float s,w,a,b,m,a0,a1,q; float z23; printf(请输入共有多少个坐标点n); scanf(%d,&n); float xn,yn,fn; printf(请依次输入X的坐标n); for(i=0;in;i+) scanf(%f,&xi); printf(请依次输入Y的坐标n); for(i=0;in;i+) scanf(%f,&yi); for(i=0;in;i+) s+=xi; w+=yi; a+=xi*xi; b+=xi*yi; printf( %f %f %f %fn,s,w,a,b); z00=n; z01=s; z02=w; z10=s; z11=a; z12=b; m=z10/z00; z11=z11-z01*m; z12=z12-z02*m; a1=z12/z11; a0=(z02-a1*z01)/z00; printf(y=%f+%fxn,a0,a1); for(i=0;in;i+) fi=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论