TU Ilmenau Inst. für Mathematik, Num. Mathematik und IV PD Dr. W. Vogt, H. Seeber Sommersemester 2011 16. Übungsserie Grundlagen des wiss. Rechnens Aufgabe 1 Schreiben Sie eine C++ Funktion, die das bestimmte Integral Zb f (x) dx I= a mittels der Trapezregel µ ¶ 1 1 I = h f (a) + f (a + h) + f (a + 2h) + . . . + f (a + (n − 1)h) + f (b) 2 2 b−a h = n für gegebene f , a und b näherungsweise berechnet. Der optionale Parameter n sei standardmäßig 20. Berechnen Sie mittels dieser C++ Funktion die Integralwerte für folgende Funktionen: f1 (x) = sin x , x a = 1, b = 2 f2 (x) = x − x7 , a = 0, b = 1, f3 (x) = −x2 √2 e π n = 50 a = 0, b = 2(0.5)3, n = 30, 40, 50 Aufgabe 2 Die Fibonacci-Folge (un ), n = 0, 1, 2, 3, . . . , ist eine unendliche Folge von Zahlen, den Fibonacci-Zahlen, bei der sich die jeweils folgende Zahl durch Addition der beiden vorherigen Zahlen ergibt: 0, 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 C++ Funktion fibonacci1. b) Entwickeln Sie eine serielle (also nicht-rekursive) Darstellung durch wiederholte Addition mittels einer Zyklusanweisung als C++ Funktion fibonacci2. c) Finden sie ein explizites Bildungsgesetz für die Glieder der Fibonacci-Folge (vgl. Formel von Moivre-Binet) und geben Sie die Formel von Moivre-Binet als C++ Funktion fibonacci3 an. d) Vergleichen Sie die Ergebnisse aller 3 Funktionen in einem C++ Programm für möglichst große Werte n. Was stellen Sie dabei bzgl der Rechenzeit fest? Aufgabe 3 Leiten Sie eine Rekursionsformel für das bestimmte Integral Z1 tn et dt I(n) = 0 für n = 0, 1, 2, 3, . . . her. Warum gilt limn→∞ I(n) = 0 ? Schreiben Sie dazu eine rekursive C++ 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: Begründen Sie das Verhalten der berechneten Werte für großes n. Aufgabe 4 Man erstelle für folgende mathematische Funktionen jeweils eine rekursive C++ Funktion: a) n ! = n (n − 1) !, 0 ! = 1. Rb n−1 − tann−1 (a) b) In = tann (x) dx = tan (b)n−1 − In−2 , a ¯ ¯ ¯ ¯ I0 = b − a, I1 = ln ¯ cos(a) . cos(b) ¯ Aufgabe 5 Für die n-te Potenz einer Zahl x gilt für n ≥ 3: xn = (x2 )n/2 bzw. xn = x ∗ (x ∗ x)(n−1)/2 . Schreiben Sie auf dieser Basis eine linear rekursive C++ Funktion potenz, die die n-te Potenz einer reellen Zahl x berechnet.