原理
与这个等价:
公式
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=0∑nyili(x)=i=0∑n(j=0,j=i∏nxi−xjx−xj)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