举个例子吧 已知插值点(-2.00,17.00), (0.00,1.00), (1.00,2.00), (2.00,17.00),求三次插值多项式,并计算 .
其Matlab程序如下:
function yy=M10(x,y,xx)
m=length(x);n=length(y);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for i=1:n
t=ones(1,length(xx));
for j=1:n
if j~=i
t=t.*(xx-x(j))/(x(i)-x(j));
end
end
s=s+t*y(i);
end
yy=s;
在Matlab窗口中执行:
x=[-2.00 0.00 1.00 2.00];
y=[17.00 1.00 2.00 17.00];
xx=0.6;
M10(x,y,xx)
结果如下:
ans =
0.25600000000000,
举个例子吧 已知插值点(-2.00,17.00), (0.00,1.00), (1.00,2.00), (2.00,17.00),求三次插值多项式,并计算 .
其Matlab程序如下:
function yy=M10(x,y,xx)
m=length(x);n=length(y);
if m~=n, error('向量x与y的长度必须一致');end
s=0;
for i=1:n
t=ones(1,length(xx));
for j=1:n
if j~=i
t=t.*(xx-x(j))/(x(i)-x(j));
end
end
s=s+t*y(i);
end
yy=s;
在Matlab窗口中执行:
x=[-2.00 0.00 1.00 2.00];
y=[17.00 1.00 2.00 17.00];
xx=0.6;
M10(x,y,xx)
结果如下:
ans =
0.25600000000000,