您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > MATLAB-牛顿插值法例题与程序
题目一:多项式插值某气象观测站在8:00(AM)开始每隔10分钟对天气作如下观测,用三次多项式插值函数(Newton)逼近如下曲线,插值节点数据如上表,并求出9点30分该地区的温度(x=10)。x12345678y22.523.324.421.7025.228.524.825.4二、数学原理假设有n+1个不同的节点及函数在节点上的值(x0,y0),……(xn,yn),插值多项式有如下形式:)())(()()()(n10n102010nx-x)(x-xx-xxPxxxxxx(1)其中系数i(i=0,1,2……n)为特定系数,可由插值样条iinyxP)((i=0,1,2……n)确定。根据均差的定义,把x看成[a,b]上的一点,可得f(x)=f(0x)+f[10xx,](0x-x)f[x,0x]=f[10xx,]+f[x,10xx,](1x-x)……f[x,0x,…x1-n]=f[x,0x,…xn]+f[x,0x,…xn](x-xn)综合以上式子,把后一式代入前一式,可得到:f(x)=f[0x]+f[10xx,](0x-x)+f[210xxx,,](0x-x)(1x-x)+…+f[x,0x,…xn](0x-x)…(x-x1-n)+f[x,0x,…xn,x])(x1n=Nn(x)+)(xnR其中Nn(x)=f[0x]+f[10xx,](0x-x)+f[210xxx,,](0x-x)(1x-x)+…+f[x,0x,…xn](0x-x)…(x-x1-n)(2))(xnR=f(x)-Nn(x)=f[x,0x,…xn,x])(x1n(3))(x1n=(0x-x)…(x-xn)Newton插值的系数i(i=0,1,2……n)可以用差商表示。一般有fk[k10xxx,](k=0,1,2,……,n)(4)把(4)代入(1)得到满足插值条件N)()(iinxfx(i=0,1,2,……n)的n次Newton插值多项式Nn(x)=f(0x)+f[10xx,](1x-x)+f[210xxx,,](1x-x)(2x-x)+……+f[n10xxx,](1x-x)(2x-x)…(1-nx-x).其中插值余项为:)()!()()()()(x1nfxN-xfxR1n1nn介于k10xxx,之间。三、程序设计function[y,A,C,L]=newdscg(X,Y,x,M)%y为对应x的值,A为差商表,C为多项式系数,L为多项式%X为给定节点,Y为节点值,x为待求节点n=length(X);m=length(x);%n为X的长度fort=1:mz=x(t);A=zeros(n,n);A(:,1)=Y';s=0.0;p=1.0;q1=1.0;c1=1.0;forj=2:nfori=j:nA(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));endq1=abs(q1*(z-X(j-1)));c1=c1*j;endC=A(n,n);q1=abs(q1*(z-X(n)));fork=(n-1):-1:1C=conv(C,poly(X(k)));d=length(C);C(d)=C(d)+A(k,k);endy(k)=polyval(C,z);%输出y值endL(k,:)=poly2sym(C);%输出多项式symsM,X=[1,3,5,7];Y=[22.5,24.4,25.2,24.8];x=10;[y,A,C,L]=newdscg(X,Y,x,M)y=21.7313A=22.500000024.40000.95000025.20000.4000-0.1375024.8000-0.2000-0.1500-0.0021C=-0.0021-0.11871.452121.1688L=-x^3/480-(19*x^2)/160+(697*x)/480+3387/160四、结果分析和讨论对于不超过三次的插值多项式,x如果选取1,3,5,7这三个点能够得到较好的三次插值多项式L=-0.0021x^3-0.1187x^2+1.4521x+21.1688。当x=10时,也即9点30分时的温度为21.7317度,结果分析知此值应是偏小的。对于选取不同的插值节点,能够得到不同的插值多项式,误差也不尽相同。五、完成题目的体会与收获对于牛顿插值法有了更深的了解,合理选择插值节点很重要。加深了对其原理的认识,学会了牛顿插值法的matlab编程,对matlab计算方法更加熟悉。通过完成这道题使我受益匪浅。
本文标题:MATLAB-牛顿插值法例题与程序
链接地址:https://www.777doc.com/doc-5967402 .html