La méthode d'interpolation de Lagrange

- Je utiliser la convolution et pour les boucles (trop pour les boucles) pour le calcul de l'interpolation à l'aide de
Lagrange's method , voici le code principal :

function[p] = lagrange_interpolation(X,Y)
L = zeros(n);
p = zeros(1,n);


% computing L matrice, so that each row i holds the polynom L_i
% Now we compute li(x) for i=0....n  ,and we build the polynomial 

for k=1:n
    multiplier = 1;
    outputConv = ones(1,1);
    for index = 1:n
        if(index ~= k && X(index) ~= X(k))
            outputConv = conv(outputConv,[1,-X(index)]);
            multiplier = multiplier * ((X(k) - X(index))^-1);
        end
    end
    polynimialSize = length(outputConv);
    for index = 1:polynimialSize
        L(k,n - index + 1) = outputConv(polynimialSize - index + 1);
    end
    L(k,:) = multiplier .* L(k,:);
end

% continues 


end

Ceux qui sont trop pour les boucles pour le calcul de la l_i(x) (ce qui est fait avant le dernier calcul de P_n(x) = Sigma of y_i * l_i(x)) .

Des suggestions en la rendant plus matlab formelle ?

Grâce

OriginalL'auteur JAN | 2012-06-14