WS 2011/2012 25. Man schreibe ein Maple

Werbung
4. Übungen zur Computermathematik (Maple)
WS 2011/2012
25. Man schreibe ein Maple-Programm, welches die Wurzel aus einer Zahl a ≥ 0 mithilfe der
Rekursion
x 0 = (1 + a ) / 2, x n +1 = ( x n + a / x n ) / 2 ∀n ∈ N
berechnet und die Matrix mit den Zeilenvektoren [i, xi] bis zur ersten Wiederholung der
Folgenglieder xi in der eingestellten Genauigkeit angibt. Hinweis: In Hinblick auf ein Abbruchkriterium beachte man, dass obige Folge stets monoton fällt.
26. Man schreibe ein Maple Programm (ohne Verwendung von Aufg. 17), das zu einer
vorgegebenen natürlichen Zahl n und zu einer vorgegebenen ganzen Basis b ≥ 2 (mit
Defaultwert b=2) die Liste der Ziffern der Zahlendarstellung in der Basis b, d.h., die sog.
b-adische Darstellung von n, liefert. (Für die „Ziffern“ 10,11,..,36 sollten dabei ersatzweise
die Buchstaben A,B,…,Z verwendet werden, d.h., n = 986 würde dann etwa für b = 16 den
Output [3,D,A] ergeben.)
27. Man schreibe eine Maple Funktion cycles(p), welche für eine vorgegebene Permutation p
der Menge {1,2,..,n} eine Darstellung als Produkt elementfremder Zyklen angibt, also z.B. für
p=[3,2,5,1,4,8,6,7] den Output [[1,3,5,4],[2],[6,8,7]] liefert. (Man beachte, dass n nicht mit
angegeben werden muss, da es sich ja implizit aus p ergibt.)
28. Man schreibe zwei Maple-Programme, und zwar je eines für die Berechnung von sin x
bzw. cos x, welche diese Werte für beliebiges reelles x mithilfe der Taylorreihen dieser
Funktionen berechnet auf die eingestellte Genauigkeit berechnet. Hinweis: Für eine bessere
Konvergenz der Reihen führe man zunächst unter Verwendung geeigneter trigonometrischer
Umformungen programmintern eine Reduktion des Bereichs für x auf das Intervall [0, π / 4]
durch, wobei sich die Routinen für sin x und cos x dann u.U. auch wechselseitig aufrufen.
29. Im Folgenden nehmen wir an, dass 30 Jäger ohne vorherige Absprache und gleichzeitig
auf jeweils eine von 10 Enten schiessen, wobei jeder Schuss ein Treffer sei. Wie groß ist dann
die Wahrscheinlichkeit, dass alle 10 Enten getroffen werden? Man berechne diese
•
•
zuerst näherungsweise durch eine n-mal für ein genügend großes n durchgeführte
Simulation, wobei für eine zufällige Abbildung f:{1,2,..,30} → {1,2,.,,.10} jeweils
überprüft wird, ob sie surjektiv ist und die relative Häufigkeit für dieses Ereignis
berechnet wird
unter Benützung der Tatsache aus der Kombinatorik, dass stirling2(30,10)*10! (siehe
dazu das Package combinat) gerade die Anzahl der verschiedenen surjektiven
Abbildungen vom obigen Typ angibt.
30. Sei (H,*,e) eine Halbgruppe mit einer (hier multiplikativ) geschriebenen Operation * und
dem Einselement e. Mit Hilfe von folgenden Square-and-Multiply Algorithmus kann dann für
ein beliebiges x ∈ H und ein k ≥ 0 die Potenz xk bestimmt werden:
1. Setze y:=e.
2. Ist k=0 so return y und STOP
3. Ist k ungerade, so setze y:=y*x.
4. Setze x:=x*x
5. Setze k:= k / 2 und mach weiter bei 2.
Man implementiere den Algorithmus in Maple und berechne damit speziell die 123-te Potenz
von 347 in der Halbgruppe (N,+,0) (=Halbgruppe der natürlichen Zahlen mit gew. Addition).
31. Man schreibe jeweils ein Programm zur Berechnung der Fibonacci-Zahlen Fn , welche
rekursiv durch F0 = 0, F1 = 1, Fn = Fn −1 + Fn − 2 (n>1) gegeben sind und zwar
a) durch direkte Verwendung dieser Rekursion (mit und ohne der Programmoption
remember)
n
1 1+ 5 

 auf die nächste ganze Zahl,
b) durch Rundung von
5  2 
c) durch Verwendung der Beziehung
1 1 

(Fn , Fn −1 ) = (Fn −1 , Fn − 2 )
1
0


und vergleiche die Vor- und Nachteile dieser Berechnungsmöglichkeiten.
32. Man schreibe in Maple ein Programm, zur Auffindung aller Lösungen des sog
n-Damenproblems (n Damen müssen auf einem (n x n)-Schachbrett so aufgestellt werden,
dass sich keine 2 gegenseitig bedrohen) für ein vorgegebenes n ≥ 4 und zwar iterativ auf
folgende Weise:
1. Eine Sequenz s wird mit der (n x n)- Nullmatrix initialisiert.
2. Für das Element s[1] werden nun alle „Söhne“ erzeugt (eventuell auch keine!) und diese
hinten in die Sequenz eingereiht, wonach s[1] dann aus s entfernt wird. Die Söhne einer
Matrix M, deren Zeilensummen noch nicht alle ∞ sind, erhält man allgemein so, indem man
in der ersten Zeile von M mit Zeilensumme < ∞ (falls vorhanden, s.u.) einen Nulleintrag
sucht (ebenfalls falls vorhanden), diesen durch ∞ ersetzt, was dem Setzen einer Dame
entspricht, und in allen Folgezeilen von ihr „bedrohte“ Felder durch den Eintrag von 1
markiert.
3. Hat s[1] keine Zeilen mit Zeilensumme < ∞ mehr, so ist man fertig, und die Sequenz s
enthält dann alle Lösungen des n-Damenproblems, sonst muss bei 2. weitergemacht werden.
Zugehörige Unterlagen
Herunterladen