定义:
即:
clear
x = [1, 2, 3, 4]; % x坐标
y = [2, 1, 4, 3]; % y坐标
% 定义目标插值点
xi = 2.5;
% x: 已知数据点的x坐标
% y: 已知数据点的y坐标
% xi: 插值点,可以是一个数或一个向量
n = length(x);
% 初始化差商矩阵
F = zeros(n, n);
F(:,1) = y'; % 第一列是y值
% 计算差商
for j = 2:n
for i = 1:n-j+1
F(i,j) = (F(i+1,j-1) - F(i,j-1)) / (x(i+j-1) - x(i));
end
end
%F(i,j)为上三角矩阵,系数为F(1,i)。
% 计算插值多项式的值
P = zeros(size(xi));
for k = 1:length(xi)
p_val = F(1,1); % 初始化P(xi)
product_term = 1;
for i = 2:n
product_term = product_term * (xi(k) - x(i-1));%w_n(x)
p_val = p_val + product_term * F(1,i);%系数
end
P(k) = p_val; % 插值结果
end
disp(['插值结果:', num2str(P)]);