数值分析实验报告(一)(完整).doc_第1页
数值分析实验报告(一)(完整).doc_第2页
数值分析实验报告(一)(完整).doc_第3页
数值分析实验报告(一)(完整).doc_第4页
数值分析实验报告(一)(完整).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

数值分析实验报告姓 名学 号系 别数学系班级09信息(2)班 主讲教师王丹指导教师王丹实验日期专业信息与计算科学课程名称数值分析同组实验者无一、实验名称: 实验一、插值多项式的收敛性实验二、 实验目的:1理解插值的基本原理;2掌握多项式插值的概念、存在唯一性;3编写MATLAB程序实现Lagrange插值和Newton插值,验证Runge现象、分析插值多项式的收敛性。三、实验内容及要求:1已知数据如下:0.20.40.60.81.00.980.920.810.640.38(1)用MATLAB语言编写按Langrage插值法和Newton插值法计算插值的程序,对以上数据进行插值;(2)利用MATLAB在第一个图中画出离散数据及插值函数曲线。2给定函数,利用上题编好的Langrage插值程序(或Newton插值程序),分别取3个,5个、9个、11个等距节点作多项式插值,分别画出插值函数及原函数的图形,以验证Runge现象、分析插值多项式的收敛性。三、 实验步骤(或记录)Lagrange插值法的基本思想:步骤1: 构造处的插值基函数,其中,插值节点处的插值基函数为;步骤2:以作为的系数,使得通过插值点;步骤3:把所有的线性叠加,得到通过所有插值点的插值函数。Lagrange插值伪代码:给定个插值点的情况下,求插值函数在点处的函数值。/*输入参数*x=(x0,x1,.,xn), 插值节点*y=(y0,y1,yn); 被插函数f(x)在插值节点处的函数值*t 求插值函数Ln (x)在t处的函数值*返回值 插值函数Ln (x)在t处的函数值 */procedure Lagrange result0; for i=1 to n li(t)1; for j=1 to n if ij li(t) li(t)*(t-xi)/(xi-xj); end if end for resultresult+yi*li(t); end for return result;end procedureLagrange插值子程序 lagr1:function y=lagr1(x0,y0,x)%x0为插值点的向量,y0为插值点处的函数值向量,x为未知的点向量n=length(x0); m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(z-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)+s; end y(i)=s;E ndNewton插值算法公式:余项为其中 有关.Newton插值伪代码:/*输入参数*x=(x0,x1.,xn), 插值节点*y=(y0,y1,yn); 被插函数f(x)在插值节点处的函数值*t 求插值函数Pn (x)在t处的函数值*返回值 插值函数Pn(x)在t处的函数值 */ procedure Newton for j=0 to n d1jyj;end forfor j=1 to nfor i=j to n dij (di,j-1-di-1,j-1)/(xi-xi-j+1); end forend forresultd11;temp1;for i=1to n temptemp*(t-xi-1);resultresult+di,i*temp;end forreturn result;end procedureNewton插值子程序 Newton:function y=newton(x0,y0,x)%牛顿插值法n=length(x0); m=length(x);d=zeros(n,n);%d为差商表矩阵for j=1:n d(j,1)=y0(j);%差商表第一列endfor j=2:n %差商表为下三角矩阵for i=j:n d(i,j)=(d(i,j-1)-d(i-1,j-1)./(x0(i)-x0(i-j+1);%求差商表矩阵中各值 endendfor k=1:m z=x(k); result=d(1,1); temp=1;for i=2:n temp=temp*(z-x0(i-1); result=result+d(i,i)*temp;endy(k)=result;end1编写拉格朗日插值多项式函数内容为:function f=lagfun(x)a=0.2,0.4,0.6,0.8,1.0;b=0.98,0.92,0.81,0.64,0.38;for i=1:5L(i)=1;for j=1:5 if j=i L(i)=L(i)*(x-a(j)/(a(i)-a(j); endendendf=0;for i=1:5 f=f+L(i)*b(i);end画图程序内容为:x0=0.2,0.4,0.6,0.8,1.0; y0=0.98,0.92,0.81,0.64,0.38;plot(x0,y0,o)hold ongrid on fplot(lagfun,0,1);hold onx=0:0.1:1;plot(x,newton(x0,y0,x),r);legend(离散点,Lagrange插值,Newton插值)图形为:2Lagrange插值程序for n=3:2:11x= -1:0.1:1;y=1./(1+25.*x.2);z=0*x;x0=-1:2/(n-1):1;y0=1./(1+25.*x0.2);y1=lagr1(x0, y0, x);plot(x, z, r, x, y, k: ,x, y1, r)gtext(Lagr.,num2str(n)h

温馨提示

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

评论

0/150

提交评论