Wpisany przez Tomasz Lubiński,
08 sierpnia 2005 21:35
Algorytm Hornera pozwala na obliczenie wartości znoramalizowanych pochodnych 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, którego wartość dla x=2 wynosi -1 - zatem właśnie tyle wynosi pierwsza znormalizowana pochodna. Otrzymany wielomian dzielimy jak poprzednio.
c1=b2=1
c0=b1*2+a1=2
I otrzymujemy x+2, którego wartość dla x=2 wynosi 4 - druga znormalizowana pochodna.
d0=c1=1
I otrzymujemy 1, wartość dla x=2 wynosi 1 - trzecia znormalizowana pochodna.
W(x)=a_nx^n+...+a_1x+a_0
gdzie n oznacza stopień wielomanu. W(x) możemy przedstawić następująco:
W(x)=(x-a)^jv(x)+r(x)
gdzie wielomian r jest stopnia mniejszego niż j. Po j-krotnym zróżniczkowaniu otrzymujemy:
W^{(j)}(a)=j!v(a)
czyli v(a) jest równy j-tej znormalizowanej pochodnej w punkcie a. Współczynniki v i jego wartość obliczamy dzieląc wielomian W(x) i kolejno otrzymywane ilorazy przez (x-a) algorytmem Hornera.Przykład:
Obliczymy wszystkie trzy znormalizowane pochode wielomianu W(x)=x3-2x2-5x+5 w punkcie x=2b2=a3=1
b1=b2*2+a2=0
b0=b1*2+a1=-5
Zatem po podzieleniu W(x)/(x-2) otrzymujemy x2-5, którego wartość dla x=2 wynosi -1 - zatem właśnie tyle wynosi pierwsza znormalizowana pochodna. Otrzymany wielomian dzielimy jak poprzednio.
c1=b2=1
c0=b1*2+a1=2
I otrzymujemy x+2, którego wartość dla x=2 wynosi 4 - druga znormalizowana pochodna.
d0=c1=1
I otrzymujemy 1, wartość dla x=2 wynosi 1 - trzecia znormalizowana pochodna.
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 | ***** / 2 |
Poprawiony: 25 września 2012 14:40
C++ jest nadzbiorem C.