Wissenschaftliches Rechnen (Bachelor)
Lerninhalte
Viele Fragestellungen in den Natur- und Ingenieurwissenschaften laufen am Ende auf die numerische Lösung mathematischer Probleme hinaus, wie z.B. das Lösen von Gleichungssystemen oder das Minimieren von Kostenfunktionen. In dieser Vorlesung wird das häufig benötigte numerische Handwerkszeug kompakt und anhand von anschaulichen und interessanten Problemen aus Computergraphik und der physikalischen Simulation eingeführt.
Der Schwerpunkt liegt dabei weniger auf der theoretischen Herleitung dieser Methoden, als vielmehr auf deren Verständnis, der praktischen Anwendung und der effizienten Implementierung. Dies beinhaltet typischerweise die folgenden drei Schritte:
- Gegeben ein praktisches "Ingenieursproblem", formuliere es als mathematisches Problem, z.B. als Gleichungssystem oder als Optimierungsproblem.
- Gegeben ein mathematisches Problem, analysiere es, um zu verstehen, welche numerischen Methoden eingesetzt werden können.
- Gegeben eine numerische Methode, mit welchen effizienten Algorithmen und Datenstrukturen kann sie implementiert werden, oder welche Open-Source-Software stellt eine gute Implementierung bereit.
Die behandelten numerischen Methoden enthalten das Lösen dicht und dünn besetzter linearer Gleichungssysteme, Least Squares Approximationen und partielle Differentialgleichungen. Für eine gute Implementation wird auf effizientes C++ und die Parallelisierung für Shared Memory Architekturen eingegangen.
Zum besseren Verständnis werden die meisten besprochenen Methoden und Algorithmen in den Programmierübungen implementiert. Die Übungen haben die Form von Mini-Projekten, die in jeweils 2-3 Wochen bearbeitet werden. Die Tutoren stehen in den Übungsgruppen mit (viel) Rat und (etwas) Tat zur Seite.
Corona-Maßnahmen
- Aufgrund der Corona-Pandemie wird die Vorlesung nicht in Präsenz stattfinden.
- Statt dessen wird es vorher aufgezeichnete Vorlesungsvideos geben, die zusammen mit den Vorlesungsfolien rechtzeitig bereitgestellt werden.
- Zum eigentlichen Vorlesungstermin wird es dann in der Folgewoche eine Online-Fragestunde geben, in der Fragen geklärt und Quizzes durchgespielt werden. Die Fragestunde wird per Zoom-Videokonferenz abhalten werden.
- Fragen zu Vorlesungsinhalten können entweder in der Fragestunde gestellt oder vorher auf unseren interaktiven HTML-Folien direkt und anonym gepostet werden.
- Auf die Vorlesungsvideos und -folien können Sie nur mit einem Passwort zugreifen. Bitte registrieren Sie sich im LSF für die Veranstaltung, damit wir Ihnen die Zugangsdaten über den LSF-Emailverteiler zuschicken können.
Voraussetzungen
- Grundkenntnisse in linearer Algebra und Analysis werden vorausgesetzt, zum Beispiel durch Mafi 1+2.
- Das Bearbeiten der praktischen Übungsaufgaben erfolgt in C++. Es wird am Anfang einen C++-Crash-Kurs geben.
Vorlesungsmaterialien
- Hier gibt es das Vorlesungsskript (Stand 12.04.2021)
- Hier gibt es die Vorlesungsfolien, Vorlesungsvideos und Übungsaufgaben
- Trefethen, Bau, Numerical Linear Algebra, SIAM, 1997.
- Demmel, Applied Numerical Linear Algebra, SIAM, 1997.
- Chapman, Jost, van der Pas, Using OpenMP: Portable Shared Memory Parallel Programming, MIT Press, 2007.
- Meyers, Effective C++, Addison-Wesley Professional, 2005.
Für die Online-Materialien sind Zugangsdaten erforderlich, die über den LSF-Verteiler verschickt werden/wurden oder beim Veranstalter erfragt werden können.
Nach Vorlesungsende gibt es die HTML-Folien inklusive der (stark komprimierten) Vorlesungsvideos auch in Form einer Electron-App, was Archivierung und Offline-Anwendung ermöglicht (ca. 700B):
Tentative Vorlesungsplanung
Woche | Vorlesung | Übung |
---|---|---|
15 | Einführung, Mathe-Wiederholung | |
16 | Kurven-Interpolation, LU-Faktorisierung | Intro & C++ Crash Course |
17 | Least-Squares Approximation, Cholesky-Faktorisierung | Interpolation + Approximation |
18 | Orthogonale Projektionen, QR-Faktorisierung | |
19 | Numerische Stabilität | |
20 | Heat Equation | Heat Equation |
21 | Laplace Equation, Gradientenabstieg | |
22 | Conjugate Gradients, dünn-besetzte Matrizen | Laplace Equation |
23 | Wave Equation, Cholesky-Faktorisierung von Bandmatrizen | |
24 | Sparse Cholesky-Faktorisierung | |
25 | Effizientes C++ | Wave Equation |
26 | Parallelrechnen mit OpenMP | |
27 | GPU-Computing mit OpenACC | Heat Equation, effizient und parallel |
28 | Zusammenfassung | |
29 | Fragestunde | Conclusion |