MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.

________________________________________________________________________________

 

Inhalt....: Polynome

Kategorie.: Grundkurs

Mathematik: Zahlentheorie, Kryptographie 

MuPAD.....: 3.0.0

Datum.....: 2004-03-31

Autoren...: Kai Gehrs <acrowley@mupad.de>

Funktionen: poly, divide, Dom::Integer

________________________________________________________________________________

 

Polynome

 

Dieses Arbeitsblatt ist Bestandteil des MuPAD Grundkurses.

 

Eine der elementarsten Familien von Funktionen in einer Unbestimmten ist die

Familie der Polynomfunktionen (oder kurz Polynome). Der Umgang mit Poly-

nomen soll hier am Beispiel des MuPAD Befehls "poly" demonstriert werden.

 

Es gibt im wesentlichen zwei Möglichkeiten, in MuPAD mit Polynomen zu rechnen.

 

Die erste Möglichkeit besteht darin, dass man Polynome als MuPAD Expressions

(MuPAD Ausdrücke) definiert. So kann z.B. das Polynom p = x^2 + 1 mittels

 

p:= x^2 + 1

math

definiert werden. Diese Vorgehensweise ist durchaus sinnvoll, wenn man sich

ausschließlich im Bereich der Analysis bewegt und derartige Polynomfunktionen

mit Mitteln der Differenzial- und Integralrechnung diskutiert. Möchte man jedoch

Polynome eher als algebraische Struktur ("Ring der Polynome") betrachten und

algebraische oder zahlentheoretische Methoden wie z.B. die Berechnung des

größten gemeinsamen Teilers zweier Polynome anwenden, so ist es sinnvoller,

die Funktion poly zur Definition von Polynomen in MuPAD zu benutzen.

 

Die Funktion "poly" erhält stets zwei oder drei Argumente: Ein polynomialer Aus-

druck in einer Unbestimmten, z.B. in x, dann eine einelementige Liste, die die

Unbestimmte enthält, die in dem polynomialen Ausdruck vorkommt, d.h. hier [ x ].

Als drittes, optionales Argument kann man einen Koeffizientenbereich angeben,

aus dem die Koeffizienten des Polynoms stammen sollen - wird dieser nicht an-

gegeben, so wird der größtmögliche Koeffizientenbereich von MuPAD gewählt

(d.h. Dom::ExpressionField - der Bereich, der alle Zahlen und Variablen umfasst).

 

Ein Aufruf der Funktion ist also in der Regel entweder von der Form

 

"poly( polynomialer Ausdruck z.B. in x, [ x ] )"

 

oder, falls explizit ein bestimmter Koeffizientenbereich R gewünscht ist, von der

Form

 

"poly( polynomialer Ausdruck z.B. in x, [ x ], R )".

 

Als Rückgabewert liefert uns poly im ersten Fall ein Polynom in x über dem größt-

möglichen in MuPAD verfügbaren Koeffizientenbereich Dom::ExpressionField().

 

Im zweiten Fall wird das Polynom so erzeugt, dass seine Koeffizienten aus dem

explizit angegebenen Koeffizientenbereich R stammen.

 

Wir betrachten einige Beispiele:

 

p:= poly(x^2 - 5*x + 6, [x])

math

q:= poly(x^3 - 2*x^2 - x + 2, [x])

math

Wir können nun mit den beiden Polynomen die üblichen arithmetischen

Operationen wie Addition und Multiplikation durchführen. Ein Vorteil besteht

darin, dass wir stets wieder ein Polynom erhalten:

 

Summe:= p + q

math

Differenz:= p - q

math

Produkt:= p * q

math

p * poly(1/3, [x])

math

Das einzige, womit wir vorsichtig sein müssen, ist die Division. Als algebraische

Struktur betrachtet, bildet die Menge der Polynome in einer Unbestimmten über

einem speziellen Koeffizientenbereich einen Ring, aber keinen Körper. Elemente

sind also (abgesehen von konstanten Polynomen, die in dem zugrundeliegenden

Koeffizientenbereich invertierbar sind) nicht invertierbar. Dies teilt uns MuPAD

