Das Horner-Schema (nach William George Horner) ist ein Umformungsverfahren für Polynome, um die Berechnung von Funktionswerten so einfach wie möglich zu machen.
Funktion des Hornerschemas
In der Analysis müssen häufig die Werte einer Funktion (Mathematik) und die ihrer Ableitung (Mathematik) berechnet werden. Sei es, um eine Nullstelle zu bestimmen, einen Überblick über eine Funktion zu erhalten, oder um einen Graphen zu skizzieren.
Bei Polynomen erfordert dabei das Einsetzen der x-Werte in die Funktionsgleichung und die Berechnung der Potenzen bei nicht einfachen Zahlen und vor allem bei großen Potenzen erhebliche Mühe. Es wird viel Zeit benötigt und die Fehlerwahrscheinlichkeit ist hoch. Dabei gibt es für Polynome schon lange das Horner-Schema.
Durch fortgesetztes Ausklammern der freien Polynomvariablen x wird das Polynom als Schachtelung von Produkten und Summen dargestellt. In der umgewandelten Darstellung kommt keine Potenzfunktion, sondern nur noch Multiplikation und Addition vor.
Beispiel

Rechenvorteil:
Der Ausdruck IV) mag, wegen der etwas unübersichtlichen Klammerschachtelung, komplizierter erscheinen als Ausdruck I). IV) bietet jedoch einen handfesten Rechenvorteil gegenüber I):
Um mit I) einen Funktionswert für eine bestimmte Zahl x auszurechnen, benötigt man 7 Multiplikationen: 3 Multiplikationen für das Errechnen der Werte
x2, x3 und x4 und 4 weitere Multiplikationen, um die Werte x bis x4 mit ihren Koeffizienten - in unserem Beispiel 7, -5, -4 und 2 - zu multiplizieren.
In IV) sind es hingegen nur 4 Multiplikationen.
Die Zahl der - rechnerisch weniger aufwändigen - Additionen ist in beiden Fällen gleich, nämlich 4.
Je länger das Polynom ist, desto stärker schlägt dieser Vorteil in Rechenzeit und numerischer Genauigkeit (weniger Rundungsfehler) zu Buche. Im günstigsten Fall lässt sich der Aufwand für Multiplikationen auf fast die Hälfte reduzieren. Die hier dargestellte Form eignet sich besonders gut für die Berechnung in der umgekehrten polnischen Notation (UPN)
Tabellarische Schreibweise des Hornerschemas
Betrachten wir nochmals obiges Beispiel und setzen:
|
|
|
|
|
|
|
|
|
|
Nun überträgt man die Koeffizienten, die Zwischenprodukte und Teilsummen in eine 3zeilige-Tabelle, wobei in die
erste Zeile die Koeffizienten eingetragen werden. In die dritte Zeile kommen die Teilsummen. Dabei wird der erste Koeffizient des Polynoms direkt übernommen. Die zuvor berechnete Teilsumme multipliziert mit x ergibt dann den nächsten Summanden, den man dann in die zweite Zeile unter den folgenden Koeffizienten einträgt.
So erhält man nach und nach das folgendes Rechenschema:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
|
| |
 |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beispiel
Die Berechnung des obigen Polynoms für x = 2 mit Hilfe des Horner-Schemas stellt sich wie folgt dar:
|
|
2
|
−4
|
−5
|
7
|
11
|
| 2 )
|
|
4
|
0
|
−10
|
−6
|
|
|
2
|
0
|
−5
|
−3
|
5
|
Den Wert, für den man das Polynom berechnen möchte, schreibt man dabei üblicherweise in die zweite Zeile vor das Schema.
Anwendungsmöglichkeiten des Hornerschemas
Umwandlung zwischen verschiedenen Zahlensystemen
Unsere vertraute Darstellung von Zahlen im dezimalen Stellenwertsystem ist nichts anderes als eine verkürzte Schreibweise für besondere Polynome, nämlich Polynome mit der Basis x = 10. Das gleiche gilt für alle anderen Stellenwertsysteme, beispielsweise das Binärsystem. Dort ist x = 2. Wir können uns das Horner-Schema zunutze machen, um Zahlen aus jedem anderen Stellenwertsystem in das Dezimalsystem umzuwandeln.
Beispiel: Die Binärzahl 110101 soll in das Dezimalsystem umgewandelt werden. Wie lautet die sich ergebende Dezimalzahl d?
Wir schreiben 110101binär als Polynom:

