插值法的matlab实现(拉格朗日、牛顿、样条)

拉格朗日

function yy = lagronge()
x=[25,40,50,60];
y=[95,75,63,54];
xx=70;
a = length(x);
f = 0;
for i = 1:a
    t = 1;
    for j = 1:a
        if j~=i
            t=t*(xx-x(j))/(x(i)-x(j));
        end
    end
    f = f+t*y(i);
end
fprintf('%.1f',f);
end

 

牛顿插值法(先计算出差商表再进行计算)

n = 10;
f = zeros(n,n);
xi = [1994,1995,1996,1997,1998,1999,2000,2001,2002,2003];
x = 2010;
yi = [67.052,68.008,69.803,72.024,73.400,72.063,74.669,74.487,74.065,76.777];
for k = 1:n
    f(k) = yi(k);
end
for i=2:n       
    for k=i:n
        f(k,i)=(f(k,i-1)-f(k-1,i-1))/(xi(k)-xi(k+1-i));  
    end
end
disp("差商表");
disp(f);
p=0;          
for k=2:n
    t&#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值