%第一种方法:
function y=lagran1(x0,y0,x)
n=length(x0);
y=0;
for i=1:n
L=1;
for j=1:i-1
L=L.*(x-x0(j))/(x0(i)-x0(j));
end;
for j=i+1:n
L=L.*(x-x0(j))/(x0(i)-x0(j)); %计算拉格朗日基函数
end;
y=y+L*y0(i); %计算拉格朗日插值函数
end
return
%第二种方法:(注意两种方法不能同时运用)
%拉格朗日(lagrange)插值法――matlab代码实现
function y=lagrange(x0,y0,x)
% 给定一系列点x0,y0
% x是我们要预测的值,由于可以有多个,因此用向量表示
% y返回我们的估计值,由于可以有多个,因此用向量表示
n = length(x);% 要预测的个数
y = zeros(n);% 初始化,并赋初值0
for k = 1:length(x0)
j_no_k=find((1:length(x0))~=k);% 在这里,find函数用于返回一个向量中不为下标k的元素(下标从1开始)
y1=1;
for j = 1:length(j_no_k)
y1 = y1.*(x-x0(j_no_k(j))); % ∏(x-xj)
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载