我刚刚开始编程,在使用 MATLAB 将函数作为参数传递时遇到了一些问题。我必须为插值实现拉格朗日算法。
C1
和C2
是表示插值坐标点的向量。
我的主要问题是我不知道如何在我的f1
定义中temp1
解释它temp2
不是变量,而是在循环的每次迭代中确定的值for
(fori
和j
)。
我认为代码剩余部分可能几乎是正确的。
function [ ] = lagrange(C1, C2)
n = length(C1);
f2 = inline('');
g = inline('');
for i = 1:n
temp0 = C2(i);
temp1 = C1(i);
for j = 1:n
if (i~=j)
temp2 = C1(j);
temp3 = C2(j);
f1 = inline('(x-temp2/(temp1-temp2)','x','temp1','temp2');
f2 = f2.*f1
end
g = g+temp0*f2;
end
end
%plot g
end