《数值分析》课程实验报告.docx

上传人:b****0 文档编号:9132494 上传时间:2023-05-17 格式:DOCX 页数:14 大小:18.68KB
下载 相关 举报
《数值分析》课程实验报告.docx_第1页
第1页 / 共14页
《数值分析》课程实验报告.docx_第2页
第2页 / 共14页
《数值分析》课程实验报告.docx_第3页
第3页 / 共14页
《数值分析》课程实验报告.docx_第4页
第4页 / 共14页
《数值分析》课程实验报告.docx_第5页
第5页 / 共14页
《数值分析》课程实验报告.docx_第6页
第6页 / 共14页
《数值分析》课程实验报告.docx_第7页
第7页 / 共14页
《数值分析》课程实验报告.docx_第8页
第8页 / 共14页
《数值分析》课程实验报告.docx_第9页
第9页 / 共14页
《数值分析》课程实验报告.docx_第10页
第10页 / 共14页
《数值分析》课程实验报告.docx_第11页
第11页 / 共14页
《数值分析》课程实验报告.docx_第12页
第12页 / 共14页
《数值分析》课程实验报告.docx_第13页
第13页 / 共14页
《数值分析》课程实验报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《数值分析》课程实验报告.docx

《《数值分析》课程实验报告.docx》由会员分享,可在线阅读,更多相关《《数值分析》课程实验报告.docx(14页珍藏版)》请在冰点文库上搜索。

《数值分析》课程实验报告.docx

《数值分析》课程实验报告

《数值分析》课程实验报告

  《数值分析》课程实验报告

  姓名:

  学号:

  学院:

  机电学院

  日期:

  2015年X月X日

  目

  录实验一函数插值方法1实验二函数逼近与曲线拟合5实验三数值积分与数值微分7实验四线方程组的直接解法9实验五解线性方程组的迭代法15实验六非线性方程求根19实验七矩阵特征值问题计算21实验八常微分方程初值问题数值解法24

  实验一函数插值方法一、问题提出

  对于给定的一元函数的n+1个节点值。

试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。

  数据如下:

  0.4

  0.55

  0.65

  0.80

  0.95

  1.05

  0.41075

  0.578150.696750.90

  1.00

  1.25382

  求五次Lagrange多项式,和分段三次插值多项式,计算,的值。

  1

  2

  3

  4

  5

  6

  7

  0.368

  0.135

  0.050

  0.018

  0.007

  0.002

  0.001

  试构造Lagrange多项式,计算的,值。

二、要求

  1、利用Lagrange插值公式

  编写出插值多项式程序;

  2、给出插值多项式或分段三次插值多项式的表达式;

  3、根据节点选取原则,对问题用三点插值或二点插值,其结果如何;

  4、对此插值问题用Newton插值多项式其结果如何。

Newton插值多项式如下:

  其中:

  三、目的和意义

  1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;

  2、明确插值多项式和分段插值多项式各自的优缺点;

  3、熟悉插值方法的程序编制;

  4、如果绘出插值函数的曲线,观察其光滑性。

  四、实验步骤

  0.4

  0.55

  0.65

  0.80

  0.95

  1.05

  0.41075

  0.578150.696750.90

  1.00

  1.25382

  求五次Lagrange多项式,和分段三次插值多项式,计算,的值。

  第一步:

先在matlab中定义lagran的M文件为拉格朗日函数代码为:

  function=lagran(x,y)w=length(x);n=w-1;l=zeros(w,w);fork=1:

n+1v=1;forj=1:

n+1if(k~=j)v=conv(v,poly(x(j)))/(x(k)-x(j));endendl(k,:

)=v;endc=y*l;end

  第二步:

然后在matlab命令窗口输入:

  >>>>x=;y=;>>lagran(x,y)

  回车得到:

  ans=121.6264

  -422.7503

  572.5667-377.2549

  121.9718

  -15.0845由此得出所求拉格朗日多项式为

  p=121.6264x5-422.7503x4+572.5667x3-377.2549x2+121.9718x-15.0845

  第三步:

