Computer-Physik
Sommer 2016
Di, 14:00-15:30 | HS III
Überblick
Die Vorlesung behandelt numerische Methoden zur Lösung physikalischer Probleme und bietet mit der Ausweitung auf 4 Wochenstunden erstmals eine Einführung in elementare Programmiertechniken. Dabei werden sowohl grundlegende numerische Verfahren eingeführt als auch auf Fragestellungen der Mechanik, Elektrodynamik, Quantenmechanik und statistischen Physik angewendet.Übungen
Die Übungen finden im CIP-Pool statt; der reguläre Übungsgruppenbetrieb beginnt in der ersten Semesterwoche. Die Einteilung der Übungsgruppen finden Sie in dieser Übersicht.Übungsblätter
- Übungsblatt 0: Hello world, Dezimalzahlen, Fibonacci-Zahlen [notebook]
- Übungsblatt 1: Gumowski-Mira Attraktor [notebook], Brüchige Bögen [notebook]
- Übungsblatt 2:
Divide and conquer [notebook],
Newton Methode [notebook],
Newton Fraktale [notebook]
Bonus-Aufgabe: Zellulärer Automat [notebook] - Übungsblatt 3:
Rauschmittel [notebook],
Simpson vs. Trapez [notebook]
Bonus-Aufgabe: Fraktale [notebook] - Übungsblatt 4:
Cache-Effekte [notebook],
Stau aus dem Nichts [notebook]
Bonus-Aufgabe: Newton Cradle [notebook] - Übungsblatt 5:
Die Zukunft richtig ausgependelt [notebook],
Monde auf der Überholspur [notebook]
Bonus-Aufgabe: Magnetpendel [notebook] - Übungsblatt 6:
Lorenz Attraktoren [notebook],
Heisser Draht [notebook]
Bonus-Aufgabe: Heisse Neutronen [notebook] - Übungsblatt 7:
Relaxen im Plattenkondensator [notebook],
Spannende Sachen [notebook]
Bonus-Aufgabe: Das bewegte Feld [notebook]
Tutorial: Animationen als mp4-Video speichern [notebook]
- Übungsblatt 8:
Allerlei aus dem Potentialtopf [notebook],
Pendeln in der Quantenwelt [notebook]
Bonus-Aufgabe: Hofstadter Butterfly [notebook] - Übungsblatt 9:
Anharmonischer Oszillator [notebook],
Der heisse Draht 2.0 [notebook]
- Übungsblatt 10:
Ordnung muss sein [notebook],
Einstein singulär zerlegt [notebook]
- Übungsblatt 11:
Geist in der Matrix [notebook],
Viele Wege führen nach π [notebook]
Bonus-Aufgabe: Dendriten-Wachstum [notebook] - Übungsblatt 12:
Integration mit gezinkten Würfeln [notebook],
Integration auf Irrwegen [notebook]
Bonus-Aufgabe: Was wächst denn da? [notebook] - Übungsblatt 13:
Durchhänger [notebook],
Unterwegs mit Metropolis [notebook]
- Übungsblatt 14: Bonus-Aufgabe: Perkolation — eine löchrige Angelegenheit [notebook]
Alle Übungsblätter sind auch über das github repository https://github.com/trebst/compphys-2016 verfügbar, welches sich direkt mit JuliaBox synchronisieren lässt.
Syllabus / Vorlesungen
- Vorlesung 00001: Motivation/Einführung Computer-Physik, Überblick Computer Hardware + Software
- Vorlesung 00010: Iterative Verfahren, Nullstellensuche, Newton-Verfahren
- Vorlesung 00011: Numerisches Differenzieren und Integrieren
- Vorlesung 00100: Gewöhnliche Differentialgleichungen
- Vorlesung 00101: Partielle Differentialgleichungen: Anfangs- und Randwertprobleme, Finite Differenzen
- Vorlesung 00110: Partielle Differentialgleichungen: Crank-Nicolson Methode, Relaxationsverfahren
- Vorlesung 00111: Partielle Differentialgleichungen: Maxwell-Gleichungen, Yee-Vischen Algorithmus
- Vorlesung 01000: Partielle Differentialgleichungen: Schrödinger-Gleichung, Shooting und Numerov-Integration
- Vorlesung 01001: Lineare Algebra: Lineare Gleichungssysteme, Gauss-Elimination
- Vorlesung 01010: Lineare Algebra: Eigenwertprobleme, Lanczos-Verfahren
- Vorlesung 01011: Lineare Algebra: Singulärwert-Zerlegung
- Vorlesung 01100: Zufallszahlen
- Vorlesung 01101: Zufallszahlenverteilungen, Monte Carlo Integration
- Vorlesung 01110: Markov-Ketten, Metropolis-Algorithmus
- Vorlesung 01111: Boltzmann-Verteilung, Ising Modell
- Vorlesung 10000: Maschinelles Lernen
Programmiertechniken
Erstmals im Sommersemester 2016 wird eine Einführung in Programmiertechniken integraler Bestandteil der Vorlesung sein. Wir werden diese am Beispiel der Programmiersprache Julia lehren. Julia ist eine relativ junge Programmiersprache, die in vielen Aspekten artverwandt mit Python ist, zugleich aber eine ungleich höhere numerische Effizienz mit sich bringt.Tutorials
- Tutorial 0x1: Hello world, Variablen, Schleifen [notebook]
- Tutorial 0x2: Schleifen, Verzweigungen, Funktionen [notebook]
- Tutorial 0x3: Typen, Sortier-Algorithmen, timing und Komplexitätsanalyse [notebook]
- Tutorial 0x4: Verarbeitung experimenteller Daten [notebook]
- Tutorial 0x6: Gewöhnliche Differential-Gleichungen [notebook]
- Tutorial 0x7: Zeitaufgelöste Streuung (an Potentialbarrieren) [notebook]
- Tutorial 0x8: Lineare Algebra [notebook]
- Tutorial 0x9: Symbolisches Rechnen [notebook]
- Tutorial 0xA: Pseudo-Zufallszahlen [notebook]
- Tutorial 0xB: Ising Modell [notebook]
- Tutorial 0xC: Maschinelles Lernen
[notebook I, notebook II]
[MNIST data sets: mnist_train.csv, mnist_test.csv]
Julia-Resourcen
- JuliaLang.org, die offizielle Julia-Webseite
- JuliaBox, eine Live Julia Installation für en Webbrowser
- Learning Julia, ein sehr gutes Julia-Tutorial
- Julia books, tutorials, and videos, eine Liste von weitergehenden Julia-Resourcen
Literatur
- S. Gerlach, Computerphysik (Springer Spektrum)
Uni-Bibliothek, Studierendenbibliothek Physik - T. Pang, An Introduction to Computational Physics (Cambridge University Press)
Uni-Bibliothek, Studierendenbibliothek Physik - J.M. Thijssen, Computational Physics (Cambridge University Press)
Uni-Bibliothek, Studierendenbibliothek Physik - W. Krauth, Statistical Mechanics: Algorithms and Computations (Oxford University Press)
Uni-Bibliothek, Studierendenbibliothek Physik - M. Newmann, Computational Physics with Python
Weiterführende Literatur
- Lloyd N. Trefethen and David Bau III, Numerical linear algebra (SIAM)
- Michael Nielsen, Neural Networks and Deep Learning
Programiersprache Julia
- Ivo Balbaert, Getting Started with Julia Programming (Packt Publishing)
Uni-Bibliothek, Studierendenbibliothek Physik - Malcolm Sherrington, Mastering Julia (Packt Publishing)
Uni-Bibliothek, Studierendenbibliothek Physik
Mailing-Liste
Wir haben für alle TeilnehmerInnen der Vorlesung eine Mailing-Liste eingerichtet, über welche wir weiterführende Informationen zu Vorlesung, Übungen und Übungsbetrieb verschicken werden:Wir bitten alle Studierenden, sich auf dieser Mailing-Liste einzutragen.
Klausurtermine
Klausur: Dienstag, 9. August 2016 | 13:30 - 16.30 | HS INachklausur: Donnerstag, 6. Oktober 2016 | 10:00 - 13:00 | HS II