牛顿插值MATLAB算法为什么出现问题function [p2,z]=newTon(x,y,t) %输入参数中x,y为元素个数相等的向量,t为待估计的点,可以为数字或向量.%输出参数中p2为所求得的牛顿插值多项式,z为利用多项式所得
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/02 18:21:27
牛顿插值MATLAB算法为什么出现问题function [p2,z]=newTon(x,y,t) %输入参数中x,y为元素个数相等的向量,t为待估计的点,可以为数字或向量.%输出参数中p2为所求得的牛顿插值多项式,z为利用多项式所得
牛顿插值MATLAB算法为什么出现问题
function [p2,z]=newTon(x,y,t)
%输入参数中x,y为元素个数相等的向量,t为待估计的点,可以为数字或向量.
%输出参数中p2为所求得的牛顿插值多项式,z为利用多项式所得的t的函数值.
n=length(x);
chaS(1)=y(1);
for i=2:n
x1=x;y1=y;
x1(i+1:n)=[];
y1(i+1:n)=[];
n1=length(x1);
s1=0;
for j=1:n1
t1=1;
for k=1:n1
if k==j
continue;
else
t1=t1*(x1(j)-x1(k));
end
end
s1=s1+y1(j)/t1;
end
chaS(i)=s1;
end
b(1,:)=[zeros(1,n-1) chaS(1)];
cl=cell(1,n-1);
for i=2:n
u1=1;
for j=1:i-1
u1=conv(u1,[1 -x(j)]);
cl{i-1}=u1;
end
cl{i-1}=chaS(i)*cl{i-1};
b(i,:)=[zeros(1,n-i),cl{i-1}];
end
p2=b(1,:);
for j=2:n
p2=p2+b(j,:);
end
if length(t)==1
rm=0;
for i=1:n
rm=rm+p2(i)*t^(n-i);
end
z=rm;
else
k1=length(t);
rm=zeros(1,k1);
for j=1:k1
for i=1:n
rm(j)=rm(j)+p2(i)*t(j)^(n-i);
end
z=rm;
end
end
plot(t,z,'y',x,y,'*r')
牛顿插值MATLAB算法为什么出现问题function [p2,z]=newTon(x,y,t) %输入参数中x,y为元素个数相等的向量,t为待估计的点,可以为数字或向量.%输出参数中p2为所求得的牛顿插值多项式,z为利用多项式所得
出现什么问题啊?这是个函数,需要在工作窗口或者别的m文件中调用,输入参数不能错.不知道你说的出现问题什么意思啊,说清楚才好解决.佩服我的耐心了.