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.