Praktikum I “Mathematik am Computer” Prof. M. Grote/ U. Nahum, M. Utzinger, D. Tröndle, U. Schweizer und C. Landolina HS 2015 Universität Basel Serie 11 MATLAB zur 49. KW (30.11. - 06.12.2015) Aufgabe 11.1: a) Addiere in einer for-Schleife alle ungeraden Zahlen zwischen 100 und 200. b) Wie kannst du die for-Schleife in Teil a) durch eine while-Schleife ersetzen? Schreibe dafür ein zweites Skript. Aufgabe 11.2: a) Schreibe die Produkte aus Aufgabe 10.3 a) - b) als Matlab-Funktionen, z.B. die MatrixMultiplikation function y = MatrixVectorMult(A,x), die die Matrix A und den Vektor x als Input-Variablen erhält und y = Ax ausgibt. Teste die Funktionen an den Beispielen aus Aufgabe 10.3. Bemerkung: Die Funktionen sollen so geschrieben sein, dass sie für allgemeine Matrizen bzw. Vektoren gültig sind. Dazu sind die Befehle length und size nützlich. b) Schreibe eine Matlab-Funktion y = Mycos(x), die einen Vektor x ∈ RN ×1 als Eingabe erhält und y ausrechnet mit yi = cos(xi ) für i = 1, . . . , N. Aufgabe 11.3: Das Heron-Verfahren oder babylonische Wurzelziehen ist ein Rechenverfahren zur Berechnung einer Näherung der Quadratwurzel x einer Zahl a. (Es ist ein Spezialfall des NewtonVerfahrens für die Nullstelle der quadratischen Funktion f (x) = x2 −a.) Wir führen folgende Iterationsvorschrift aus: xn + xan xn+1 = 2 Man sieht unmittelbar, dass diese Folge sich nicht mehr veränderte, wenn ein xi die Quadratwurzel von a wäre. Dass die Folge für geeignete Startwerte x0 gegen die Lösung konvergiert, wird in der Vorlesung Einführung in die Numerik bewiesen. Wir wenden das Verfahren ersteinmal einfach an. a) Gesucht ist die Quadratwurzel von 2. Wähle einen geeigneten Startwert x0 und führe die Iteration solange durch, bis der absolute Fehler zur korrekten Lösung (sqrt(2)) kleiner ist als 10−8 . Schreibe dazu eine Matlab-Funktion x_n = Heron(x0). 1 b) Verallgemeinere nun die Funktion Heron aus a) so, dass sie auch für die Quadratwurzel einer beliebigen Zahl a > 0 verwendet werden kann. Zusatzaufgabe: Verändere die Funktion Heron so, dass du die Iterationswerte als Ausgabe erhältst. Plotte die Iterationswerte für a = 3. Allgemeine Informationen zum Praktikum I befinden sich auf der Webseite http://tinyurl.com/nlz5p4h 2