《数值分析》课程实验报告_第1页
《数值分析》课程实验报告_第2页
《数值分析》课程实验报告_第3页
《数值分析》课程实验报告_第4页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、数值分析课程实验报告 数值分析课程实验报告 姓 名: 学 号: 学 院: 机 电 学 院 日 期: 2021 年 x 月x 日 目 录 实验一 函数插值方法 . 1 实验二 函数逼近与曲线拟合 . 5 实验三 数值积分与数值微分 . 7 实验四 线方程组的直接解法 . 9 实验五 解线性方程组的迭代法 . 15 实验六 非线性方程求根 . 19 实验七 矩阵特征值问题计算 . 21 实验八 常微分方程初值问题数值解法 . 24 1 实验一 函数插值方法 一、问题提出 对于给定的一元函数 ) (x f y = 的 n+1 个节点值 ( ), 0,1, ,j jy f x j n = = 。试用l

2、agrange 公式求其插值多项式或分段二次 lagrange 插值多项式。 数据如下: (1) jx 0.4 0.55 0.65 0.80 0.95 1.05 jy 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次 lagrange 多项式5l ( ) x ,和分段三次插值多项式,计算 (0.596) f , (0.99) f 的值。(提示:结果为 (0.596) 0.625732 f » , (0.99) 1.05423 f » ) (2) jx 1 2 3 4 5 6 7 jy 0.368 0.135 0.050 0.018

3、0.007 0.002 0.001 试构造 lagrange 多项式6l ( ) x ,计算的 (1.8) f , (6.15) f 值。(提示:结果为(1.8) 0.164762 f » , (6.15) 0.001266 f » ) 二、要求 1、 利用 lagrange 插值公式 0 0,( )n nin kk i i kk ix xl x yx x= = ¹æ ö -=ç ÷-è øå Õ编写出插值多项式程序; 2、 给出插值多项式或分段三次插值多项式的表达式; 3、 根据节点

4、选取原则,对问题(2)用三点插值或二点插值,其结果如何; 4、 对此插值问题用 newton 插值多项式其结果如何。newton 插值多项式如下: 10 01 0,( ) ( ) , , ( )k nn jkk j j kn x f x f x x x x-= = ¹= + · -å Õ 其中: 00,0( )( ) , , kikii jj j ikf xx xf x x= ¹-= åÕ 三、目的和意义 1、 学会常用的插值方法,求函数的近似表达式,以解决其它实际问题; 2、 明确插值多项式和分段插值多项式各自的优缺点;

5、3、 熟悉插值方法的程序编制; 4、 如果绘出插值函数的曲线,观察其光滑性。 2 四、实验步骤 (1) jx 0.4 0.55 0.65 0.80 0.95 1.05 jy 0.41075 0.57815 0.69675 0.90 1.00 1.25382 求五次 lagrange 多项式5l ( ) x ,和分段三次插值多项式,计算 (0.596) f , (0.99) f 的值。(提示:结果为 (0.596) 0.625732 f » , (0.99) 1.05423 f » ) 第一步:先在 matlab 中定义 lagran 的 m 文件为拉格朗日函数代码为: fu

6、nctionc,l=lagran(x,y) w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if(k=j) v=conv(v,poly(x(j)/(x(k)-x(j); end end l(k,:)=v; end c=y*l; end 第二步:然后在 matlab 命令窗口输入: x=0.4 0.55 0.65 0.80,0.95 1.05;y=0.41075 0.57815 0.69675 0.90 1.00 1.25382; lagran(x,y) 回车得到: ans =121.6264 -422.7503 57

7、2.5667 -377.2549 121.9718 -15.0845 由此得出所求拉格朗日多项式为 p(x)=121.6264x 5 -422.7503x 4 +572.5667x 3 -377.2549x 2 +121.9718x-15.0845 第三步:在编辑窗口输入如下命令: x=0.4 0.55 0.65 0.80,0.95 1.05; y=121.6264*x.5-422.7503*x.4+572.5667*x.3-377.2549*x.2+121.9718*x-15.0845; plot(x,y) 命令执行后得到如下图所示图形,然后 x=0.596; y=121.6264*x.5-

8、422.7503*x.4+572.5667*x.3-377.2549*x.2+121.9718*x-15.084 y =0.6262 得到 f(0.596)=0.6262 同理得到 f(0.99)=1.0547 3 (2) jx 1 2 3 4 5 6 7 jy 0.368 0.135 0.050 0.018 0.007 0.002 0.001 试构造 lagrange 多项式6l ( ) x ,和分段三次插值多项式,计算的 (1.8) f , (6.15) f 值。(提示:结果为 (1.8) 0.164762 f » , (6.15) 0.001266 f » ) 实验步

9、骤: 第一步定义 functionc,l=lagran(x,y) w=length(x); n=w-1; l=zeros(w,w); for k=1:n+1 v=1; for j=1:n+1 if(k=j) v=conv(v,poly(x(j)/(x(k)-x(j); end end l(k,:)=v; end c=y*l; end 定义完拉格朗日 m 文件 4 第二步:然后在 matlab 命令窗口输入: x=1 2 3 4 5 6 7; y=0.368 0.135 0.050 0.018 0.007 0.002 0.001; lagran(x,y) 回车得到: ans =0.0001 -0

10、.0016 0.0186 -0.1175 0.4419 -0.9683 0.9950 由此得出所求拉格朗日多项式为 p(x)=0.0001x 6 -0.0016x 5 +0.0186x 4 -0.1175x 3 +0.4419x 2 -0.9683x+0.9950 第三步:在编辑窗口输入如下命令: x=1 2 3 4 5 6 7; y=0.0001*x.6-0.0016*x.5+0.0186*x.4-0.1175*x.3+0.4419*x.2-0.9683*x+0.9950; plot(x,y) 命令执行后得到如下图所示图形,然后 x=1.8; y=121.6264*x.5-422.7503*

11、x.4+572.5667*x.3-377.2549*x.2+121.9718*x-15.084 y =0.1650 得到 f(0.596)=0.6262 同理得到 f(6.15)=2.3644 五 、 实验结论 插值是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点,它是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 5 实验二 函数逼近与曲线拟合 一、问题提出 从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。 在某冶炼过程中,根据统计数据的含碳量与

12、时间关系,试求含碳量与时间 t 的拟合曲线。 t(分) 0 5 10 15 20 25 30 35 40 45 50 55 4( 10 ) y-´ 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、近似解析表达式为2 31 2 3( ) t a t a t a t j = + + ; 3、打印出拟合函数 ( ) t j ,并打印出 ( )jt j 与 ( )jy t 的误差, 1,2, ,12 j = ; 4、另外选取一个近似表达式,尝试拟合效果的比较; 5、* 绘制出曲线拟

13、合图。 三、目的和意义 1、掌握曲线拟合的最小二乘法; 2、最小二乘法亦可用于解超定线代数方程组; 3、探索拟合函数的选择与拟合精度间的关系 四、实验步骤: 第一步先写出线性最小二乘法的 m 文件 function c=lspoly(x,y,m) n=length(x); b=zeros(1:m+1); f=zeros(n,m+1); for k=1:m+1 f(:,k)=x.(k-1); end a=f"*f; b=f"*y" c=ab; c=flipud(c); 第二步在命令窗口输入: lspoly(0,5,10,15,20,25,30,35,40,45,50

14、,55,0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64,2) 回车得到: ans = 6 -0.0024 0.2037 0.2305 即所求的拟合曲线为 y=-0.0024x 2 +0.2037x+0.2305 在编辑窗口输入如下命令: x=0,5,10,15,20,25,30,35,40,45,50,55; y=-0.0024*x.2+0.2037*x+0.2305; plot(x,y) 命令执行得到如下图 五、实验结论 分析复杂实验数据时,常采用分段曲线拟合方法。利用此方法在段内可以实现最佳逼近,但在段边界上却可能不满足连续

15、性和可导性。分段函数的光滑算法,给出了相应的误差分析.给出了该方法在分段曲线拟合中的应用方法以及凸轮实验数据自动分段拟合。 7 实验三 数值积分与数值微分 一、问题提出 选用复合梯形公式,复合 simpson 公式,romberg 算法,计算 (1)1/420i= 4-sin ( 1.5343916) xdx i »ò (2)10sini= ( (0) 1, 0.9460831)x dx fix= »ò (3) 120i=4xedxx +ò (4) 120ln(1 )i=1xdxx+ò 二、要求 1、 编制数值积分算法的程序; 2、

16、分别用两种算法计算同一个积分,并比较其结果; 3、 分别取不同步长 ( )/ h b a n = - ,试比较计算结果(如 n = 10, 20 等); 4、 给定精度要求 ,试用变步长算法,确定最佳步长。 三、目的和意义 1、 深刻认识数值积分法的意义; 2、 明确数值积分精度与步长的关系; 3、 根据定积分的计算方法,可以考虑二重积分的计算问题。 四、实验步骤 第一步:编写各种积分的程序 复合梯形程序如下 : function i=tx(x,y) n=length(x);m=length(y); if n=m error("the lengths of x and y must

17、be equal"); return; end h=(x(n)-x(1)/(n-1); a=1 2*ones(1,n-2) 1; i=h/2*sum(a.*y); 复合 simpson 程序如下: function s = simpr1(f,a,b,n) h=(b-a)/(2*n); s1=0; s2=0; for k=1:10 x=a+h*(2*k-1); 8 s1=s1+feval(f,x); end for k=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 程序 如下: function i = romber_yang(fun,a,b,ep) if nargin4 ep=1e-5;end; m=1; h=b-a; i=h/2*(feval(fun,a)+feval(fun,b);t(1,1)=i; while

温馨提示

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

评论

0/150

提交评论