Obliczanie współczynników Wielomianu

0

Witam
problem jest nastepujący.Pisze program który ma znalezc wielomian interpolacyjny.
Jesli mam np: (x-2)(x+4)(x-1)(x-5) to wiadomo ze przy x4 bedzie stać wspolczynik równy jedden. W jaki sposób obliczyc jakie współczynniki będa znajodwuły sie przy x3, x^2, x ?

Za wszelką pomoc przeogromne dzięki.

//a gdyby ktoś miał przypadkiem skrypt matlaba który zwraca wzór wielomianu funkcyjnego obliczony metodą Lagrange'a to normalnie cud nad Wisłą

0

Zajmuje sie podobnym problemem obecnie (che che )

idea taka
(x-x1)(x-x2)(x-x3)
i masz
x3-(x1+x2+x3)x2+(x1x2+x2x3+x1x3)x-x1x2x3=0
a wiec widac ze w kolejnych nawiasach jest

\sum_{i=0}^{n} <- oznacza sume po i od 0 do n

ale tu od 1 do 3 mamy suma
wiec

\sum_{i=1}^{3}x_{i}

drugi nawias (x^2)
\sum_{i=1}{3-1}\sum_{k=i+1}{3} x_{i}x_{k}

trzeci nawias (x)
\sum_{i=1}{3-2}\sum_{k=i+1}{3-1}\sum_{p=k+1}^{3} x_{i}x_{k}x_{p}

to dziala !
ale to zajmuje duzo czasu procesora (np juz 40 punktow jest problemem ! bo wtedy wielomian 40 stopnia !)

jak ktos ma cos lepszego -> szybszego !
to [email protected]

0

Witam
Ja sobie to w ten sposob rozpatrzyłęm
(x+a)(x+b)(x+c)(x+d)
x^4 jest jeden
x^3 suma pojedynczych wspołczynników(a+b+c+d)
x^2 suma wszystkich iloczynó dwuelementowcyh(ab+ac...+cd);
x suma wszystkich mozliwych iloczynów trójelementowych
przy wyrazie wolnym abc*d

Ale mam słaby dzien i za cholere nie moglem tego zapiąć w zaden algorytm.TY widze tam z tymi sumami ładnie zrobiłęs ,gdybys mogł to zdziebełko czytelniej opisac byłbym wdzięczny.

0

Czy ladnie to nie wiem (mozna ladniej ale tez mam slaby ... miesiac che che)

pierwsza suma zaczyna sie od 1 do n-(ilosc elementow w iloczynie)+1
mnozona przez sume od indeks poprzedniej +1 do n-(ilosc elementow w iloczynie)+2 itd . tak jak napisalem (jakos janiej nie potrafie)

problem w tym ze nalezy rozpoczac sumowanie od tej najbardziej zaglebionej sumy (rekurencja - co tez nie jest zbyt efektywne) !

a czuje ze mozna ladniej (bo tak obliczenia rosna z okolo (bardzo na oko) 3 potega liczby elementow at bardzo duzo !)

0

Moze komus sie kiedys przyda,kod z matlaba

function y=wspolcz(a)

n=length(a);


wynik=zeros(1,n+1);
pomoc=zeros(1,n);
pomoc(1)=-a(1);
pomoc(2)=1;

for i=2:n
    for j=1:i
    wynik(j+1)=pomoc(j);
    end;
    wynik(1)=0;
    %wymnazam
    for j=2:n+1;
    wynik(j-1)=wynik(j-1)-a(i)*pomoc(j-1);
    end;
    pomoc=wynik;
end;


wynik

1 użytkowników online, w tym zalogowanych: 0, gości: 1