Wpisany przez Tomasz Lubiński,
08 sierpnia 2005 21:38
Algorytm Hornera pozwala na obliczenie współczynników z dzielenia wielomianu postaci:
b2=a3=1
b1=b2*2+a2=0
b0=b1*2+a1=-5
Zatem po podzieleniu W(x)/(x-2) otrzymujemy x2-5, ale mieliśmy go podzielić przez (x-2)2, zatem otrzymany wynik musimy jeszcze raz podzielić jak poprzednio.
c1=b2=1
c0=b1*2+a1=2
I otrzymujemy ostateczny wynik: x+2
W(x)=a_nx^n+...+a_1x+a_0
gdzie n oznacza stopień wielomanu przez wielomian postaci (x-a)b. Jeżeli porównamy współczynniki przy tych samych potęgach x z następującej zależności:
\sum_{k=0}^{n}{a_kx^k}=\left(\sum_{k=0}^{n-1}{b_{k+1}x^k}\right)(x-a)+b_0
to otrzymamy następujące wzory na współczynniki:
\begin{array}{cc}
b_k =a_{k+1} + b_{k+1} & \text{ dla } k = 0,1,...,n-1\\
b_{k-1} = a_k & \text{ dla } k = n
\end{array}
Przykład:
Wielomian W(x)=x3-2x2-5x+5. Podzielimy wielomianem (x-2)2.b2=a3=1
b1=b2*2+a2=0
b0=b1*2+a1=-5
Zatem po podzieleniu W(x)/(x-2) otrzymujemy x2-5, ale mieliśmy go podzielić przez (x-2)2, zatem otrzymany wynik musimy jeszcze raz podzielić jak poprzednio.
c1=b2=1
c0=b1*2+a1=2
I otrzymujemy ostateczny wynik: x+2
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Tomasz Lubiński | C/C++ | .cpp | .cpp | ***** / 6 | |
Tomasz Lubiński | Delphi/Pascal | Borland Delphi 5 | .pas | .pas | ***** / 2 |
Tomasz Lubiński | Java | .java | .java | ***** / 4 |
Poprawiony: 25 września 2012 14:42