用matlab编写常用牛顿插值多项式,大神求解析程序~~关于牛顿插值多项式的matlab程序...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这个是牛顿插值求多项式的程序,从网上下载的,但是小妹看半天也看不明白,求解析!!大神帮忙解答一下,O(∩_∩)O谢谢~~

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')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值