auch ganz unverblümt mit:

 

Quotient:= p / q

math

Ähnlich wie bei ganzen Zahlen können wir auch "ganzzahlige Division" durchführen

und Reste betrachten. Die Funktion "divide" bestimmt den Quotienten zweier Poly-

nome nach dem Euklidischen Algorithmus.

 

Die Funktion "divide" erhält stets zwei Argumente: Ein Polynom p in einer Unbe-

stimmten, z.B. in x, und als zweites Argument ein Polynom q in derselben Unbe-

stimmten wie p, hier z.B. in x. Ein Aufruf ist immer von der Form "divide ( p, q )".

Als Rückgabewert liefert uns die Funktion eine Sequenz von zwei Polynomen s

und r. Dabei ist s der Quotient von p und q und r der Rest bei Division von p durch

q, so dass gilt: p = s * q + r.

 

Die Handhabung der Funktion ist also denkbar einfach. Wir erproben sie am

Beispiel unserer Polynome:

 

divide(p, q)

math

Wir machen die Probe: Auf das erste Polynom der Sequenz (d.h. auf den

Quotienten unserer beiden Polynome) greifen wir wie auf die Elemente einer

Liste mit dem Indexoperator [ ] zu:

 

s:= divide(p, q)[1]

math

Der Rest, d.h. das Polynom r, ist gegeben durch

 

r:= divide(p, q)[2]

math

Die Probe ergibt:

 

p = s * q + r

math

Das Ergebnis ist also korrekt. Wir vertauschen noch einmal die Rollen von p

und q:

 

divide(q, p)

math

s:= divide(q, p)[1]

math

r:= divide(q, p)[2]

math

q = s * p + r

math

Wir führen nun die gleichen Rechnungen noch einmal durch - diesmal wollen wir

aber explizit Polynome mit ganzzahligen Koeffizienten betrachten. Der Bereich

der ganzen Zahlen ist in MuPAD durch Dom::Integer gegeben.

 

R:= Dom::Integer

math

Wir können jetzt p und q als Polynome über R definieren und alle obigen

Rechnungen erneut durchführen:

 

p:= poly(x^2 - 5*x + 6, [x], R)

math

q:= poly(x^3 - 2*x^2 - x + 2, [x], R)

math

Summe:= p + q

math

Differenz:= p - q

math

Produkt:= p * q

math

divide(p, q)

math

divide(q, p)

math

Wo liegt nun der Unterschied zu den Polynomen p und q, die wir zuerst betrachtet

haben? Nun, wir haben eine Rechnung von oben bisher aus gutem Grund nicht

wiederholt: Die Multiplikation von p mit dem konstanten Polynom 1/3.

 

Da 1/3 keine ganze Zahl ist, können wir das konstante Polynom 1/3 über R erst gar

nicht definieren:

 

poly(1/3, [x], R)

math

MuPAD hält sich also strikt daran, dass alle Koeffizienten tatsächlich ganzzahlig

sein müssen. Dieses Konzept ist vor allem dann wichtig, wenn man sicherstellen

möchte, dass man bei bestimmten Rechnungen nicht aus einem fest vorgege-

benen Koeffizientenbereich "herausfällt".

 

Die Funktionen "gcd" und "gcdex" zur Berechnung des größten gemeinsamen

Teilers sowie die Funktion "lcm" zur Berechnung des kleinsten gemeinsamen

Vielfaches sind auch für Polynome verwendbar. Wir verzichten hier auf eine

genaue Beschreibung der Funktionen und verweisen auf die entsprechenden

Hilfeseiten.

_______________________________________________________________________________

 

Anmerkungen:

1.  Weitere Anregungen finden Sie in der Buchreihe Mathematik 1 x anders. In dieser Reihe

     wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gelöst. Die

     Bücher können unter www.schule.mupad.de/literatur kostenfrei kopiert werden.

 

_______________________________________________________________________________

 

 

 

MuPAD Education Group: Kostenlose Materialen für MuPAD Pro:
www.sciface.com/education, schule.mupad.de, studium.mupad.de, mupad.zum.de.