您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 数值分析-插值多项式实验报告
1数值分析实验报告班级姓名学号课程名称数值分析时间地点一、实验名称:实验一、插值多项式实验二、实验目的:1.理解插值的基本原理;2.掌握多项式插值的概念、存在唯一性;3.编写MATLAB程序实现Lagrange插值和Newton插值,验证Runge现象、分析插值多项式的收敛性。三、实验内容及要求:1.已知数据如下:ix00.20.40.60.81.0()ifx0+学号0.04+学号0.16+学号0.36+学号0.64+学号1+学号注学号取后面两位数,如122320101,学号=1。(1)用MATLAB等语言编写按Lagrange插值法和Newton插值法计算插值的程序,对以上数据进行插值;(2)利用MATLAB在第一个图中画出离散数据及插值函数曲线。2.给定函数21(),[1,1]125fxxx=?+,利用上题编好的Langrage插值程序(或Newton插值程序),分别取3个,5个、9个、11个等距节点作多项式插值,分别画出插值函数及原函数()fx的图形,以验证Runge现象、分析插值多项式的收敛性。四、插值法的实验步骤:步骤1:按照要求用MATLAB编写lagrange插值代码步骤2:按照要求用MATLAB编写newton插值代码步骤3:按照题目所给要求用MATLAB编写画图代码2.画图代码五、插值法的实验结果:1.(1)Lagrange法实验结果(图或多项式表达式)L=-625/8*x^5+625/4*x^4-875/8*x^3+129/4*x^2-3*x+22(2)Newton法实验结果(图或多项式表达式)(3)L=2+253/30*x-7/2*x^2+1825/24*x^3-175/2*x^4+625/8*x^52.(1)2个节点结果如下:(2)5个节点结果如下:(3)9个节点结果如下:3(4)11个节点结果如下:六、讨论Lagrange插值法和Newton插值法解决实际问题中关于只提供复杂的离散数据的函数求值问题,通过将所考察的函数简单化,构造关于离散数据实际函数f(x)的近似函数P(x),从而可以计算未知点出的函数值,是插值法的基本思路。Lagrange插值型式的缺点在于没有承袭性质,当需要增加插值节点时,我们不得不重新计算基函数,这在实际使用时不能不认为是一种浪费,具有承袭性质的插值型式,应该是当增加插值节点时,新的插值多项式只是在原插值多项式的基础上增加一项。具有承袭性质的插值型式则为Newton插值型式。七、程序附录1.(1)Lagrange插值代码symsxx0=[0,0.2,0.4,0.6,0.8,1.0];y0=[2,2.04,2.16,2.36,2.64,3];fori=1:6a=1;forj=1:6ifj~=i;a=expand(a*(x-x0(j)));endend4b=1;fork=1:6ifk~=i;b=b*(x0(i)-x0(k));endendA(i)=expand(a/b);endL=0;forp=1:5L=L+y0(p)*A(p);endL(2)画图代码x0=[0,0.2,0.4,0.6,0.8,1.0];y0=[2,2.04,2.16,2.36,2.64,3];subplot(1,2,1);plot(x0(1),y0(1),'+r',x0(2),y0(2),'+r',x0(3),y0(3),'+r',x0(4),y0(4),'+r',x0(5),y0(5),'+r',x0(6),y0(6),'+r')x=0:0.2:1;y=x.^2+2;holdonsubplot(1,2,2);plot(x,y)(3)Newton插值代码clearallclcsymsxx0=[0,0.2,0.4,0.6,0.8,1.0];y0=[2,2.04,2.16,2.36,2.64,3];fork=1:6fori=1:ka=1;b=0;forj=1:kifj~=ia=a*(x0(i)-x0(j));endendb=b+y0(i)/a;endA(k)=b;endB=[1,(x-x0(1)),(x-x0(1))*(x-x0(2)),(x-x0(1))*(x-x0(2))*(x-x0(3)),(x-x0(1))*(x-x0(2))*(x-x0(3))*(x-x0(4)),(x-x0(1))*(x-x0(2))*(x-x0(3))*(x-x0(4))*(x-x0(5))];5L1=A.*B;l=0;form=1:6l=l+L1(m);endL=expand(l)2.(1)取三个节点clearclcx0=0:0.5:1;y0=1./(1+25.*x0.^2);symsxfori=1:3a=1;forj=1:3ifj~=ia=expand(a*(x-x0(j)));endendb=1;fork=1:3ifk~=ib=b*(x0(i)-x0(k));endendA(i)=expand(a/b);endL=0;forp=1:3L=L+y0(p)*A(p);endLL=575/377*x^2-1875/754*x+1x1=0:0.0001:1;y1=1./(1+25.*x1.^2);y2=575/377.*x1.^2-1875/754.*x1+1;plot(x1,y1,'+r')holdon6plot(x1,y2,'*k')(2)取五个节点clearclcx0=0:0.25:1;y0=1./(1+25.*x0.^2);symsxfori=1:5a=1;forj=1:5ifj~=ia=expand(a*(x-x0(j)));endendb=1;fork=1:5ifk~=ib=b*(x0(i)-x0(k));endendA(i)=expand(a/b);endL=0;forp=1:5L=L+y0(p)*A(p);endLL=1570000/3725137*x^4-9375000/3725137*x^3+16996575/3725137*x^2-25546875/7450274*x+1x1=0:0.0001:1;y1=1./(1+25.*x1.^2);y2=1570000/3725137.*x1.^4-9375000/3725137.*x1.^3+16996575/3725137.*x1.^2-25546875/7450274.*x1+1plot(x1,y1,'+r')holdonplot(x1,y2,'*k')(3)取九个节点clearclcx0=0:0.125:1;y0=1./(1+25.*x0.^2);symsxfori=1:9a=1;forj=1:9ifj~=ia=expand(a*(x-x0(j)));7endendb=1;fork=1:9ifk~=ib=b*(x0(i)-x0(k));endendA(i)=expand(a/b);endL=0;forp=1:9L=L+y0(p)*A(p);endLL=-745631513600000000/6545742033698309*x^8+3419841600000000000/6545742033698309*x^7-6621592639456000000/6545742033698309*x^6+7019299350000000000/6545742033698309*x^5-4393156359065510000/6545742033698309*x^4+1603771386328125000/6545742033698309*x^3-22515465371294825/503518617976793*x^2+7750485791015625/13091484067396618*x+1x1=0:0.0001:1;y1=1./(1+25.*x1.^2);y2=-745631513600000000/6545742033698309.*x1.^8+3419841600000000000/6545742033698309.*x1.^7-6621592639456000000/6545742033698309.*x1.^6+7019299350000000000/6545742033698309.*x1.^5-4393156359065510000/6545742033698309.*x1.^4+1603771386328125000/6545742033698309.*x1.^3-22515465371294825/503518617976793.*x1.^2+7750485791015625/13091484067396618.*x1+1;plot(x1,y1,'--r')holdonplot(x1,y2,'k')(4)取十一个节点clearclcx0=0:0.1:1;y0=1./(1+25.*x0.^2);symsxfori=1:11a=1;forj=1:11ifj~=ia=expand(a*(x-x0(j)));endendb=1;fork=1:118ifk~=ib=b*(x0(i)-x0(k));endendA(i)=expand(a/b);endL=0;forp=1:11L=L+y0(p)*A(p);endL八、成绩评定教师签字:年月日
本文标题:数值分析-插值多项式实验报告
链接地址:https://www.777doc.com/doc-5685782 .html