**********************本文章由计算机专业的孙旭编写,复制请谨慎
function Fun() clc; X=[0 1 2 3]; Y=[1 2 17 64]; x0=2.5; h=1; New_Back(X,Y,x0,h); end %子函数 function New_Back(X,Y,x0,h) len_x=length(X); len_y=length(Y); if (len_x~=len_y) disp('你输入的维度不相等'); return; else syms s; p=Y(len_x); q=1; f=1; for i=1:1:len_x-1 Y(i+1:len_x)=Y(i+1:len_x)-Y(i:len_x-1); A(i)=Y(len_x); q=q*(s+i-1); f=f*i; p=p+(q/f)*A(i); end %化简多项式 simplify(p); if nargin==4 disp('所求的插值函数的值为'); p0=subs(p,'s',(x0-X(len_x)/h)); vpa(p0,6), else disp('所求牛顿的向后插值多项式为: '); p=collect(p); p=vpa(p,6), end end end
Matlab Newton向后插值
最新推荐文章于 2024-04-10 12:11:40 发布