在编辑窗口输入如下命令:

  >>x=;>>y=121.6264*x.-422.7503*x.+572.5667*x.-377.2549*x.+121.9718*x-15.0845;>>plot(x,y)

  命令执行后得到如下图所示图形,然后>>x=0.596;>>y=121.6264*x.-422.7503*x.+572.5667*x.-377.2549*x.+121.9718*x-15.084y=0.6262

  得到f=0.6262

  同理得到f=1.0547

  1

  2

  3

  4

  5

  6

  7

  0.368

  0.135

  0.050

  0.018

  0.007

  0.002

  0.001

  试构造Lagrange多项式,和分段三次插值多项式,计算的,值。

  实验步骤:

  第一步定义function=lagran(x,y)w=length(x);n=w-1;l=zeros(w,w);fork=1:

n+1v=1;forj=1:

n+1if(k~=j)v=conv(v,poly(x(j)))/(x(k)-x(j));endendl(k,:

)=v;endc=y*l;end定义完拉格朗日M文件

  第二步:

然后在matlab命令窗口输入:

  >>>>x=;y=;>>lagran(x,y)回车得到:

  ans=0.0001

  -0.0016

  0.0186

  -0.1175

  0.4419

  -0.9683

  0.9950由此得出所求拉格朗日多项式为p=0.0001x6-0.0016x5+0.0186x4-0.1175x3+0.4419x2-0.9683x+0.9950第三步:

在编辑窗口输入如下命令:

  >>x=;>>y=0.0001*x.-0.0016*x.+0.0186*x.-0.1175*x.+0.4419*x.-0.9683*x+0.9950;>>plot(x,y)命令执行后得到如下图所示图形,然后>>x=1.8;>>y=121.6264*x.-422.7503*x.+572.5667*x.-377.2549*x.+121.9718*x-15.084y=0.1650

  得到f=0.6262

  同理得到f=2.3644

  五、实验结论

  插值是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点,它是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。

  实验二函数逼近与曲线拟合

  一、问题提出

  从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

  在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间t的拟合曲线。

  t(分)0

  5

  10

  15

  20

  25

  30

  35

  40

  45

  50

  55

  0

  1.27

  2.16

  2.86

  3.44

  3.87

  4.15

  4.37

  4.51

  4.58

  4.02

  4.64

  二、要求

  1、用最小二乘法进行曲线拟合;

  2、近似解析表达式为;3、打印出拟合函数,并打印出与的误差,;

  4、另外选取一个近似表达式,尝试拟合效果的比较;

  5、*绘制出曲线拟合图。

  三、目的和意义

  1、掌握曲线拟合的最小二乘法;

  2、最小二乘法亦可用于解超定线代数方程组;

  3、探索拟合函数的选择与拟合精度间的关系

  四、实验步骤:

  第一步先写出线性最小二乘法的M文件functionc=lspoly(x,y,m)  >>x=;>>y=-0.0024*x.+0.2037*x+0.2305;>>plot(x,y)命令执行得到如下图

  五、实验结论 分析复杂实验数据时,常采用分段曲线拟合方法。

利用此方法在段内可以实现最佳逼近,但在段边界上却可能不满足连续性和可导性。

分段函数的光滑算法,给出了相应的误差分析.给出了该方法在分段曲线拟合中的应用方法以及凸轮实验数据自动分段拟合。

  实验三数值积分与数值微分

  一、问题提出

  选用复合梯形公式,复合Simpson公式,Romberg算法,计算

  二、要求

  1、编制数值积分算法的程序;

  2、分别用两种算法计算同一个积分,并比较其结果;

  3、分别取不同步长,试比较计算结果;

  4、给定精度要求ε,试用变步长算法,确定最佳步长。

  三、目的和意义

  1、深刻认识数值积分法的意义;

  2、明确数值积分精度与步长的关系;

  3、根据定积分的计算方法,可以考虑二重积分的计算问题。

  四、实验步骤

  第一步:

编写各种积分的程序

  复合梯形程序如下:

  functionI=TX(x,y)

  n=length(x);m=length(y);

  ifn~=m

  error('ThelengthsofXandYmustbeequal');

  return;

  end

  h=(x(n)-x

(1))/(n-1);

  a=;

  I=h/2*sum(a.*y);

  复合Simpson程序如下:

  functions=simpr1(f,a,b,n)

  h=(b-a)/(2*n);

  s1=0;

  s2=0;

  fork=1:

10

  x=a+h*(2*k-1);

  s1=s1+feval(f,x);

  end

  fork=1:

