UE Mathematische Software

Werbung
UE Mathematische Software
SS 2009
Blatt 3
15) Plotten von Stammfunktion und Ableitungen
Schreiben Sie eine Funktion intAblPlot[ f HxL,{x,a,b}], die die Funktion f , zusammen mit ihren ersten 3
Ableitungen sowie einer Stammfunktion im Intervall @a, bD grafisch darstellt. intAblPlot soll z.B. wie folgt
aufgerufen werden können:
intAblPlot @Sin@2 xD, 8x, 0, π<D
intAblPlot B
a , 8a, .1, 1<F
Gestalten Sie die Grafik so, dass die einzelnen Graphen optisch gut unterscheidbar dargestellt werden.
à
Lösung
16) Radical Inverse Function – Rekursiv
Die Radical Inverse Function fb HnL (siehe Beispiel 6) lässt sich folgendermaßen rekursiv definieren:
Wenn n = qb + r mit 0 § r < b ist (d.h. die ganzzahlige Division von n durch b hat Ergebnis q und Rest r), dann gilt
fb HnL :=
wobei fb H0L = 0 ist.
r + fbHqL
b
,
Schreiben Sie basierend auf dieser Formel eine rekursive Mathematica-Funktion.
Erstellen Sie eine Liste, die f3 HnL für n = 0, …, 80 enthält. Welche Eigenschaften der Funktion f3 Fallen Ihnen dabei
auf?
à
Lösung
17) Fibonacci Zahlen – Teil 1
Die Folge der Fibonacci-Zahlen ist definiert durch
F1 = F2 = 1,
Fn = Fn-1 + Fn-2 .
Schreiben Sie
† eine Funktion fiboA[n], die Fn rekursiv berechnet.
† eine Funktion fiboB[n], die Fn rekursiv berechnet und dabei einmal berechnete Ergebnisse zwischenspeichert
(siehe Vorlesung).
Vergleichen Sie die Laufzeit der beiden Algorithmen (mit Timing) für n = 5, 10, 15, 20, 25, 30. Vergessen Sie dabei
nicht, die von fiboB berechneten Ergebnisse zwischen den Testläufen immer wieder mit Clear zu löschen, um Ihre
à
Messung nicht zu verfälschen.
Lösung
18) Fibonacci Zahlen – Teil 2
Überlegen Sie sich, wie oft fiboA und fiboB (von Beispiel 17) bei der Berechnung von Fn aufgerufen werden, wenn
man annimmt, dass fiboB vorher noch keine Ergebnisse zwischenspeichern konnte. Zählen Sie bei Ihren
Überlegungen a) die Basisfälle fiboX[1] und fiboX[2] mit, b) nicht mit.
Das Ergebnis sollten vier exakte Formeln (nicht nur Abschätzungen) abhängig von n sein, möglicherweise unter
Benutzung von Fn .
à
Bem: Bei dieser Aufgabe ist nichts zu programmieren. Schreiben Sie Ihre ausgearbeitete Lösung einfach in eine
Textzelle eines Mathematica-Notebooks und geben Sie sie so ab.
Lösung
19) Ein Körper?
Definieren Sie die folgenden beiden Operatoren für 4-elementige Listen:
8a1 , a2 , a3 , a4 < ⊕ 8b1 , b2 , b3 , b4 < = 8a1 + b1 , a2 + b2 , a3 + b3 , a4 + b4 <
8a1 , a2 , a3 , a4 < ⊗ 8b1 , b2 , b3 , b4 < =
8a1 b1 − a2 b2 − a3 b3 − a4 b4 , a1 b2 + a2 b1 + a3 b4 − a4 b3 ,
a1 b3 + a3 b1 + a4 b2 − a2 b4 , a1 b4 + a4 b1 + a2 b3 − a3 b2 <.
Schreiben Sie eine Funktion, die eine Liste mit vier zufällige Elemente aus @-10, 10D Õ liefert. Testen Sie damit, ob
à
die Operationen ∆ und ≈ das Assoziativ-, Kommutativ- und Distributivgesetz erfüllen.
Lösung:
20) Binomialkoeffizienten
Die Binomialkoeffizienten lassen sich folgendermaßen rekursiv definieren:
n
n-1
n-1
:=
+
k
k
k-1
mit
n
n
=
= 1.
0
n
Schreiben Sie basierend auf diesen Formeln eine rekursive Mathematica-Funktion.
Vergleichen Sie die Laufzeit Ihrer Funktion für bestimmte Parameter mit der Laufzeit der eingebauten Funktion
Binomial. Können Sie sich erklären, warum die eingebaute Funktion viel schneller ist?
à
Lösung:
21) Funktionsaufrufe
Schreiben Sie die folgenden Funktionen in Mathematica. Seien Sie dabei möglichst präzise bei der Auswahl des
verwendeten Patterns. Die Funktionen sollen nur dann zur Anwendung kommen, wenn gültige Parameter angegeben
wurden.
a) Eine Funktion zur Berechnung der Fakultät einer nichtnegativen ganzen Zahl.
b) Eine Funktion zur Berechnung der Fläche einer Kreisscheibe mit Außenradius raussen und Innenradius rinnen . Wenn
der Innenradius nicht angegeben wird, soll rinnen = 0 angenommen werden.
c) Eine Funktion, die für zwei komplexe Zahlen mit ganzzahligen Real- und Imaginärteilen den Winkel zwischen den
beiden Punkten in der Gaußschen Zahlenebene berechnet.
d) Eine Funktion, die mittels Plot3D eine Grafik erzeugt. Das erste Argument soll die darzustellende Funktion sein,
abhängig von x und y. Das zweite Argument (eine positive reelle Zahl a) definiert die Grundmenge @-a, aD µ @-a, aD.
Optional sollen Optionen angegeben werden können, die dann an Plot3D durchgereicht werden.
e) Eine Funktion, die für ein gegebenes Monat (als Zahl zwischen 1 und 12) die Anzahl der Tage in diesem Monat
zurückgibt. Nehmen Sie an, es gäbe keine Schaltjahre.
Hinweis
Beachten Sie bei allen Funktionen, die Sie in Zukunft schreiben, dass diese nur für sinnvolle Parameter aufgerufen
werden.
22) Delete Pairs
Schreiben Sie eine Funktion deletePairs, die Paare aufeinanderfolgender gleicher Elemente aus einer Liste löscht.
Beispiel:
deletePairs @81, 2, 2, 3, 4, 5, 5, 4, 4, 1, 2, 1<D
81, 3, 4, 1, 2, 1<
Gehen Sie dabei ähnlich wie in der Vorlesung bei der Definition von killPairsOfX vor und verwenden Sie keine
à
noch nicht besprochenen Mathematica Funktionen.
Lösung
Herunterladen