Matlab中的Lagrange插值问题

时间:2018-05-09 12:02:22

标签: matlab interpolation polynomial-math

我在完成拉格朗日函数方面遇到了问题,而且我不确定自己哪里出错了。

我不断获得'指数超过矩阵维度'错误。我认为这是因为我没有正确地通过阵列。我尝试过各种各样的事情,但似乎还是继续回到这个错误。

function y = lagrange(X, Y, x)
n = length(X);
if n ~= length(Y)
 error('X and Y must have the same length.');
end
y = zeros(size(x)); 
for i = 1:n 
  L = ones(size(x)); 
    for j = [1:i-1 i+1:n] 
      if (i~=j)
       L(1:i-1, i+1:n) = L(1:i-1, i+1:n).*(x-X(j))/(X(i)-X(j));
      end
    end
  y = y+Y(i)*L(1:i-1);
end

1 个答案:

答案 0 :(得分:1)

我认为以下功能是您所需要的。

{{1}}