Polynomdivision
Die Polynomdivision, auch Partialdivision genannt, ist ein mathematisches Rechenverfahren, bei dem ein Polynom durch ein anderes dividiert wird. Das Ergebnis ist ein „Ganzteil“-Polynom und evtl. ein Restpolynom. Das Verfahren verläuft analog zur üblichen und in der Schule gelehrten Division von Zahlen mit Rest. Während dort vorübergehend kleinere Dezimalstellen ignoriert werden und die nächste Ziffer des Ergebnisses ggf. erraten wird, ist hier der nächste Koeffizient durch Division der verbliebenen höchsten Koeffizienten exakt bestimmt.
Allgemein
Informell
Im Folgenden seien <math>n</math> und <math>m</math> natürliche Zahlen einschließlich Null (<math>n,m \in \N_0</math>) und der Einfachheit halber die Größen <math>a_i\ (0 \le i \le n)</math> und <math>b_j\ (0 \le j \le m)</math> stets ganze Zahlen, also Elemente von <math>\mathbb Z</math>. Hat man nun zwei Polynome, etwa
- <math> p(x) = a_n x^n + a_{n-1} x^{n-1} + \cdots +a_2 x^2 + a_1 x + a_0 \quad\text{mit}\ a_n \ne 0</math>
und
- <math> q(x) = b_m x^m + b_{m-1} x^{m-1} + \cdots +b_2 x^2 + b_1 x + b_0 \quad\text{mit}\ b_m \ne 0,</math>
so kann man sie unter gewissen formalen Voraussetzungen ähnlich wie ganze Zahlen durcheinander dividieren, also die Rechenaufgabe
- <math>p(x) : q(x) = \; ?</math>
lösen. Im Ergebnis finden sich dann zwei Polynome: Ein Polynom <math>s(x)</math>, das dem Ganzzahlquotienten in der Zahlendivision mit Rest entspricht, und ein Polynom <math>r(x)</math>, das sich nicht mehr weiter durch <math>q(x)</math> teilen lässt und das dem Rest in der Zahlendivision entspricht:
- <math>p(x) = q(x) s(x) + r(x)</math>
oder in Analogie zur Schulschreibweise
- <math>p(x) : q(x) = s(x) \text{ Rest } r(x).</math>
Das Verfahren zum Auffinden dieser Lösung, bestehend aus <math>s(x)</math> und <math>r(x)</math>, ist die Polynomdivision.
Dass sich hiernach <math>r(x)</math> nicht weiter durch <math>q(x)</math> teilen lässt, ist gleichbedeutend damit, dass der Polynomgrad von <math>r(x)</math> kleiner ist als der von <math>q(x)</math>, weshalb dies in der formalen Definition der Rechenvorschrift (Algorithmus) auch als Abbruchbedingung gefordert wird. In der Zahlendivision mit Rest wird stattdessen gefordert, dass der Rest kleiner als der Divisor ist. Beide Nebenbedingungen sorgen im jeweiligen Verfahren dafür, dass der Rest eindeutig bestimmt ist.
Bei der formalen Definition des Verfahrens werden einige zusätzliche Bedingungen beachtet. Das kommt daher, dass man Polynome im Allgemeinen viel weitläufiger definieren kann, als es hier zur einfacheren Erklärung geschehen ist oder man es zum Beispiel aus der Schule kennt. Die Koeffizienten eines Polynoms etwa können dann aus beliebigen Ringen stammen. Dann dürfen aber wiederum die Koeffizienten der beiden Polynome nicht aus verschiedenen Ringen stammen. Daher definiert man, dass die Polynome in einem gemeinsamen Polynomring liegen müssen. Auch reicht es nicht mehr zu fordern, dass der „höchste“ Koeffizient (Leitkoeffizient) <math>b_m</math> von <math>q(x)</math> nur ungleich Null sein müsse. Vielmehr muss man fordern, dass er zudem eine Einheit des Ringes sein muss. Oder es wird das unten beschriebene Verfahren der Pseudo-Division angewendet.
Formal
Bei der Polynomdivision sind zwei Polynome <math>p(x)</math> und <math>q(x)</math> eines Polynomringes <math>R[x]</math> gegeben, wobei <math>R</math> ein kommutativer Ring mit <math>1 \ne 0</math> und der Leitkoeffizient von <math>q(x)</math> eine Einheit in <math>R</math> ist, und es wird die Gleichung
- <math>p(x) = s(x) q(x) + r(x),</math>
nach den gesuchten Polynomen <math>s(x)</math> und <math>r(x)</math> gelöst, und zwar so, dass der Grad von <math>r(x)</math> kleiner als der von <math>q(x)</math> ist.
Anmerkungen
- Wegen <math>\operatorname{grad}\,r(x) < \operatorname{grad}\,q(x)</math> sind die Polynome <math>s(x)</math> und <math>r(x)</math> in <math>R[x]</math> eindeutig bestimmt.
- Die Polynomdivision ist im Allgemeinen keine innere Verknüpfung auf <math>R[x]</math>, da sich als Ergebnis der Division zweier Polynome im Allgemeinen nicht ein einzelnes, sondern zwei Polynome in <math>R[x]</math> ergeben und sich somit keine Zuordnung der Form <math>R[x] \times R[x] \rightarrow R[x]</math> machen lässt. Ist das jedoch im Einzelfall möglich, so wird <math>R[x]</math> zu einem Körper mit der Polynomdivision als Umkehrung der Polynommultiplikation.
- Ist die Polynomdivision für jedes beliebige Paar von zwei Polynomen aus <math>R[x]</math> möglich, so wird <math>R[x]</math> zu einem euklidischen Ring bzgl. der Polynomgrad-Funktion. Das ist genau dann der Fall, wenn <math>R</math> ein Körper ist.
- Indem man <math>s(x)</math> als Linearfaktor <math>x-a \in R[x]</math> (mit einem <math>a\in R</math>) wählt, erhält man die Äquivalenz folgender Aussagen:
- <math>a</math> ist Nullstelle von <math>p(x)</math> (das heißt es ist <math>p(a) = 0</math>).
- Bei der Division durch <math>x-a</math> verschwindet der Rest, das heißt: <math>p(x) = (x-a)\, q(x)</math>.
- Das Polynom <math>p(x)</math> ist durch den Linearfaktor <math>x-a</math> teilbar.
- Dies gilt auch für Integritätsringe <math>R</math> und lässt sich zu folgender Aussage erweitern:<ref>{{#invoke:Vorlage:Literatur|f}}</ref>
- Ist <math>a\in R</math> eine Nullstelle von <math>p(x) \in R[x]</math>, so gibt es ein eindeutig bestimmtes (nämlich maximales) <math>m\in \N</math> mit der Eigenschaft <math>p(x) = (x-a)^m \cdot p_0(x)</math> mit <math>p_0(x) \in R[x]</math> und <math>p_0(a) \neq 0</math>. Die natürliche Zahl <math>m</math> heißt Ordnung der Nullstelle <math>a</math> des Polynoms <math>p(x)</math>. Für <math>m=1</math> spricht man bspw. von einer einfachen Nullstelle, für <math>m=2</math> von einer doppelten Nullstelle etc.
- Durch vollständige Induktion folgt: Die Anzahl der Nullstellen eines Polynoms <math>p(x)</math> in <math>R</math> kann seinen Grad <math>\deg p(x)</math> nicht überschreiten.
- Anders gewendet: Ist <math>n = \deg p(x)</math> und sind <math>a_1, a_2, \dots, a_{n+1}</math> paarweise verschiedene Elemente des Ringes <math>R</math>, so kann <math>p(x)</math> nicht auf ihnen allen verschwinden, das heißt, es gibt ein <math>i\; (1\leq i\leq n+1)</math> mit <math>p(a_i) \neq 0</math>. – Dieser „Nichtnullstellensatz“ (W. Krull) lässt sich wie folgt durch vollständige Induktion auf multivariate Polynome verallgemeinern.
- Ist <math>p(x_1, \dots, x_N)</math> ein Polynom aus <math>R[x_1, \dots, x_N]</math>, betragen die Grade in den Variablen <math>x_i</math> jeweils <math>d_i</math> und sind für jedes <math>i=1,\dots, N</math> Mengen <math>A_i = \{a_{i,1}, a_{i,2}, \dots, a_{i,d_i+1} \} \subset R</math> mit <math>d_i + 1</math> paarweise verschiedenen Elementen gegeben, so kann das Polynom nicht auf ganz <math>A_1 \times A_2 \times \dots \times A_N</math> verschwinden. Es gibt also einen Punkt <math>(a_{1,j_1}, \dots, a_{N, j_N})</math>, an dem <math>p(x)</math> nicht verschwindet: <math>p(a_{1,j_1}, \dots, a_{N, j_N}) \neq 0</math>.<ref> {{#invoke:Vorlage:Literatur|f}}
</ref>
Anwendungen
- Eine Anwendung ist das Lösen von Gleichungen höheren Grades. {{#invoke:Vorlage:Anker|f |errCat=Wikipedia:Vorlagenfehler/Vorlage:Anker |errHide=1}}Wenn eine Lösung (Nullstelle) <math>x_n</math> bekannt ist, findet die Polynomdivision Anwendung, um den Grad der Gleichung um Eins zu senken. Diese Vorgehensweise wird „Abspalten einer Nullstelle“ genannt.
- Eine weitere Anwendung findet die Polynomdivision bei der Kurvendiskussion mit der Bestimmung der Näherungskurven einer rationalen Funktion.
- Bei der Partialbruchzerlegung rationaler Funktionen wird die Polynomdivision ebenfalls benötigt.
- Bei der Berechnung von Prüfsummen findet die Polynomdivision über dem Ring der ganzen Zahlen modulo 2 Anwendung, siehe CRC-Polynom.
- Nach erfolgter Polynomdivision kann man dasselbe Verfahren auf Divisor und Rest erneut anwenden und so einen weiteren Rest berechnen, und so weiter. Man erhält dann eine sogenannte Polynomrestfolge.
Berechnung
Manueller Ablauf
Das Verfahren funktioniert für Polynome mit ganzzahligen Koeffizienten genau so wie die schriftliche Division ganzer Zahlen mit Rest und kann mit dem gleichen Schema (Verfahren, Vorgehensweise) gelöst werden. Hier werden die einzelnen Schritte am Beispiel
- <math> \frac{p(x)}{q(x)} = \frac{4 \cdot x^5 - x^4 + 2 \cdot x^3 + x^2 - 1} {x^2 + 1} </math>
erläutert:
- Wie bei der Division ganzer Zahlen wird zuerst der Summand höchsten Grades des Polynoms <math>p</math> eliminiert. Dazu wird zunächst der Summand höchsten Grades von <math>p</math> durch den Summanden höchsten Grades von <math>q</math> dividiert. Das Ergebnis ist <math>\frac{4x^5}{x^2} = 4x^3</math>. Danach wird <math>q</math> mit <math>4x^3</math> multipliziert und von <math>p</math> subtrahiert.
- <math> \begin{matrix} ( 4x^5 & -x^4 & +2x^3 & + x^2 & -1 ) & : & ( x^2 & +1 ) & = & 4x^3 + \frac{-x^4 -2x^3+x^2-1}{x^2 + 1} \\
\underline{-4x^5} & & \underline{-4x^3} \\ & -x^4 & -2x^3 \end{matrix} </math>
- Es bleibt der Rest <math>-x^4 -2x^3+x^2-1</math>. Sein Grad ist nicht kleiner als der des Divisors.
- Im nächsten Schritt wird von diesem Rest der Summand höchsten Grades eliminiert, bis in mehreren solchen Schritten ein Rest entsteht (hier: <math>2x - 3</math>), der nicht mehr eliminiert werden kann, weil sein Grad kleiner als der Grad des Divisors <math>q</math> ist.
- <math>\begin{array}{rrrrl}
(-x^4 & -2x^3 & + x^2 && -1) & : & (x^2 && +1) = - x^2 & -2x & +2 & + \frac{2x - 3}{x^2 + 1}\\
\underline{+x^4} & & \underline{+x^2} \\
& -2x^3 & +2x^2 \\
& \underline{+2x^3} & & \underline{+2x} \\
& & +2x^2 & +2x \\
& & \underline{-2x^2} & & \underline{- 2} \\
& & & +2x & - 3
\end{array} </math>
- Weitere Beispiele
Algorithmus
Das folgende Code-Fragment in BASIC zeigt den Kern der Berechnung:
<syntaxhighlight lang="qbasic"> For i = GradZ - GradN To 0 Step -1
Quotient(i) = Zähler(i + GradN) / Nenner(GradN)
For j = GradN To 0 Step -1
Zähler(i + j) = Zähler(i + j) - Nenner(j) * Quotient(i)
Next j
Next i For j = GradN - 1 To 0 Step -1
Rest(j) = Zähler(j)
Next j
</syntaxhighlight>
Die Variable Zähler() ist ein Feld (Array), welches die Koeffizienten des Zählerpolynoms enthält, so dass Zähler(i) den Koeffizienten der Potenz <math>x^i</math> enthält. Entsprechend ist Nenner() ein weiteres Feld, welches in gleicher Art die Koeffizienten des Nennerpolynoms enthält. Das Ergebnis sind zwei Polynome, welche in Quotient() und Rest() ausgegeben werden. Die Variablen GradN und GradZ enthalten den jeweiligen Polynomgrad von Zähler und Nenner.
In einem optimierten Programm könnte man die innere Schleife von 0 bis GradN-1 laufen lassen und die Ergebnisse in Zähler() zurückschreiben, so dass die Variablen Quotient() und Rest() entfallen würden. Der Einfachheit halber wurde hier darauf verzichtet.
Pseudo-Division
Die oben beschriebene Methode zur Polynomdivision ist nur dann anwendbar, wenn der Leitkoeffizient des Divisors <math>q(x)</math> eine Einheit im Grundring ist. Das ist immer der Fall, wenn der Grundring ein Körper ist. Über allgemeinen Grundringen muss das jedoch nicht immer der Fall sein. Deswegen wird eine sogenannte Pseudo-Division definiert, die über allen Integritätsringen funktioniert. Gelöst wird dabei nicht die obige Gleichung, sondern die leicht variierte Gleichung
- <math>\alpha p(x) = s(x) q(x) + r(x),</math>
wobei die Polynome <math>p(x)</math> und <math>q(x)</math> vorgegeben sind und eine Konstante <math>\alpha</math> sowie Polynome <math>s(x)</math> und <math>r(x)</math> gesucht werden. Auch hier soll wieder der Grad von <math>r(x)</math> kleiner als derjenige von <math>q(x)</math> sein.
Das Vorgehen ist ähnlich der normalen Polynomdivision. Allerdings werden im Divisionsschritt nicht nur das Polynom <math>q(x)</math>, sondern auch <math>p(x)</math> mit geeigneten Faktoren multipliziert, um zu erreichen, dass sich die Leitkoeffizienten gegenseitig herauslöschen.
Beispiel
Als Beispiel soll eine Pseudo-Division im Polynomring <math>\Z[x]</math> über den ganzen Zahlen durchgeführt werden. Seien
- <math>
p(x) = 2x^2 + 1 \quad\text{und}\quad q(x) = 5x + 5. </math> Eine normale Polynomdivision ist hier nicht möglich, da <math>5</math>, der Leitkoeffizienten von <math>q</math>, in <math>\Z</math> nicht invertierbar ist. Wir können aber <math>p</math> mit <math>5</math> multiplizieren. Nun kann man <math>q</math> mit <math>2x</math> multipliziert abziehen und erhält
- <math>
5 p(x) - 2x q(x) = 10x^2 + 5 - 10x^2 - 10x = -10x + 5. </math> Der Grad von <math>-10x + 5</math> ist dabei kleiner als derjenige von <math>p</math> aber noch nicht kleiner als der von <math>q</math>. Ziehen wir nun von diesem Zwischenergebnis <math>-2</math>-mal <math>q</math> ab, erhalten wir
- <math>
-10x + 5 - (-2)q(x) = -10x + 5 + 10x + 10 = 15. </math> Da <math>15</math> als konstantes Polynom einen kleineren Grad als <math>q</math> besitzt, sind wir hier fertig. Rückwärts einsetzen ergibt
- <math>
15 = (5p(x) - 2xq(x)) - (-2)q = 5p(x) - (2x - 2) q(x) </math> oder umgeformt
- <math>
5 p(x) = (2x - 2) q(x) + 15. </math>
Algorithmus
Das Vorgehen soll nun noch durch den Algorithmus illustriert werden. Dieser rekursive Algorithmus hat als Argumente zwei Polynome <math>p</math> und <math>q</math>, wobei <math>q</math> nicht das Nullpolynom sein darf, sowie die Variable <math>x</math>, bezüglich der die Pseudodivision zu erfolgen hat. Das Ergebnis ist ein Tripel <math>(c,s,r)</math> bestehend aus Polynomen <math>s</math> und <math>r</math> sowie einer Konstanten <math>c</math>, so dass <math>cp = sq + r</math> und <math>\operatorname{grad}(r) < \operatorname{grad}(q) </math> gilt.
pseudoDivision(p, q, x) =
if d < 0
then (1, 0, p)
else (c * a, c * t + s, r) where
d = grad(p, x) - grad(q, x)
a = lcoeff(q, x)
b = lcoeff(p, x)
t = b*xd
(c,q,r) = pseudoDivision(a*p - t*q, q, x)
Hierbei liefert <math>\operatorname{grad}(f, x)</math> den Grad sowie <math>\operatorname{lcoeff}(f, x)</math> den Leitkoeffizienten eines Polynomes. Man kann noch weitere Verbesserungen am Algorithmus vornehmen, indem man etwa wie im Beispiel die Multiplikation mit x unterlässt, wenn sie nicht notwendig ist.
Division durch Linearfaktor
Will man bei einer Gleichung
- <math> a_n x^n + a_{n-1} x^{n-1} + \cdots +a_2 x^2 + a_1 x + a_0 = 0 \quad\text{mit}\ a_n \ne 0</math>
den Linearfaktor <math>(x-x_1)</math> einer Lösung <math>x_1</math> abspalten, so ergibt sich das um ein Grad reduzierte Polynom
- <math> b_{n-1} x^{n-1} + b_{n-2} x^{n-2} + \cdots +b_2 x^2 + b_1 x + b_0 = 0</math>
mit den Koeffizienten
- <math>b_{n-1} = a_n</math>
- <math>b_{n-2} = a_{n-1} + a_n \cdot x_1</math>
- <math>b_{n-3} = a_{n-2} + a_{n-1} \cdot x_1 + a_n \cdot {x_1}^2</math>
- <math>\cdots</math>
- <math>b_{0} = a_1 + a_2 \cdot x_1 + a_3 \cdot {x_1}^2 + \cdots + a_n \cdot {x_1}^{n-1}</math>
- Beispiel:
Die Polynomgleichung
- <math> 2 x^5 -4 x^4 + 4 x^3 + 3 x^2 + 1{,}5 x + 0,75 = 0</math>
hat die Lösung
- <math>x_1 = -0{,}4841657</math>
Das Restpolynom hat also die Koeffizienten
- <math>b_4 = a_5 = 2</math>
- <math>b_3 = a_4 + a_5 \cdot x_1 = -4{,}968331</math>
- <math>b_2 = a_3 + a_4 \cdot x_1 + a_5 \cdot {x_1}^2 = 6{,}405496</math>
- <math>b_1 = a_2 + a_3 \cdot x_1 + a_4 \cdot {x_1}^2 + a_5 \cdot {x_1}^3 = -0{,}101321</math>
- <math>b_0 = a_1 + a_2 \cdot x_1 + a_3 \cdot {x_1}^2 + a_4 \cdot {x_1}^3 + a_5 \cdot {x_1}^4 = 1{,}549056</math>
und lautet:
- <math> 2 x^4 -4{,}968331 x^3 + 6{,}405496 x^2 -0{,}101321 x + 1{,}549056 = 0</math>
Horner-Schema
Mit Leitkoeffizient 1 kann schneller mit dem Horner-Schema (zur Funktionswert-Berechnung eines Polynoms) gearbeitet werden. Interessant ist die Umkehrung: man kann mit der Polynomdivision auch Funktionswerte bestimmen. Beispiel: <math>p(x) = x^3-2x+1</math> mit <math>p(3)=22</math>
Polynomdivision liefert: <math>\left(x^3-2x+1\right)\colon\left(x-3\right) = x^2+3x+7 + \frac{22}{x-3}</math>
Nach Multiplikation mit <math>(x-3)</math> sieht man, dass der Rest 22 der Funktionswert <math>p(3)</math> ist.
Verallgemeinerung auf Polynomringe in mehreren Unbestimmten
Es existiert eine verallgemeinerte Polynomdivision in multivariablen Polynomringen <math>K[x_1, x_2, \ldots, x_n]</math>, wenn <math>K</math> ein Körper ist. Dabei werden einige Abstriche in Kauf genommen, wie beispielsweise die Eindeutigkeit.
Literatur
- Peter Hartmann: Mathematik für Informatiker. Vieweg+Teubner, 2006, ISBN 3-8348-0096-1, S. 88–90 ({{#if: wkNsmoC6cNsC
| {{#if: {{#if: ||1}} {{#if: wkNsmoC6cNsC ||1}}
| <0|&pg={{#if:|RA{{{Band}}}-}}PA88|&pg=88}}{{#if:|&q=}}#v=onepage|{{#if:|&pg=|}}{{#if:|&q=}}}}{{#if:|q=%7B%7B%7BSuchbegriff%7D%7D%7D}}|{{#if:|q=%7B%7B%7BSuchbegriff%7D%7D%7D}}}} {{#if:Auszug|{{#invoke:WLink|getEscapedTitle|Auszug}}|eingeschränkte Vorschau}}{{#if:|| in der Google-Buchsuche}}{{#ifeq:|US|-USA}}{{#if: wkNsmoC6cNsC |{{#invoke: Vorlage:GoogleBook|fine |id=wkNsmoC6cNsC |errN=Parameter „BuchID“ hat falsche Länge |errC=Parameter „BuchID“ enthält ungültige Zeichen |errH=# in der „BuchID“ |errP=Parameterzuweisungen in der „BuchID“ |class=editoronly |cat={{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Google Buch}} |template= Vorlage:Google Buch}}
}}
| Es darf nur genau einer der beiden Parameter „Suchbegriff“ oder „BuchID“ ausgefüllt werden. Bitte beachte die in der Vorlage:Google Buch befindliche Dokumentation und prüfe die verwendeten Parameter.{{#ifeq: 0 | 0 | }}}}
| Es muss mindestens einer der beiden Parameter „Suchbegriff“ oder „BuchID“ ausgefüllt werden. Bitte beachte die in der Vorlage:Google Buch befindliche Dokumentation und prüfe die verwendeten Parameter.{{#ifeq: 0 | 0 | }}}}{{#invoke:TemplatePar|check
|all=
|opt= Suchbegriff= BuchID= Seite= Band= SeitenID= Hervorhebung= Linktext= Land= KeinText=
|cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Google Buch}}
|template= Vorlage:Google Buch
|format=
}}{{#if:Auszug|{{#if:{{#invoke:WLink|isBracketedLink|Auszug}}|}}}})
- Schülerduden Mathematik II. Dudenverlag, 2004, ISBN 3-411-04275-3, S. 327–328
- Charles D. Miller, Margaret L. Lial, David I. Schneider: Fundamentals of College Algebra. 3. überarbeitete Auflage. Scott & Foresman / Little & Brown Higher Education, 1990, ISBN 0-673-38638-4, S. 24–26
- {{#invoke:Vorlage:Literatur|f}}
- {{#invoke:Vorlage:Literatur|f}}
Weblinks
- JavaScript berechnet Polynomdivision und erzeugt Übungsaufgaben
- Polynomdivision Rechner mit Rechenweg
Einzelnachweise
<references />