Interpolacja metodą Lagrangea

Cześć,
potrzebna mi pomoc. Musze napisać funkcje wyznaczającą wielomian określony przez punkty, mam użyc interpolacji metodą Lagrange. Tylko nie wiem jak sie do tego zabrać. Mam za wzór taką funkcje w matlabie:

function [] = lagrange(xj,yj,x,n)
w=0;
s = 0;    
for j=1:n+1        
    omega_p = 1;        
    for i=1:n+1            
        if i ~= j, 
            omega_p = conv(omega_p,[1 -xj(i)])/(xj(j) - xj(i));                
        end
    end
    s = s + yj(j) * omega_p;    
end
for i=1:length(s)              
    w=w*x+s(i);          
end
disp(s);
disp(w);
end

Pomoże ktoś, nie mam pojęcia jak się do tego zabrać, nie wiem czego użyć zamiast conv.

To jest zadanie programistyczne?

Z tego co pamiętam (a metody numeryczne miałem jakieś trzy lata temu) to najlepiej będzie wygenerować sobie wykres w matlabie podanej funkcji i odczytać kilka współrzędnych punktów (na przykład n=3), czyli x1, x2, x3, a potem wyliczyć ze wzoru Lagrange’a Wyliczasz w taki sposób, że podstawiasz x1, x2, x3 dla określonego n (w tym wypadku n=3) pod wzór Li(x).

Myślę, że warto zajrzeć tutaj: http://www.matematyka.pl/

Moim głównym problemem teraz jest to, że nie do końca rozumiem działanie funckji conv, i nie znam jej odpowiednika w Rubym.

Tu jest przykładowe wywołanie z Matlaba:

>> lagrange([0.02 0.08 0.12 0.17 0.23 0.30], [1.02316 1.059 1.14725 1.21483 1.3012 1.40976], 0.114, 5)
   1.0e+03 *

   -5.1771    4.3489   -1.3432    0.1854   -0.0093    0.0011

    1.1359

Podpopwie ktoś coś?

help conv w konsoli Matlaba?

Kluczem do sukcesu jest zauwazenie, ze conv wykonane dla wektorów o długosci 1 jest po prostu rowne ich iloczynowi, czyli conv(omega_p,[1 -xj(i)]) moze byc zastapione przez omega_p * (1 - xj(i))
Przydatny link do napisania odpowiednika funkcji conv http://www.mathworks.com/help/matlab/ref/conv.html , mozesz skorzystac z gotowca gemu convolver https://github.com/neilslater/convolver

Marian54 jest dla mnie forumowiczem miesiąca :heart_eyes:

Noooo gratuluję wyboru reparametryzacji! Widać, że doświadczony matematyk!