Schemat Hornera
Schemat Hornera – wspólna nazwa dwóch algorytmów:
- obliczania wartości dowolnego wielomianu o jednej zmiennej:
- dzielenia takiego wielomianu przez dwumian liniowy i moniczny, tj. postaci – znajdowania wielomianu i liczby w tożsamości[1]:
Schemat Hornera wykorzystuje minimalną liczbę mnożeń[potrzebny przypis]. Dzięki jego rekurencyjnej postaci łatwo go zaimplementować w językach programowania, które umożliwiają stosowanie funkcji rekurencyjnych.
Nazwa tego algorytmu upamiętnia Williama Hornera, który opisał go w 1819 roku[1]. Znali go już jednak matematycy chińscy w XIII wieku, a na początku XIX wieku także Paolo Ruffini[2]. Nazwa upamiętniająca Hornera upowszechniła się jeszcze w XIX wieku[3], do czego przyczynił się Augustus De Morgan[2].
Dla dzielenia wielomianu przez dwumian można stosować schemat Hornera, jeżeli najpierw podzieli się dwumian i wielomian przez 3. Nie dotyczy on jednak dzielenia przez dwumiany stopni wyższych niż jeden, np. przez Schemat Hornera obliczania wartości wielomianu uogólniono na wielomiany wielu zmiennych[4].
Obliczanie wartości[edytuj | edytuj kod]
Wstęp[edytuj | edytuj kod]
Jeśli dany jest wielomian to obliczając jego wartość dla zadanego bezpośrednio z podanego wzoru, należy wykonać:
Wielomian ten można jednak przekształcić, korzystając z rozdzielności mnożenia względem dodawania:
Sprawia to, że wystarczy jedynie mnożeń i dodawań[5].
Przykład[edytuj | edytuj kod]
Niech:
- chcemy obliczyć wartość tego wielomianu dla
Zapisujemy:
- podstawiamy
Warto dla porównania obliczyć tę wartość metodą „tradycyjną”, nie korzystając z kalkulatora.
Algorytm[edytuj | edytuj kod]
Dany wielomian
przekształcamy do postaci
Następnie definiujemy:
Tak otrzymane będzie równe [5]. Rzeczywiście, jeśli podstawimy kolejno do tego wielomianu, otrzymamy
Dzielenie wielomianu przez dwumian[edytuj | edytuj kod]
Schemat[edytuj | edytuj kod]
Schemat Hornera dzielenia wielomianu przez dwumian jest oparty na podobnej zasadzie. Zauważmy, że jeśli
to
gdzie jest wielomianem stopnia a jest liczbą, którą nazywa się resztą z dzielenia wielomianu przez dwumian. Jeśli napiszemy:
to po wymnożeniu i porównaniu współczynników obu stron mamy:
Przykład[edytuj | edytuj kod]
Podzielmy rozważany wcześniej wielomian przez dwumian Mamy tutaj Praktycznie jest przeprowadzać obliczenia w tabeli:
- w jej pierwszym wierszu wypisuje się wszystkie – również zerowe – współczynniki wielomianu
- w dolnym wierszu wpisuje kolejno wyniki obliczeń według reguły danej wyżej:
współczynniki
licznika |
|||||
iloczyny | |||||
współczynniki
ilorazu |
Elementy dolnego wiersza są współczynnikami wielomianu natomiast skrajny prawy element jest resztą z dzielenia:
Przy okazji można zauważyć, że jest to dowód wniosku z twierdzenia Bézouta o tym, że reszta r równa się
Inne zastosowania[edytuj | edytuj kod]
Rozkład względem potęg dwumianu[edytuj | edytuj kod]
Rozpatrzmy, co będzie, jeżeli wielomian będziemy dzielić wielokrotnie przez otrzymując za każdym razem pewien wielomian i resztę
Otrzymaliśmy więc rozkład wielomianu względem potęg dwumianu Taki rozkład można otrzymać, stosując schemat Hornera kolejno do i biorąc reszty jako współczynniki (im później jest otrzymana reszta, tym przy większej potędze jest ona współczynnikiem).
Obliczanie wartości znormalizowanych pochodnych w punkcie[edytuj | edytuj kod]
Dany wielomian
gdzie jest stopnia mniejszego niż Po -krotnym zróżniczkowaniu i podstawieniu
Z tego wynika, że jest -tą znormalizowaną pochodną wielomianu w punkcie
Współczynniki wielomianu i wartości w punkcie obliczamy dzieląc wielomian i kolejno otrzymywane ilorazy przez dwumian
- dla
Algorytm Hornera dla obliczania początkowych elementów wymaga dodawań i mnożeń.
Uogólnienie na abstrakcyjny pierścień wielomianów[edytuj | edytuj kod]
Schematy podane wyżej można uogólnić na przypadek abstrakcyjnego pierścienia wielomianów[potrzebny przypis]. Niech będzie dowolnym ciałem, a będzie jego pierścieniem wielomianów. Jeśli
to współczynniki ilorazu
otrzymanego z dzielenia przez spełniają zależność:
dla reszta z tego dzielenia – równa – wynosi
Zobacz też[edytuj | edytuj kod]
Przypisy[edytuj | edytuj kod]
- ↑ a b schemat Hornera, [w:] Encyklopedia PWN [dostęp 2023-04-24] .
- ↑ a b John J. O'Connor; Edmund F. Robertson: Schemat Hornera w MacTutor History of Mathematics archive (ang.) [dostęp 2024-05-22].
- ↑ Jeff Miller, Horner's method [w:] Earliest Known Uses of Some of the Words of Mathematics (H) (ang.), MacTutor History of Mathematics archive, University of St Andrews, mathshistory.st-andrews.ac.uk [dostęp 2024-05-22].
- ↑ Juna Manuel Peña, Thomas Sauer, On the multivariate Horner scheme (ang.), SIAM Journal on Numerical Analysis 37(4), czerwiec 1998, ResearchGate, researchgate.net [dostęp 2024-05-22].
- ↑ a b Fortuna, Macukow i Wąsowski 1993 ↓, s. 17.
Bibliografia[edytuj | edytuj kod]
- Zenon Fortuna , Bohdan Macukow , Janusz Wąsowski , Metody numeryczne, Warszawa: Wydawnictwa Naukowo-Techniczne, 1993, ISBN 83-204-1551-9 .
Linki zewnętrzne[edytuj | edytuj kod]
- Michał Niedźwiedź, Schemat Hornera, Zintegrowana Platforma Edukacyjna, zpe.gov.pl [dostęp 2024-05-22].
- Krzysztof Kwiecień, nagrania kanału Khan Academy na YouTube [dostęp 2024-05-21]:
- Wprowadzenie do dzielenia wielomianów za pomocą schematu Hornera, 14 sierpnia 2018.
- Dzielenie wielomianów: Schemat Hornera, 15 sierpnia 2018.
- Dlaczego schemat Hornera działa?, 18 sierpnia 2018.
- Horner scheme (ang.), Encyclopedia of Mathematics, encyclopediaofmath.org [dostęp 2024-05-17].
- Scott Congreve, Horner’s Scheme (ang.), Uniwersytet Karola w Pradze, mff.cuni.cz [dostęp 2024-05-22] – krótki wykład z ćwiczeniami.