• Keine Ergebnisse gefunden

(b) Implementieren Sie eine Funktion SlowPolyMult[f,g,x], die das Produkt f(x

N/A
N/A
Protected

Academic year: 2021

Aktie "(b) Implementieren Sie eine Funktion SlowPolyMult[f,g,x], die das Produkt f(x"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Prof.Dr. W.Koepf

Dipl.-Math. T.Sprenger Ubungen zur Vorlesung¨

Ubungsblatt 04¨ COMPUTERALGEBRA I 07.05.2009

Aufgabe 1: (DFT)

In der Vorlesung haben Sie gesehen, wie man die diskrete Fouriertransformation benutzen kann, um Polynome zu multiplizieren.

(a) Implementieren Sie eine FunktionFastPolyMult[f,g,x], die das Produkt zweier beliebiger Polynome f(x) und g(x) mit Hilfe der diskreten Fouriertransformation berechnet.

(b) Implementieren Sie eine Funktion SlowPolyMult[f,g,x], die das Produkt f(x) · g(x) verm¨oge des Cauchyproduktes berechnet (nicht indem die interne Multiplikation benutzt wird).

(c) F¨ur welche Grade (deg(f(x), x) = deg(g(x), x)) ist welche Implementierung schneller? Be- nutzen Sie numerische Koeffizienten!

(8 Punkte)

Aufgabe 2: (Modulare Inverse)

(a) Seien x , y ∈ Z. Bestimmen Sie den gr¨oßten gemeinsamen Teiler von x und y und die zu- geh¨origen B´ezoutkoeffizienten s, t∈Z von

ggT(x , y) =sx +ty iterativ mit dem euklidischen Algorithmus

zk =zk+1qk +zk+2 f¨ur k = 0,1,2, . . . (zk, qk ∈Z) mit z0=x , z1=y und den Formeln

sk+2=−sk+1qk +sk und tk+2=−tk+1qk +tk (sk, tk ∈Z) f¨ur zk =skz0+tkz1 mit passenden Anfangswerten.

(b) Benutzen Sie die Prozedur aus Teil (a) oder die ExtendedGCD-Funktion von Mathematica, um eine Funktion ModInv[a,r]zu implementieren, die das Inverse von a in Zr zur¨uckgibt, falls ein Inverses existiert und ansonsten 0.

(8 Punkte)

Abgabetermin:bis sp¨atestens Donnerstag, 21.05.2009, 08.15 Uhr anixtana@gmx.de.

Referenzen