matlab编写拉格朗日插值公式

原理

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

与这个等价:
在这里插入图片描述

公式

在这里插入图片描述
L n ( x ) = ∑ i = 0 n y i l i ( x ) = ∑ i = 0 n ( ∏ j = 0 , j ≠ i n x − x j x i − x j ) y i L_n(x)=\sum_{i=0}^{n}y_il_i(x)=\sum_{i=0}^{n}(\prod_{j=0,j\not=i}^{n}\frac{x-x_j}{x_i-x_j})y_i Ln(x)=i=0nyili(x)=i=0n(j=0,j=inxixjxxj)yi

clear,clc
x_nodes = [1, 2, 3, 4];  % x坐标
y_nodes = [2, 1, 4, 3];  % y坐标

% 定义目标插值点
xi = [2.5,3.5];

% 计算拉格朗日插值多项式的系数
n = length(x_nodes);

yi=zeros(size(xi)); 
for i = 1:n
     L = ones(size(xi));%注意L的位置
    for j = 1:n
        if i ~= j
            L= L.* (xi - x_nodes(j)) / (x_nodes(i) - x_nodes(j));
        end
    end


    yi = yi + y_nodes(i)*L;
 
end

% 计算插值结果
% % 输出插值结果
% disp('xi=');
% disp(xi);
% disp('yi=');
% disp(yi);

% 输出插值结果


disp('插值点和对应的值:');
for i = 1:length(xi)
    fprintf('xi = %.2f, yi = %.4f\n', xi(i), yi(i));
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值