Übungsblatt 12

Werbung
M Sc. Stefan Brechtken
DM Brigitte Walther
Wintersemester 2014/15
TU Ilmenau
Institut für Mathematik
Grundlagen des wiss. Rechnens - Übungsserie 12
————————————————————————————————–
Aufgabe 60:
Man erstelle für folgende mathematische Funktionen jeweils eine rekursive MatLabFunktion:
a) n ! = n (n − 1) !,
0 ! = 1.
Rb
n−1
− tann−1 (a)
− In−2 ,
b) In = tann (x) dx = tan (b)n−1
a
I0 = b − a, I1 = ln cos(a)
.
cos(b) Aufgabe 61:
Für die n-te Potenz einer Zahl x gilt für n ≥ 3: xn = (x2 )n/2 , falls n gerade, bzw.
xn = x ∗ (x ∗ x)(n−1)/2 , falls n ungerade.
a) Schreiben Sie auf dieser Basis eine linear rekursive MatLab-Funktion potenz, die
die n-te Potenz einer Zahl x zurückgibt.
b) Führen Sie einen Zeitvergleich zur normalen“ Potenzierung mit Hilfe der MatLab”
Funktionen tic und tic durch.
Aufgabe 62:
Die rekursive Berechnung des Binomialkoeffizienten erfolgt nach der Formel
n
n−1
n−1
=
+
für n > m > 0,
m
m
m−1
n
n
n
= 1,
= 1,
= 0 für n < m.
0
n
m
a) Schreiben Sie eine rekursive MatLab-Funktion
function b=Binrek(n,m) zur Berechnung des Binomialkoeffizienten
n
m
.
b) Geben Sie zum Aufruf y= Binrek(5,2) alle Inkarnationen von Binrek in einem
Schema an und erläutern Sie die Abarbeitungsreihenfolge der Inkarnationen. Ist
Binrek linear-rekursiv?
c) Zählen Sie mit Hilfe einer globalen Variablen anz die Anzahl der Aufrufe der Funktion binrek. Messen Sie die Abarbeitungszeit mit tic und tic.
Aufgabe 63:
Die Tschebyscheff-Polynome 1. Art T (n, x) des Grades n lassen sich rekursiv definieren:
T (0, x) = 1, T (1, x) = x,
T (n, x) = 2xT (n − 1, x) − T (n − 2, x) für n ≥ 2
a) Gegeben ist die rekursive MatLab-Funktion für T (n, x):
function y = T(n, x)
if n==0, y=1;
elseif n==1, y=x;
else y=2*x*T(n-1,x)-T(n-2,x);
end
Ist die Rekursion linear oder nichtlinear?
Begründen Sie, dass die Rekursion für alle natürlichen Zahlen n terminiert.
b) Skizzieren Sie zum Aufruf T(4,x) den Rekursionsbaum mit den Inkarnationen
(Aufrufen) der Prozedur. Wie lautet das Ergebnis dieses Aufrufes?
c) Die Tschebyscheff-Polynome 1. Art T (n, x) vom Grad n lassen sich nicht-rekursiv
durch T (n, x) = cos(n arccos(x)) , n ≥ 0 definieren.
Schreiben Sie dazu eine MatLab-Funktion.
d) Notieren Sie MatLab-Kommandos zur grafischen Darstellung beider Funktionen
für n = 5 und x zwischen -1 und 1.
Aufgabe 64:
Die Fibonacci-Folge (un ), n = 1, 2, 3, . . . , ist eine unendliche Folge von Zahlen, den FibonacciZahlen, bei der sich die jeweils folgende Zahl durch Addition der beiden vorherigen Zahlen
ergibt: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, . . .. Benannt
ist sie nach Leonardo Fibonacci, der damit 1202 das Wachstum einer Kaninchenpopulation beschrieb. Diese Folge hat in der Natur allgemein große Bedeutung (vgl. bei Wikipedia
“Fibonacci-Folge“).
a) Geben Sie die übliche Rekursionsdarstellung für un an und notieren Sie diese als
rekursive MatLab-Funktion fibonacci1.
b) Entwickeln Sie eine serielle (also nicht-rekursive) Darstellung fibonacci2 durch
wiederholte Addition mittels einer Zyklusanweisung.
c) Finden Sie ein explizites Bildungsgesetz für die Glieder der Fibonacci-Folge (vgl.
Formel von Moivre-Binet) und beweisen Sie die Äquivalenz beider Darstellungen.
d) Geben Sie die Formel von Moivre-Binet ebenfalls als MatLab-Funktion fibonacci3
an.
e) Vergleichen Sie die Ergebnisse aller 3 Funktionen in einem MatLab-Scriptfile für
möglichst große Werte n. Was stellen Sie dabei fest?
Hinweis:
Die Zusatzaufgaben gehen nicht notwendig in die Aufgabenzählung ein und werden nur
bei freier Zeitkapazität in der Übung besprochen. Bei gründlicher Vorbereitung können
jedoch damit Zusatzpunkte (ggf. durch separate mündliche Vorstellung und Erläuterung)
erreicht werden.
Zusatzaufgabe 1:
Leiten Sie eine Rekursionsformel für das bestimmte Integral
Z1
I(n) =
tn et dt
0
für n = 0, 1, 2, 3, . . . her. Warum gilt lim I(n) = 0 ?
n→∞
Schreiben Sie dazu eine rekursive MATLAB-Funktion und berechnen Sie mit dieser Funktion Integralwerte I(n) für n = 0, 1, 2, 3, . . . und stellen Sie diese in einer Tabelle dar.
Zusatzaufgabe 2:
Schreiben Sie ein MATLAB-Funktionsfile, welches die adaptive Simpson-Regel als rekursive Funktion zur Berechnung des Integrals
Z b
f (x)dx
I=
a
mit einer vorgegebenen Genauigkeit zum Inhalt hat. Vermeiden Sie dabei unnötige Berechnungen von Funktionswerten! Berechnen Sie damit die Werte von:
Z 2p
Z 100
dx
8
I=
|x|dx
I=
−4 + x2
10
−2
−100
Zusatzaufgabe 3:
Erstellen Sie eine rekursive MATLAB-Funktion zur Berechnung der Seitenlänge eines
regelmäßigen n-Ecks, n ≥ 6, das in einen Kreis mit dem Radius r einbeschrieben ist,
gemäß der Formel:
q
p
S2n (r) = 2r2 − r 4r2 − (Sn (r))2 , n = 6, 12, 24, . . .
Sn (r) ist die Seitenlänge des n-Ecks, S6 (r) = r.
Schreiben Sie unter Nutzung dieser Funktion eine zweite MATLAB-Funktion zur Berechnung des Umfang eines n-Ecks Un (r) = nSn (r). Benutzen Sie diese zweite Funktion
zur Berechnung von π mit der Genauigkeit von 6 Stellen nach dem Komma.
Herunterladen