太原理工大学软件工程数值实验报告.doc_第1页
太原理工大学软件工程数值实验报告.doc_第2页
太原理工大学软件工程数值实验报告.doc_第3页
太原理工大学软件工程数值实验报告.doc_第4页
太原理工大学软件工程数值实验报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

本科实验报告课程名称: 计算机数值方法 实验地点: 行勉楼A205 专业班级:软件6666班 学号:2014006666 学生姓名: 666666 指导教师: 6666 2016 年 3 月 实验一:方程求根一、 实验目的和要求在许多的实际问题中,常常会遇到一些方程求根的问题,对于非线性方程求根的研究是很重要的,因此我们有必要学会一些求根方法。实验要求是我们熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。二、实验内容和原理熟悉使用二分法、迭代法、牛顿法、割线法等方法对给定的方程进行根的求解。选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0在1,2内的一个实根,且要求满足精度|x*-xn|0.510-5三、 主要设仪器备笔记本电脑;软件vc+6.0;四、 操作方法与实验步骤(代码)1二分法;#include Stdio.h#include math.hdouble f(double x) /*定义一个函数*/return x*x*x+4*x*x-10; main() double a=1,b=2; /*给出区间的两个端点*/ double x=(a+b)/2; double xi; /*记下计算出x的前一个数,用于满足给出的精度*/ int i=0; /*计算满足精度所需要的次数*/ do /*计算x*/ i+; xi=x; if(f(x)*f(a)0) b=x; if(f(x)*f(b)0.5*0.00001);getch(); 2.牛顿法;#include Stdio.h#include math.hdouble f(double x) /*定义函数*/return x*x*x+4*x*x-10; double f1(double x) /*由函数定义出对应的导数*/return 3*x*x+8*x; main() double x=1.5,xi;/*定义初值和变量xi*/ int i=0; /*计算x的次数*/ do /*计算x*/ i+; xi=x; x=x-f(x)/f1(x); printf(x(%d)=%lfn,i,x); while(fabs(x-xi)0.5*0.00001);getch();五、实验结果与分析(1) 二分法输出结果为:(2)牛顿法输出结果为:六、讨论与心得:从两种方法可以看出,牛顿法比二分法收敛速度快,但用牛顿法得求函数的导数,计算机无法求得,得人为输进。通过编写程序,是我们对c语言也能更进一步的了解和熟练。实验二:线性方程组的直接解法实验一:Gauss消元法实验一、 实验目的和要求在自然科学和工程技师中很多问题需要归结为解线性方程组的问题,如何解线性方程组就具有实际意义。我们需要掌握Gauss消元法,并且用该方法求解方程组。二、实验内容和原理 合理利用Gauss消元法、LU分解法或追赶法求解下列方程组:3、 主要仪器设备 笔记本电脑;软件vc+6.0;4、 操作方法与实验步骤(代码)Guass消元法;#include Stdio.h#define N 3void Gauss_eliminant(double aNN+1) /*建立系数及常数项的二维数组*/ double bN; /*建立解的一位数组*/ double s; /*计算解系时的变量*/ int i,j,k; for(k=0;kN;k+) /*消元过程*/ for(i=k;i=0;j-) ai+1j=ai+1j-akj*ai+1k/akk; printf(消元后得到上三角矩阵:);printf(n); for(i=0;iN;i+) /*输出消元后的上三角矩阵*/ for(j=0;j=0;i-) /*回代过程*/ s=0; for(j=N-1;ji;j-) s=aij*bj+s; bi=(aiN-s)/aii; for(i=0;iN;i+) /*输出解系*/ printf(x(%d)=%lfn,i+1,bi); main() int i ,j; double aNN+1; printf(输入系数及常数项矩阵:); printf(n); for(i=0;iN;i+) for(j=0;j=N;j+) scanf(%lf,&aij); Gauss_eliminant(a);getch();5、 实验结果与分析宏定义的N代表了N维矩阵改变N可以解决n维矩阵;(1) 第一步执行如下:(2) 输入矩阵后执行如下:6、 讨论与心得 虽然内容并不是很困难,但是在编写程序的时候遇到很多的问题,主要原因是对算法没有很好的理解,其次就是编程经验不丰富,导致算法的编写并不是很顺利,因此我需要进一步的去掌握编程技巧以及算法。实验三:线性方程组的迭代解法一、 实验目的解线性方程组的另一种方法就迭代法,就是用某种极限过程去逐步逼近其精确的方法。我们需学会使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。二、实验内容使用雅可比迭代法或高斯-赛德尔迭代法对下列方程组进行求解。三、 主要仪器设备 笔记本电脑;软件vc+6.0;四、操作方法与实验步骤(代码)迭代法:#include Stdio.h#include math.h#define N 3main() double aNN+1; /*方程组系数及常数项的二维数组*/ double bN; /*近似解的组合*/ double b1N; /*近似解解前一个的组合*/ double s; /*为叠加准备的变量*/ int i,j; printf(输入系数及常数项矩阵:); printf(n); for(i=0;iN;i+) /*输入方程组系数及常数项*/ for(j=0;j=N;j+) scanf(%lf,&aij); printf(输入解的初值:); printf(n); for(i=0;iN;i+) /*输入解的初值*/ scanf(%lf,&bi); printf(迭代列表如下:); printf(n);do /*迭代求解*/ for(i=0;iN;i+) b1i=bi; for(i=0;iN;i+) s=0; for(j=0;jN;j+) if(i!=j) s=s+aij*bj; bi=(aiN-s)/aii; for(j=0;j0.00005&fabs(b11-b1)0.00005&fabs(b12-b2)0.00005); getch();五、 实验结果与分析(1)宏定义N=3第一步执行结果如下:(2)输入系数及常数项矩阵后执行如下:(3)输入解的初值后执行如下:六、讨论、心得对迭代的思想有更深的了解,算法的编写还是比较麻烦的,主要原因是对之前对迭代的思想,没有深层次的认识,只是停留在其如何实现上面。此外自己的编程能力较实验一有了进步。实验四:代数插值法一、 实验目的和要求插值是寻求近似函数的方法之一,本实验要求使用插值法求解简单函数。我们需使用拉格朗日插值法或牛顿插值法求解有关问题。二、实验内容使用拉格朗日插值法或牛顿插值法求解:已知f(x)在6个点的函数值如下表所示,运用插值方法,求f(0.596)的近似值。x0.400.550.650.800.901.05f(x)0.410750.578150.696750.888111.026521.25386三、 主要仪器设备 笔记本电脑;软件vc+6.0;四、 操作方法与实验步骤(代码)拉格朗日插值法;#include Stdio.h#define N 6main() int i,j; double xN,yN; double lxN; /*基函数的一维数组*/ double xi; /*xi为题目中给定的变量*/ double Lx; /*所要求的结果*/ printf(输出(x,f(x):); printf(n); for(i=0;iN;i+) /*输入(x,f(x)*/ scanf(%lf%lf,&xi,&yi); printf(输入要求的xi:); printf(n); scanf(%lf,&xi); /*输入要求的xi*/ printf(输出每个基函数的值:); printf(n); for(i=0;iN;i+) /*求N个基函数*/ lxi=1; for(j=0;jN;j+) if(xi-xj!=0) lxi=(xi-xj)/(xi-xj)*lxi; printf(lx(%d)=%lfn,i,lxi); Lx=0; for(i=0;iN;i+) /*求插值多项式*/ Lx=yi*lxi+Lx; printf(结果为:); printf(%lf,Lx);/*打印出结果*/ getch();五

温馨提示

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

评论

0/150

提交评论