so ist

Nach dem Horner-Schema:

Wir brauchen das nun nicht in einem Zuge auszurechnen, sondern können schrittweise vorgehen. Jeder Schritt besteht aus einer Multiplikation mit 2 und einer Addition. Der Übersicht halber schreiben wir die Schritte untereinander und notieren die Zwischenergebnisse:

Wir haben unsere gesuchte Dezimaldarstellung gefunden.
Verallgemeinert lautet das Verfahren: Eine Zahl aus einem Stellenwertsystem zur Basis x wird in das Dezimalsystem umgewandelt, indem
- der Wert der ersten Ziffer als Anfangswert genommen wird
- danach schrittweise das Ergebnis aus dem vorigen Schritt mit x multipliziert und die nächste Ziffer addiert wird
- bis alle Ziffern aufgebraucht sind.
Am einfachsten schreibt man die Rechnung wieder in tabelarischer Form auf:
|
|
1
|
1
|
0
|
1
|
0
|
1
|
| 2 )
|
|
2
|
6
|
12
|
26
|
52
|
|
|
1
|
3
|
6
|
13
|
26
|
53
|
Polynomdivision
Polynomdivision mit linearem Divisor
Am folgendem Beispiel

wird zunächst die Polynomdivision mit einem linearem Divisor im Horner-Schema dargestellt.
Die Polynomdivision wird üblicherweise in einer schriftlichen Form durchgeführt.
Läßt man nun die Potenzen von
weg, so erhält man folgende Darstellung:
| ( |
1 |
−4 |
4 |
3 |
−8 |
4
|
) |
: |
( 1 |
−2 |
) |
=
|
1 |
−2 |
0 |
3 |
−2
|
| −(
|
1
|
−2
|
)
|
|
|
−2
|
|
−(
|
−2
|
4
|
)
|
|
|
|
0
|
|
|
−(
|
0
|
0
|
)
|
|
|
|
|
3
|
|
|
|
−(
|
3
|
−6
|
)
|
|
|
|
|
|
−2
|
|
|
|
|
−(
|
−2
|
4
|
)
|
|
|
|
|
|
|
0
|
Verdichtet man nun dieses Schema auf drei Zeilen und übernimmt den ersten Koeffizienten des Dividenden in die dritte Zeile, so erhält man:
| (
|
1
|
−4
|
4
|
3
|
−8
|
4
|
) : ( 1
|
−2 )
|
| −(
|
|
−2
|
4
|
0
|
−6
|
4
|
)
|
|
|
1
|
−2
|
0
|
3
|
−2
|
0
|
Wie man nun sieht, sind die doppelt unterstrichenen Werte der letzten Zeile die Koeffizienten des Ergebnispolynoms und der letzte Wert dahinter ist der Divisionsrest (hier Null).
Multipliziert man nun das Vorzeichen in die zweite Zeile, so erfolgt die Berechnung nach folgendem Ablauf:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
|
| |
 |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Vermerkt man nun noch den vorzeichengedrehten Wert des Absolutglieds des Divisors vor dem Schema, so bekommt man die allgemeine Darstellung des Horner-Schemas:
|
|
1
|
−4
|
4
|
3
|
−8
|
4
|
| 2)
|
|
2
|
−4
|
0
|
6
|
−4
|
|
|
1
|
−2
|
0
|
3
|
−2
|
0
|
Das obige Beispiel kann nun in folgender Formel zusammengefaßt werden:
Hat die Disvisionsaufgabe:

als Ergebnis

so bestimmen sich die Koeffizienten nach folgender Vorschrift:
Das Horner-Schema stellt sich dann wie folgt dar:
|
|
 |
 |
 |
|
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Polynomdivision mit einem Divisor 2. Grades
Hat die Disvisionsaufgabe:

als Ergebnis

so bestimmen sich die Koeffizienten nach folgender Vorschrift:
Das verallgemeinerte Horner-Schema stellt sich dann wie folgt da:
|
|
 |
 |
 |
|
|
 |
 |
 |
|
|
|
|
 |
|
|
 |
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ein Beispiel:

Im Horner-Schema:
|
|
−6
|
14
|
−8
|
−2
|
0
|
8
|
−6
|
| −1 )
|
|
|
6
|
−2
|
−2
|
0
|
2
|
| 2 )
|
|
−12
|
4
|
4
|
0
|
−4
|
|
|
|
−6
|
2
|
2
|
0
|
−2
|
4
|
−4
|
Daraus ergibt sich:

