拉格朗日(Lagrange)插值

拉格朗日(Lagrange)插值
程序:matlab

clear;clc
%%***********************************************************************%%
%%输入数据
Data=[60 70 80 90 100 110 120;...
      180671 205052 227225 249623 282162 309327 329484];
%%变量声明
m=size(Data,2);
for i=1:m
    syms(['x',num2str(i)])
end
syms x
%%拉格朗日插值基函数
l={};
for i=1:m
    start=1;
    for j=1:m
        if i~=j
          start=start*(x-Data(1,j))/(Data(1,i)-Data(1,j));
        end
    end
    l=[l,start];
end
%%拉格朗日插值方程
L=0;
for i=1:size(l,2)
    L=L+Data(2,i)*l(1,i);
end
LL=simplify(L);
%%绘制拉格朗日插值得到的多项式
fplot(LL,'Color','red','LineWidth',1.5)
title('拉格朗日插值结果')
xlabel('x')
ylabel('y')
xlim([20 160]);
%%对50、105、130进行预测
Result=[];
x=50;
y=subs(LL,x);
Result=[Result,[x;double(y)]];
x=105;
y=subs(LL);
Result=[Result,[x;double(y)]];
x=130;
y=subs(LL);
Result=[Result,[x;double(y)]];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值