Serie 11 - Universität Basel

Werbung
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
Herunterladen