(10-1)

  x=a+h*2*k;

  s2=s2+feval(f,x);

  end

  s=h*(feval(f,a)+feval(f,b)+4*s1+2*s2)/3;

  end

  Romberg程序如下:

  functionI=Romber_yang(b(r)=z;det=-det;

  end

  %消元过程

  fori=k+1:

n

  m=A(i,k)/A(k,k);

  forj=k+1:

n

  A(i,j)=A(i,j)-m*A(k,j);

  end

  b(i)=b(i)-m*b(k);

  end

  det=det*A(k,k);enddet=det*A(n,n);%回代过程ifabs(A(n,n))>A=;>>b=;>>gauss(A,b)ans=

  1.0000

  -1.0000

  0.0000

  1.0000

  2.0000

  0.0000

  3.0000

  1.0000

  -1.00002.0000

  高斯-约当消去法maltab的M文件程序function=Gau_Jor(A,b)%求线形方程组的列主元Gauss-约当法消去法,其中,%A为方程组的系数矩阵;%b为方程组的右端项;%x为方程组的解;=size(A);nb=length(b);%当方程组行与列的维数不相等时,停止计算,并输出出错信息。

  ifn~=m

  error('TherowsandcolumnsofmatrixAmustbeequal!

');

  return;end%当方程组与右端项的维数不匹配时,停止计算,并输出出错信息ifm~=nb

  error('ThecolumnsofAmustbeequalthelengthofb!

');

  return;end%开始计算,先赋初值flag='ok';x=zeros(n,1);fork=1:

n

  %选主元

  max1=0;

  fori=k:

n

  ifabs(A(i,k))>max1

  max1=abs(A(i,k));r=i;

  end

  end

  ifmax1k

  forj=k:

n

  z=A(k,j);A(k,j)=A(r,j);A(r,j)=z;

  end

  z=b(k);b(k)=b(r);b(r)=z;

  end

  %消元过程

  b(k)=b(k)/A(k,k);

  forj=k+1:

n

  A(k,j)=A(k,j)/A(k,k);

  end

  fori=1:

n

  ifi~=k

  forj=k+1:

n

  A(i,j)=A(i,j)-A(i,k)*A(k,j);

  end

  b(i)=b(i)-A(i,k)*b(k);

  end

  endend%输出xfori=1:

n

  x(i)=b(i);end然后保存后在命令窗口输入:

  >>A=;>>b=;>>Gau_Jor(A,b)ans=

  121.1481

  -140.1127

  29.7515

  -60.1528

  10.9120

  -26.7963

  5.4259

  -2.0185

  五、实验结论用LU法,调用matlab中的函数lu中,L往往不是一个下三角,但可以直接计算不用它的结果来计算,不用进行行变换。

如果进行行变b也要变,这样会很麻烦。

  实验五解线性方程组的迭代法一、问题提出

  对实验四所列目的和意义的线性方程组,试分别选用Jacobi迭代法,Gauss-Seidel迭代法和SOR方法计算其解。

  二、要求

  1、体会迭代法求解线性方程组,并能与消去法做以比较;

  2、分别对不同精度要求,如由迭代次数体会该迭代法的收敛快慢;3、对方程组2,3使用SOR方法时,选取松弛因子ω=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;

  4、给出各种算法的设计程序和计算结果。

  三、目的和意义

  1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;

  2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;

  3、体会上机计算时,终止步骤或k>,对迭代法敛散性的意义;

  4、体会初始解,松弛因子的选取,对计算结果的影响。

  四、实验步骤第一步编写实验所需的Jacobi迭代法,Gauss-Seidel迭代法,SOR迭代法的程序。

  Jacobi迭代法:

  function=J(A,b,ep,itmax)ifnargin>Euler_1('f',0,3,2,20)

  结果:

  >>

  Euler_1('f',0,3,2,20)

  T=

  0

  3.0000

  0.1000

  2.9836

  0.2000

  2.9517

  0.3000

  2.9058

  0.4000

  2.8481

  0.5000

  2.7810

  0.6000

  2.7073

  0.7000

  2.6297

  0.8000

  2.5511

  0.9000

  2.4739

  1.0000

  2.4004

  1.1000

  2.3325

  1.2000

  2.2714

  1.3000

  2.2177

  1.4000

  2.1717

  1.5000

  2.1332

  1.6000

  2.1017

  1.7000

  2.0765

  1.8000

  2.0567

  1.9000

  2.0414

  2.0000

  2.0299

  五、实验结论很多科学技术和工程问题常用微分方程的形式建立数学模型,因此微分方程的求解是很有意义的,但对于绝大多数的微分方程问题很难或者根本不可能得到它的解析解,因此,研究微分方程的数值方法是非常有意义的。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2