Aufgabenblatt 0
Diese Aufgaben sind als Hilfe beim Selbststudium der Programmiersprache C gedacht; sie sind nicht Bestandteil des Praktikums! Die Bearbeitung dieser Aufgaben ist nicht Schein-relevant, sie dient lediglich Ihrer Vorbereitung auf die für das Praktikum zu lösenden Aufgaben. Diese Aufgaben decken das absolute Minimum der für das Praktikum benötigten Grundlagen der Programmiersprache C ab. Für das Praktikum selbst werden Sie weitere C-Kenntnisse benötigen (z. B. Vektoren, Matrizen, Pointer).
Aufgabenblatt 1
Auf diesem Blatt sollen im wesentlichen einige elementare Techniken sowie Untersuchungen der Rechnerarithmetik und ihrer Wirkungen geübt werden. Insbesondere sollen Iteration, Laufzeit von Algorithmen und Rundungsfehlerproblematik geübt werden.
Die Programmierteile dieser Aufgaben sollten Sie problemlos vor Beginn des Semesters lösen können. Verwenden Sie die Aufgaben zum Selbsttest Ihrer Programmierkenntnisse in C. Zur Visualisierung der dritten Aufgabe wird Ihnen ein MATLAB-Programm script.m zur Verfügung gestellt.
Zu diesem Aufgabenblatt werden die Dateien stest1.c, dtest1.c sowie header.h benötigt.Bei der Bearbeitung dieser Aufgabe soll eine effiziente und speichersparende Implementierung des Gauß-Algorithmus erstellt werden. Zudem bietet diese Aufgabe eine gute Gelegenheit, etliche in der 'Einführung in die Numerik' kennengelernten theoretischen Eigenschaften des Verfahrens in der Praxis zu erleben.
In dieser Aufgabe soll das mehrdimensionale Newton-Verfahren programmiert werden. Dabei sollen die eigenen Techniken aus dem Gauß-Algorithmus wieder verwendet werden. Gleichzeitig soll aber auch das Einbinden externer Software (LAPACK) zur Lösung der linearen Gleichungen examplarisch geübt werden. Techniken wie das Benutzen von makefiles erleichtern dies erheblich. Zur Erleichterung der Aufgaben sind header3.h mit den spezifischen Prototypen und Definitionen für diese Aufgabe sowie names.h mit Definitionen zum Einbinden von BLAS/LAPACK beigefügt. Als Testprogramme sind bereits test3.c sowie test3_lapack.c vorhanden.
Zudem werden die Dateien test4_1.c (Testprogramm zu Aufgabe 1), test4_3.c (Testprogramm zu Aufgabe 3) und funktionen.c (Testfunktionen) benötigt. Die Dateien header4.h und names.h liefern Ihnen die Header-Dateien mit Definitonen und Prototypen, bzw. mit Makros.
In dieser Aufgabe soll es um verschiedene Formen der Quadratur gehen. Sie selbst sollen die Extrapolation zur summierten Trapezregel implementieren und mit der Gauß-Quadratur vergleichen. Zur Gauß-Quadratur sollen Sie einmal LAPACK zur Hilfe nehmen, um damit die Gewichte und Stützstellen zu berechnen, zum anderen können Sie ein fertiges Verfahren "von der Stange" testen. Diese Programme finden Sie unter www.netlib.org.
Auch hier empfiehlt sich der intensive Gebrauch von makefiles.
Bei dieser Aufgabe soll die Methode der kleinsten Fehlerquadrate an konkreten Beispielen umgesetzt werden. Konkret soll eine gegeben Funktion durch ein Polynom so approximiert werden, dass der Fehler im quadratischen Mittel auf dem Intervall minimiert wird. Im Gegensatz zu vorherigen Aufgaben steht jetzt die Behandlung des numerischen Problems im Mittelpunkt. Das Einbinden professioneller Software wurde in den vorherigen Aufgaben bereits geübt und kann hier angewendet werden. Alternativ kann man natürlich auch den klassisichen steinigen Weg des Selberprogrammierens gehen.
Für den Fall, dass Sie BLAS und LAPACK benutzen sind hier Headerdateien blas.h und lapack.h zur Verfügung gestellt, die Sie benutzen dürfen. Intern benutzen diese beiden Headerdateien noch namesblas.h, nameslapack.h und f2c.h, die Sie NICHT extra einbinden brauchen.
Für beide Varianten dürfen Sie sich der folgenden beiden MATLAB-Programme scriptqr.m und scriptne.m bedienen, vorausgesetzt Sie schreiben Ihre Werte in die Dateien QR.mat für die QR-Zerlegung bzw. NE.mat für die Normalengleichungen.
Bei dieser Aufgabe ist es das Ziel, eine Differenzialgleichung, die aus einem realen Modellierungsproblem stammt numerisch zu lösen. Das eigene Verfahren soll dabei lediglich das Eulerverfahren sein. Verglichen werden soll es mit einem professionellen numerischen Differenzialgleichungslöser. Die graphische Analyse der berechneten Daten mittels MATLAB soll dabei genutzt werden um die Vertrauenswürdigkeit der Verfahren zu testen.
Falls Sie MATLAB für diese Aufgabe nutzen, vervollständigen Sie das Programm script.m.
Falls Sie in C programmieren, so ist scriptc.m das Programm mit dem Sie die graphische Analyse durchführen sollen.
Beide MATLAB-Programme bedienen sich der Hilfsroutinen lastwagen.m, loesung.m und plotkabine.m.