function y_h = lagrange_interpolation(x_vals,y_vals,x_h)
%{
拉格朗日插值
param x_vals:x轴数据点
param y_vals:y轴数据点
param x_h:x轴待插值点
return y_h:对应x_h的插值
%}
len=min(length(x_vals),length(y_vals));
%% 构造拉格朗日插值函数
syms x real;
L=0;
for ii=1:len
temp=1;
for jj=1:ii-1
temp=temp*(x-x_vals(jj))/(x_vals(ii)-x_vals(jj));
end
for jj=ii+1:len
temp=temp*(x-x_vals(jj))/(x_vals(ii)-x_vals(jj));
end
temp=temp*y_vals(ii);
L=L+temp;
end
%% 计算插值点
y_h=double(subs(L,x,x_h));
end