Lagrange 보간법에 대한 답변을 확인했지만 적절한 질문을 찾지 못했습니다. matlab을 사용하여 표면에 Lagrange 보간을 사용하려고합니다. x와 y 벡터와 f = f (x, y)가 있다고 가정 해 봅시다. 이 f 함수를 보간하고 싶습니다.lagrange interpolation
x= 0:4;
y = [-6 -3 -1 6];
f=[2 9 4 25 50];
v = laginterp(x,y,f,ff);
plot3(x,y,'o',f,q,'-')
처럼 항상 해요 f를,
function q = laginterp(x,y,f,ff)
n = length(x);
m = length(y);
v = zeros(size(ff));
for k = 1:n
for l = 1:m
w1 = ones(size(ff));
w2 = ones(size(ff))
for j = [1:k-1 k+1:n]
for j = [1:l-1 l+1:n]
w1 = (x-x(j))./(x(k)-x(j)).*w1;
w2 = (y-y(i))./(y(l)-y(i)).*w2;
end
end
ff = ff + w1.*w2.*f(k,l);
end
end
그것은 내 기능이고 나는 주어진 x의 답변, y를 기다리고 있어요 : 나는 무엇을 내가 한 것은 수학적으로 올바른 생각 어떤 도움에 감사드립니다!
여기에 어떤 문제가 있는지 명확하지 않습니다. 기능이 작동하지 않습니까? 또한, [코드를 벡터화하는 방법]을 살펴보아야합니다. (http://www.mathworks.com/support/tech-notes/1100/1109.html) ... 네 개의 for 루프는 거의 MATLAB 방식이 아닙니다. 소지품. – eykanal