首页 计算方法实验指导书(有例程)

计算方法实验指导书(有例程)

举报
开通vip

计算方法实验指导书(有例程)计算方法实验指导书理学院实验中心数学专业实验室编写实验一列主元消去法【实验类型】设计性【实验学时】2学时【实验内容】.掌握列主元消去法的基本思路和迭代步骤.并能够利用列主元的高斯消去法解任意阶数的线性方程组;【实验前的预备知识】计算机基础知识;熟悉编程基本思想;熟悉常见数学函数;【实验方法或步骤】列主元消去法基本思路设有线性方程组Axb,设A是可逆矩阵。列主元消去法的基本思想就是通过列主元的选取将初等行变换作用于方程组的增广矩阵BA|b,将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组。列主元高斯消去法算法...

计算方法实验指导书(有例程)
计算方法实验指导书理学院实验中心 数学 数学高考答题卡模板高考数学答题卡模板三年级数学混合运算测试卷数学作业设计案例新人教版八年级上数学教学计划 专业实验室编写实验一列主元消去法【实验类型】设计性【实验学时】2学时【实验内容】.掌握列主元消去法的基本思路和迭代步骤.并能够利用列主元的高斯消去法解任意阶数的线性方程组;【实验前的预备知识】计算机基础知识;熟悉编程基本思想;熟悉常见数学函数;【实验方法或步骤】列主元消去法基本思路设有线性方程组Axb,设A是可逆矩阵。列主元消去法的基本思想就是通过列主元的选取将初等行变换作用于方程组的增广矩阵BA|b,将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组。列主元高斯消去法算法描述将方程组用增广矩阵BA|baj(1)表示。jn(n1)步骤1:消元过程,对k1,2,L,n1选主元,找ikk,k1,L,n使得maxaik如果aik,k0,则矩阵A奇异,程序结束;否则执行(3);如果ikk,则交换第k行与第ik行对应元素位置,akj兀,jk,L,n1;消元,对ik,L,n,计算hkaik/akk,对jk1丄,n1,计算aijaijlikakj.步骤2:回代过程:(1)若ann0,则矩阵奇异,程序结束;否则执行(2);(2)Xnan,ni/ann;对in1丄,2,1,计算xiai,n1aijxjji1/aii[实验内容]在课后习题中选择一个求解线性方程组的题编程计算。交回实验报告与计算结果[实验程序](由学生独立完成)参考程序:列主元消去法#include"math.h"voidzhuyuan(k,n,a)intk,n;floata[5][6];{intt,i,j;floatp,q;p=fabs(a[k][k]);t=k;for(i=k+1;i<=n;i++)if(fabs(a[i][k])>p){p=fabs(a[i][k]);t=i;}for(j=k;j<=n+1;j++){q=a[k][j];a[k][j]=a[t][j];a[t][j]=q;}}voidshuru(n,a)intn;floata[5][6];{inti,j;printf("inputa[i][j]:\n");for(i=0;i<=n;i++){for(j=0;j<=n+1;j++){scanf("%f,"%a[i][j]);printf("%8.5f",a[i][j]);}printf("\n");}}voidxiaoyuan(n,a)intn;floata[5][6];{int(k=0;k=0;k--){x[k]=a[k][n+1];for(j=k+1;j<=n;j++)x[k]=x[k]-a[k][j]*x[j];x[k]=x[k]/a[k][k];}}main(){intn,i;floata[5][6],x[5];printf("inputn:\nn=");scanf("%d",&n);printf("%d\n",n);n=n-1;shuru(n,a);huidai(n,a,x);for(i=0;i<=n;i++)printf("x[%d]=%f\n",i+1,x[i]);且系数行printf("\n");}/*说明:本程序只能求解方程个数与未知量个数相同,列式不为零的线形方程组。*/例求解线形方程组:(书118页2(1))1.0000x10.8324x20.7675x30.9831x48.89970.8324x10.6930x20.6400x30.8190x47.41440.7576x10.6400x20.5911x30.7580x46.85280.9831x10.8190x20.7580x30.0055x44.9171此程序运行结果如下:inputn:n=4inputa[i][j]:1.000000.832400.767500.983108.899700.832400.693000.640000.819007.414400.767500.640000.591100.758006.85280x[1]=1.0000940.983100.819000.758000.005504.91710x[2]=1.999953x[3]=2.999929x[4]=4.000000实验二最小二乘法实验类型】设计性实验学时】2学时实验内容】曲线拟合的最小二乘法的基本思路和拟合步骤能根据给定的函数值表构造出次数不相同的拟合多项式。实验前的预备知识】1.计算机基础知识;2.熟悉编程基本思想;3.熟悉常见数学函数;实验方法或步骤】1.最小二乘法的基本思路已知数据对xj,yjj1,2,L,n,求多项式mp(x)aixii0(mn)nnm2使得(a0,a1,L,an)Riajxiyi为最小,这就是一个最小二乘问题i0i1j02.最小二乘法算法描述:用线性函数p(x)abx为例,拟合给定数据<,y,i1,2,L,m步骤1:输入m值,及xi,yi,i1,2,L,m;步骤2:建立正规方程组1ximLxima0yixi2xi2Lxim1a1xiyiMMOMMMmm12mammxixiLxi2mximy步骤3:解法方程组,求出系数ai;步骤4:输出p(x)abx[实验内容]在课后习题中选择一个题目编程计算。交回实验报告与计算结果[实验程序](由学生独立完成)参考程序:最小二乘拟合为列主元消去法程序*/#include"math.h"#include"lzhuyuan.c"/*lzhuyuan.cvoidnihe(m,a)intm;floata[5][6];{intn,i,j,k;floatx[9],y[9],b[9];printf("inputn:n=");scanf("%d,&n);printf("%d\n",n);printf("inputx[i],y[i]:\n");for(i=0;i<=n;i++){scanf("%f,%f,",&x[i],&y[i]);printf("%11.6f,%11.6f\n",x[i],y[i]);b[i]=1}printf("\n");for(i=0;i<=m;i++){for(k=0;k<=n;k++){a[i][0]=a[i][0]+b[k];a[i][m+1]=a[i][m+1]+b[k]*y[k];b[k]=b[k]*x[k];}}for(j=1;j<=m;j++){for(i=0;i<=m-1;i++)a[i][j]=a[i+1][j-1];for(k=0;k<=n;k++){a[m][j]=a[m][j]+b[k];b[k]=b[k]*x[k];}}for(i=0;i<=m;i++){for(j=0;j<=m+1;j++)printf("%11.6f,",a[i][j]);printf("\n");}}main(){intm,i;staticfloata[5][6],z[5];printf("inputm:m=");scanf("%d",&m);printf("%d\n",m);nihe(m,a);xiaoyuan(m,a);huidai(m,a,z);for(i=i;i<=m;i++)printf("\na[%d]=%-11.6f",i,z[i]);printf("\n");}用最小二乘法将其拟合一条二次曲线。(书174页,例1)程序运行结果如下:Inputm:m=2Inputn:n=8Inputx[i],y[i]:1.000000,2.0000003.000000,7.0000004.000000,8.0000005.000000,10.0000006.000000,11.0000007.000000,11.0000008.000000,10.0000009.000000,9.00000010.000000,8.0000009.000000,53.000000,381.000000,76.000000,53.000000,381.000000,3017.000000,489.000000,381.000000,3017.000000,25317.000000,3547.000000,A[0]=-1.459655A[1]=3.605306A[2]=-0267570实验三龙贝格方法【实验类型】设计性【实验学时】2学时【实验内容】1•理解龙贝格方法的基本思路2•用龙贝格方法设计算法,编程求解一个数值积分的问题。【实验前的预备知识】计算机基础知识;熟悉编程基本思想;熟悉常见数学函数;【实验方法或步骤】[实验方法]龙贝格方法的基本思路龙贝格方法是在积分区间逐次二分的过程中,通过对梯形之值进行加速处理,从而获得高精度的积分值。龙贝格方法的算法步骤1准备初值fa和fb,用梯形计算公式计算出积分近似值步骤2按区间逐次分半计算梯形公式的积分近似值2,0,1,2,…令计算x1,n21i步骤3按下面的公式积分(为便于编程,写下列形式)梯形公式:Sn辛普生公式:Cn龙贝格公式:RnC2n3S2nSn15C2nCn63S2nT2nTn步骤4精度控制当R2n尺(为精度)时,终止计算,并取R2n为近似值,否则,将步长折半,转步骤2[实验内容]在课后习题中选择一个题目编程计算。交回实验报告与计算结果[实验程序](由学生独立完成)参考程序:龙贝格方法#inelude“math.h”Floatf(x)Floatx;{floaty;Y=exp(-x*x);Return(y);}Main(){floata,b,h,x,R,eps,S,T[20];Inti,j,m=2,g;Printf(“hinputa,b,esp:\n”)Scanf(%f,%f,%f”,&a,&b,&eps);Printf(a=%f,b=%f,eps=%f\n”,a,b,eps);h=b-a;t[1]=h*(f(a)+f(b))/2;t[2]=(T[1]+h*f(a+h/2))/2;t[1]=(4*T[2]-T[1])/3;for(i=2;i<=3;i++){S=0;for(j=I;j<=2*m-1;j=j+2){x=a+j*h/m/2;S=s+f(x);}T[i+1]=(T[i]+h*s/m)/2;G=1;For(j=I;j>=1;j--){g=4*g;T[j]=(T[j+1]*g-T[j])/(g-1);}M=2*m;}R=T[1];for(i=4;;i++){s=0;for(j=I;j<=2*m-1;j=j+2){x=a+j*h/m/2;S=s+f(x);}T[i+1]=(T[i]+h*s/m)/2;G=1;For(j=I;j>=i-2;j--){g=4*g;T[j]=(T[j+1]*g-T[j])/(g-1);}if(fabs(T[i-2]-R)
本文档为【计算方法实验指导书(有例程)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:78KB
软件:Word
页数:13
分类:
上传时间:2021-11-18
浏览量:5