计算方法实验指导书(有例程).doc_第1页
计算方法实验指导书(有例程).doc_第2页
计算方法实验指导书(有例程).doc_第3页
计算方法实验指导书(有例程).doc_第4页
计算方法实验指导书(有例程).doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

计算方法实验指导书理学院实验中心数学专业实验室编写实验一 列主元消去法【实验类型】 验证性【实验学时】 2学时【实验内容】1掌握列主元消去法的基本思路和迭代步骤2并能够利用列主元的高斯消去法解任意阶数的线性方程组;3、从课后题中选一题进行验证,得出正确结果,交回实验报告与计算结果。【实验前的预备知识】 1计算机基础知识;2熟悉编程基本思想;3熟悉常见数学函数。【实验方法或步骤】1 列主元消去法基本思路 设有线性方程组,设是可逆矩阵。列主元消去法的基本思想就是通过列主元的选取将初等行变换作用于方程组的增广矩阵,将其中的变换成一个上三角矩阵,然后求解这个三角形方程组。2 列主元高斯消去法算法描述将方程组用增广矩阵表示。步骤1:消元过程,对(1) 选主元,找使得(2) 如果,则矩阵奇异,程序结束;否则执行(3);(3) 如果,则交换第行与第行对应元素位置, ;(4) 消元,对,计算对,计算步骤 2:回代过程:(1) 若则矩阵奇异,程序结束;否则执行(2);(2) 对,计算 实验内容在课后习题中选择一个求解线性方程组的题编程计算。交回实验报告与计算结果实验程序(由学生独立完成)参考程序: 列主元消去法#include math.hvoid zhuyuan (k,n,a)int k,n;float a56;int t,i,j; float p,q; p=fabs(akk); t=k; for (i=k+1;ip) p=fabs(aik); t=i; for (j=k;j=n+1;j+) q=akj; akj=atj; atj=q; void shuru(n,a)int n;float a56;int i,j; printf(input aij:n); for(i=0;i=n;i+) for(j=0;j=n+1;j+) scanf(%f,%aij); printf(%8.5f,aij); printf(n); void xiaoyuan(n,a)int n;float a56;int(k=0;kn;k+) zhuyuan(k,n,a); for (i=k+1;i=n;i+) for (j=k+1;j=0;k-) xk=akn+1; for (j=k+1;j=n;j+) xk=xk-akj*xj; xk=xk/akk; main()int n,i; float a56,x5; printf(input n:nn=); scanf(%d,&n); printf(%dn,n); n=n-1; shuru(n,a); huidai(n,a,x); for (i=0;i=n;i+) printf(x%d=%fn,i+1,xi); printf(n); /*说明:本程序只能求解方程个数与未知量个数相同,且系数行列式不为零的线形方程组。*/例 求解线形方程组: (书118页 2(1) )此程序运行结果如下:input n:n=4input aij: 1.00000 0.83240 0.76750 0.98310 8.89970 0.83240 0.69300 0.64000 0.81900 7.41440 0.76750 0.64000 0.59110 0.75800 6.85280 0.98310 0.81900 0.75800 0.00550 4.91710x1=1.000094x2=1.999953x3=2.999929x4=4.000000实验二 最小二乘法【实验类型】 设计性【实验学时】 2学时【实验内容】1. 曲线拟合的最小二乘法的基本思路和拟合步骤2. 能根据给定的函数值表构造出次数不相同的拟合多项式。【实验前的预备知识】 1计算机基础知识;2熟悉编程基本思想;3熟悉常见数学函数;【实验方法或步骤】1 最小二乘法的基本思路 已知数据对,求多项式使得为最小,这就是一个最小二乘问题。2 最小二乘法算法描述:用线性函数为例,拟合给定数据。步骤1:输入值,及;步骤2:建立正规方程组步骤3:解法方程组,求出系数;步骤4:输出。实验内容在课后习题中选择一个题目编程计算。交回实验报告与计算结果实验程序(由学生独立完成)参考程序:最小二乘拟合 #include math.h #include lzhuyuan.c /*lzhuyuan.c 为列主元消去法程序*/ void nihe (m,a) int m; float a56; int n,i,j,k; float x9,y9,b9; printf (input n:n=); scanf(%d,&n); printf(%dn,n); printf(input xi,yi:n); for(i=0;i=n;i+) scanf(%f,%f,&xi,&yi); printf(%11.6f,%11.6fn,xi,yi); bi=1 printf(n); for(i=0;i=m;i+) for(k=0;k=n;k+) ai0=ai0+bk; aim+1=aim+1+bk*yk; bk=bk*xk; for(j=1;j=m;j+) for(i=0;i=m-1;i+) aij=ai+1j-1; for(k=0;k=n;k+) amj=amj+bk; bk=bk*xk; for(i=0;i=m;i+) for(j=0;j=m+1;j+) printf(%11.6f,aij); printf(n); main() int m,i; static float a56,z5; printf(input m:m=); scanf(%d,&m); printf(%dn,m); nihe(m,a); xiaoyuan(m,a); huidai(m,a,z); for(i=i;i=m;i+) printf(na%d=%-11.6f,i,zi); printf(n); 用最小二乘法将其拟合一条二次曲线。(书174页,例1)程序运行结果如下:Input m:m=2Input n:n=8Input xi,yi: 1.000000, 2.000000 3.000000, 7.000000 4.000000, 8.000000 5.000000, 10.000000 6.000000, 11.000000 7.000000, 11.000000 8.000000, 10.000000 9.000000, 9.000000 10.000000, 8.000000 9.000000, 53.000000,381.000000,76.000000,53.000000,381.000000,3017.000000,489.000000,381.000000,3017.000000,25317.000000,3547.000000, A0=-1.459655 A1=3.605306 A2=-0267570 实验三 龙贝格方法【实验类型】 设计性【实验学时】 2学时【实验内容】1.理解龙贝格方法的基本思路2.用龙贝格方法设计算法,编程求解一个数值积分的问题。【实验前的预备知识】 1计算机基础知识;2熟悉编程基本思想;3熟悉常见数学函数;【实验方法或步骤】实验方法1 龙贝格方法的基本思路 龙贝格方法是在积分区间逐次二分的过程中,通过对梯形之值进行加速处理,从而获得高精度的积分值。2 龙贝格方法的算法步骤1 准备初值 和,用梯形计算公式计算出积分近似值 步骤2 按区间逐次分半计算梯形公式的积分近似值 令, 计算,步骤3 按下面的公式积分(为便于编程,写下列形式)梯形公式: 辛普生公式: 龙贝格公式: 步骤4 精度控制 当,(为精度)时,终止计算,并取为近似值,否则,将步长折半,转步骤2。实验内容在课后习题中选择一个题目编程计算。交回实验报告与计算结果实验程序(由学生独立完成)参考程序:龙贝格方法#include“math.h”Float f(x)Float x;float y;Y=exp(-x*x);Return(y);Main() float a,b,h,x,R,eps,S,T20;Int i,j,m=2,g;Printf(“ninput a,b,esp:n”)Scanf(“%f,%f,%f”,&a,&b,&eps);Printf(“a=%f,b=%f,eps=%fn”,a,b,eps);h=b-a;t1=h*(f(a)+f(b)/2;t2=(T1+h*f(a+h/2)/2;t1=(4*T2-T1)/3;for(i=2;i=3;i+)S=0;for (j=I;j=1;j-)g=4*g;Tj=(Tj+1*g-Tj)/(g-1);M=2*m;R=T1;for(i=4;i+)s=0;for (j=I;j=i-2;j-)g=4*g;Tj=(Tj+1*g-Tj)/(g-1);if(fabs(Ti-2-R)eps)break;m=2*m;R=Ti-2;printf(I=%fn,Ti-2;此程序运行结果如下:input a,b,esp:a=0.000000b=1.000000,ep=0.00001I=0.746824实验四 龙格-库塔法【实验类型】 设计性【实验学时】 2学时【实验内容】1用标准四阶龙格库塔方法设计算法2. 编程解微分方程初值问题;【实验前的预备知识】 1计算机基础知识;2熟悉编程基本思想;3熟悉常见数学函数;【实验方法或步骤】1 龙格库塔方法的基本思路 设法计算在某些点上的函数值,然后对这些函数值做线性组合,构造近似计算公式;再把近似公式和解的泰勒展开式相比较,使前面的若干项吻合,从而达到较高的精度。2 四阶龙格库塔方法的计算步骤求解 对上述给定的,用四阶龙格-库塔法求解常微分方程初值问题实验内容在课后习题中选择一个题目编程计算。交回实验报告与计算结果实验程序(由学生独立完成)参考程序:标准的四阶R-K法/*用标准的R-K方法求解书241页 例1 */#include math.hfloat f(x,y);float x,y;float z; z=y-2*x/y;return(z);main()int i,n;float a,b,h,y0,x,y,k1,k2,k3,k4,y120;printf(input a,b,h,y0:n);scanf(%f,%f,%f,%f,&a,&b,&h,&y0);printf(a=%fnb=%fny0=%fn,a,b,h,y0);printf(y(%f)=%fn,a,y0);n=floor(b-a)/h);y10=y0;for(i=0;i=n;i+)x=a+i*h;y=y1i;k1=h*f(x,y);x=x+h/2;y=y1i+k2/2;k3=h*f(x,y);x=x+h/2;y=y1i+k3;k4=h*f(x,y);y1i+1=y1i+(k1+2*k2+2*k3+k4)/6;printf(y(%f)=%fn,x,y1i+1);/*说明书上例题所给区间为0,0.6,步长与初值也已给定,而本程序中区间为a,b步长h与初值y0均未定,运行时先输入a,b,h及y0的值.*/运行结果如

温馨提示

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

评论

0/150

提交评论