Übungen zur Numerik, Sommersemester 2005 Aufgaben zum Programmieren mit Java für die Übungs- und Praktikastunden vom 26.4.05-6.5.05 (keine Abgabe) Aufgabe 1 Schreiben Sie ein Programm, welches a) b) c) d) reelle Zahlen x und y einliest und deren Summe und Produkt berechnet und ausgibt; reelle Zahlen x und y einliest und deren Summe berechnet, falls x < y ist bzw. deren Produkt, falls x ≥ y; drei reelle Zahlen x, y, z einliest und deren Maximum sowie deren Minimum berechnet; drei reelle Zahlen x, y, z einliest und deren Maximum berechnet, falls x, y, z in dieser Reihenfolge monoton fallend oder monoton wachsend sind bzw. deren Summe und Produkt, falls dies nicht der Fall ist. Aufgabe 2 Schreiben Sie ein Programm, welches reelle Zahlen p und q einliest und dann die reellen Lösungen der quadratischen Gleichung x2 + px + q = 0 berechnet und ausgibt. Aufgabe 3 Schreiben Sie ein Programm, welches a) eine ganze Zahl k und eine reelle Zahl x > 0 einliest und xk ausgibt; 10 P b) eine relle Zahl x > 0 einliest und die Summe xk berechnet und ausgibt; k=0 c) eine relle Zahl x > 0 und eine Zahl n ∈ IN einliest und dann die Summe d) eine relle Zahl x ∈]0, 1[ einliest und die Partialsummen n P n P xk berechnet und ausgibt; k=0 xk der geometrischen Reihe k=0 ∞ P xn so lange n=1 xn berechnet, bis deren relative Änderung n−1 P k kleiner als eine Zahl eps > 0 (als geeignete Konstante x k=1 vereinbaren) ist. Aufgabe 4 Schreiben Sie ein Programm, welches die Funktionswerte der Gaußschen Glockenkurve“, definiert ” 2 −x 1 durch f : IR → IR, f (x) := √ e 2 im Intervall [0, 3] an den Stellen xi = 3i n berechnet und 2π xi , f (xi ), i = 0, 1, ..., n ausgibt. Die Zahl n ∈ IN soll eingelesen werden. Aufgabe 5 Es werde ein Konto eröffnet mit K > 0 DM Anfangskapital, welches jährlich mit p > 0 % verzinst wird. Am Ende jeden Jahres werden x > 0 DM abgehoben. Gesucht ist die Anzahl N der Jahre, nach welcher das Kapital aufgebraucht worden ist. Schreiben Sie ein Programm, bei dem K, p, x eingelesen und N berechnet und ausgegeben wird. Man sehe auch die Möglichkeit vor, dass das Kapital bei zu geringem x nie aufgebraucht wird. Aufgabe 6 Schreiben Sie ein Programm, welches für einen gegebenen einzugebenden Vektor v ∈ IRn die Normen v u n n X uX max ||v||1 := |vi |, ||v||2 := t vi2 , ||v||∞ := |vi | i = 1, ..., n i=1 i=1 berechnet und ausgibt. Dabei sei n ≤ N := 10 (als Konstante vereinbaren). Testen Sie alle Programme auf einem Rechner mit geeigneten selbstgewählten Beispielen. Übungen zur Numerik, Sommersemester 2005 Aufgabe 3 a) Zeigen Sie, dass für die Folge yn := e−1 R1 ex xn dx, n ∈ IN0 die Rekursion gilt 0 (∗) und leiten Sie aus (∗) y0 := e−1 (e − 1), yn+1 = 1 − (n + 1)yn , n ∈ IN0 lim yn = 0 her. n→∞ b) Berechnen Sie mit Hilfe eines Programmes aus (∗) y0 , ..., y30 und interpretieren Sie das Ergebnis. c) Ergänzen Sie das Programm so, dass für n = 5 (ebenso für n = 10, 15, 20) yn := 0 gesetzt wird und dann aus (∗) rückwärts yn−1 , yn−2 , ..., y1 , y0 berechnet und ausgegeben wird. Wie erklärt sich der sehr gute Wert für y0 ? Aufgabe 4 Schreiben Sie ein Programm, welches zu einem einzulesenden Einkommen x (auf ganze Euro abgerundet) die zu entrichtende Einkommensteuer e(x) nach folgender Formel berechnet: 0 für x ≤ g0 x−g0 für g0 < x ≤ g1 (793.1y + 1600)y mit y := 10000 e(x) := x−g1 (265.78z + 2405)z + 1016 mit z := 10000 für g1 < x ≤ g2 0.45x − 8845 für x > g2 Dabei seien g0 := 7664 (Grundfreibetrag), g1 := 12739 und g2 := 52151 als Konstnaten zu vereinbaren. e(x) soll in Euro und Cent (letzteres abgerundet) ausgegeben werden. Testen Sie Ihr Programm mit x = 5000, x = 9999, x = 23456 und x = 151515. Aufgabe 8 Schreiben Sie ein Programm, bei welchem die Grade sowie Koeffizienten zweier Polynome p(x) = a0 + a1 x + a2 x2 + ... + an−1 xn−1 + an xn und q(x) = b0 + b1 x + b2 x2 + ... + bm−1 xm−1 + bm xm eingegeben und daraus die Koeffizienten des Produktes p(x)q(x) berechnet und ausgegeben werden. Rechnen Sie drei Testbeispiele mit den Polynomen aus Aufgabe 6a). Es seien n ≤MAX und m ≤MAX, mit der Konstanten MAX:= 10. Aufgabe 9 Schreiben Sie ein Programm, bei welchem die Grade sowie Koeffizienten zweier Polynome f (x) = a0 + a1 x + a2 x2 + ... + an−1 xn−1 + an xn und g(x) = b0 + b1 x + b2 x2 + ... + bm−1 xm−1 + bm xm (mit n ≥ m) eingegeben und daraus die Koeffizienten der Polynome q(x) und r(x) berechnet und ausgegeben f (x) r(x) werden, die bei der Polynomdivision = q(x) + entstehen. Rechnen Sie drei Testbeispiele mit g(x) g(x) den Polynomen aus Aufgabe 6a). Es seien n ≤MAX und m ≤MAX, mit der Konstanten MAX:= 10. Aufgabe 12 Sei f : [a, b] → IR eine zu minimierende Funktion. das Verfahren des goldenen Schnittes berechnet eine Näherung für Minimalstellen von f wie folgt: √ √ 1. Sei a0 := a, b0 := b, c0 := a + 12 (3 − 5)(b − a), d0 := a + 21 ( 5 − 1)(b − a); n := 0; 2. Ist f (cn ) < f (dn ), dann setze an+1 := an , bn+1 := dn , dn+1 := cn √ cn+1 := an+1 + 12 (3 − 5)(bn+1 − an+1 ) Ist f (cn ) ≥ f (dn ), dann setze an+1 := cn , bn+1 := bn , cn+1 := dn √ dn+1 := an+1 + 21 ( 5 − 1)(bn+1 − an+1 ) 3. Setze n := n + 1 und fahre bei 2 fort. Schreiben Sie ein Programm, welches näherungsweise das Minimum der Funktion 2 f : IR → IR, f (x) := x2 + e−x mit [0, 1] als Anfangsintervall berechnet. Abbruchbedingung: |bn − an | < 10−12 . Aufgabe 13 Bestimmen Sie mit Handrechnung oder mit Hilfe eines Programms Näherungen xn , n = 1, 2, 3, 4 −x für die kleinste positive Nullstelle von f : IR \ {(2k + 1) π 2 } → IR, f (x) := e − tan x mit a) dem Sekantenverfahren mit Vorzeichenabfrage und dem Anfangsintervall [0, 1], b) dem Sekantenverfahren mit vorletzter Näherung und x0 = 0, x1 = 1, c) dem Newton-Verfahren und x0 = 0. Geben Sie jeweils auch f (xn ) und in c) f 0 (xn ) an und rechnen Sie die Näherungen xn auf mindestens 6 Stellen genau aus. Aufgabe 18 Gesucht ist eine Lösung der Gleichung (∗) x + a ln x = 0.5 für vorgegebene Werte a > 0. Durch Auflösen nach x erhält man äquivalent zu (∗) x = φ(x) := 0.5 − a ln x Schreiben Sie ein Programm, welches die Lösung von (∗) mit Hilfe der Iteration xk+1 = φ(xk ), k ∈ IN0 zu berechnen versucht. Die Iteration soll abgebrochen werden, wenn k = kmax oder xk ≤ 0 ist oder die Änderung |δxk | := |xk+1 − xk | relativ zu |xk | eine vorgegebene Schranke ε > 0 unterschreitet, also wenn |δxk | < ε|xk | ist. kmax := 20 und ε := 10−6 sind als Konstanten zu vereinbaren. Rechnen Sie mit a) a = 0.1, x0 = 0.4, b) a = 0.5, x0 = 0.6 und c) a = 1, x0 = 0.7. Bitte lassen Sie alle Iterationsschritte ausgeben. Aufgabe 21 Schreiben Sie für eine einzulesende Matrix A ∈ IRn,n ein Programm zur Matrix-Vektor-Iteration x(k+1) := Ax(k) , ||Ax(k) ||2 k ∈ IN0 , x(0) ∈ IRn Starten Sie mit x(0) := e1 als Startvektor und iterieren Sie so lange, bis k =KMAX= 20 oder ||x(k+1) − x(k) ||2 ≤EPS= 10−3 ist. Vereinbaren Sie x als ein- und A als zweidimensionales Feld mit jeweils der Länge NMAX=5. KMAX, EPS und NMAX seien als Konstanten zu vereinbaren. Rechnen Sie als Testbeispiele mit folgenden Matrizen: 4 2 3 1 7 0 −2 2 10 0 −1 3 −1 5 −2 A= A= 0 A= 3 2 5 0 5 1 −2 −2 6 1 −1 1 6 Anmerkung: Unter geeigneten Voraussetzungen konvergiert (||Ax(k) ||2 ) gegen einen betragsgrößten Eigenwert von A und die (x(k) ) gegen einen zugehörigen Eigenvektor. Aufgabe 24 Gesucht sei eine Lösung x ∈ IR2 des nichtlinearen Gleichungssystems 2x1 − sin4x1 − x2 −x1 + 2x2 − sin x2 = = 1 1 als Fixpunkt der Abbildung 1 x1 φ :: IR → IR, φ( ) := x2 2 2 1 + sin4x1 + x2 1 + x1 + sin x2 ! 0 Schreiben Sie ein Programm, welches mit dem Startwert x := näherungsweise x ∈ IR2 mit 0 der Iteration x(k+1) := φ(x(k) , k ∈ IN0 berechnet. Rechnen Sie so lange, bis ||x(k+1) −x(k) ||2 ≤EPS= 10−3 ist, maximal aber KMAX= 20 Schritte. EPS und KMAX seien als Konstante zu vereinbaren. (0) Aufgabe 27 Schreiben Sie ein Programm, in welchem eine Zahl n ≤NMAX:= 10 (NMAX als Konstante vereinbaren) sowie je n+1 Stützstellen xi , i = 0, 1, ..., n und Stützwerte yi , i = 0, 1, ..., n auf eindimensionale Felder eingelesen werden und dann die Koeffizienten ci , i = 0, ..., n des Lagrangeschen n P Qn Interpolationspolynoms l(x) = ci j=0 (x − xj ) berechnet und ausgegeben werden. Testen Sie i=0 j6=i Ihr Programm mit folgenden Daten xi yi -1 -3 0 1 1 2 3 0 5 5 sowie xi yi -4 5 -3 3 -2 2 -1 -1 0 2 1 5 2 8 3 3 4 0 5 4