In einigen Fällen (z.B. zur Verbesserung der Konvergenz beim Newton-Verfahren) kann es sehr Hilfreich sein ein Polynom P in ein Polynom
, a konstant, zu transformieren, so dass mit
gilt:

Eine solche Lineartransformation kann man durch Einsetzen von
anstelle von x und anschließendes Ausmultiplizieren erhalten. Wesentlich effizienter lässt sich diese Rechnung mit dem vollständigen Horner-Schema durchführen.
Betrachten wir das Polynom
vom Grad n welches wir nach Potenzen von
entwickeln wollen:
Hierzu dividieren wir das Polynom
mittels des Horner-Schemas durch
. Wie oben gezeigt können wir aus dem Schema das Polynom
und den Rest
ablesen, so dass gilt:

Nun wird die Division auf das Ergebnis-Polynom
durchgeführt und erhalten
bzw. den Rest
:

Nach n Divisionen erhält man:
mit 
Es folgt:

Mit
ist dann die Lineartransformation

D.h. die Reste bei der fortgesetzten Divission mit dem Linearfaktor
bilden die Koeffizienten des transformierten Polynoms
Beispiel
Möchte man z.B. die Nullstelle des Polynoms
berechnen, so kann man leicht den Punkt
als erste erste Näherung raten. Für die weiter Berechnung ist es nun hilfreich
nach
zu entwickeln (siehe "Methodus fluxionum et serierum infinitarum"). Gesucht ist also das Polynom
.
|
|
1
|
0
|
−2
|
−5
|
| 2)
|
|
2
|
4
|
4
|
|
|
1
|
2
|
2
|
−1
|
| 2)
|
|
2
|
8
|
|
|
|
1
|
4
|
10
|
| 2)
|
|
2
|
|
|
|
1
|
6
|
Das gesuchte Polynom ist also
.
Das erweiterte Hornerschema
Eine weitere Eigenschaft des Horner Schemas ist es, dass man recht schnell die erste Ableitung an der Stelle
berechnen kann.
Betrachten wir die Division

mit dem Ergebnis

welches wir aus dem Horner-Schema ablesen können. Weiter oben konnte man auch sehen das
ist.
Es gilt also

Die Ableitung
läßt sich mit dem Differenzenquotienten berechnen. Es gilt

Daraus folgt

D.h. die Zahlen in der dritten Zeile des Horner-Schemas bilden die Koeffizienten für
. Durch nochmalige Anwendung des Horner-Schemas kann dann schließlich der Wert der Ableitung
berechnet werden.
Beispiel
Betrachten wir das Polynom
|
|
1
|
−4
|
4
|
3
|
−8
|
4
|
| 2)
|
|
2
|
−4
|
0
|
6
|
−4
|
|
|
1
|
−2
|
0
|
3
|
−2
|
0
|
| 2)
|
|
2
|
0
|
0
|
6
|
|
|
|
1
|
0
|
0
|
3
|
4
|
|
Aus dem Schema kann man nun ablesen:
und
Probe
Aus dem Horner-Schema
|
|
5
|
−16
|
12
|
6
|
−8
|
| 2 )
|
|
10
|
−12
|
0
|
12
|
|
|
5
|
−6
|
0
|
6
|
4
|
folgt
.
Nullstellenbestimmung
Das Horner-Schema lässt sich in verschiedenen numerischen Verfahren zur Nullstellenbestimmung von Polynomen einsetzen.
Hat man z.B. eine Nullstelle "erraten" so kann man wie wir oben gesehen haben sehr schnell überprüfen ob die Vermutung stimmt.
Ein weiteres Einsatzgebiet ist das Newtonsche Näherungsverfahren. Für das Newton-Verfahren benötigt man in jedem Iterations-Schritt
und
. Diese Werte lassen sich wie oben beschrieben recht schnell mit dem Horner-Schema berechnen.
Geschichte
William George Horner erschuf dieses Verfahren zur Lösung algebraischer Gleichungen. Eigentlich wurde die Idee zu diesem Verfahren bereits vor 500 Jahren in China entdeckt, hat sich aber nicht verbreitet.
Quelle
- William George Horner. A new method of solving numerical equations of all orders, by continuous approximation. Philosophical Transactions of the Royal Society of London, Seiten 308-335, Juli 1819.
Weblinks