Computer-Physik
Sommer 2019
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 seit 2016 auch 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-Lab statt; der reguläre Übungsgruppenbetrieb beginnt in der zweiten Semesterwoche. Sie können sich ab sofort über KLIPS in einer der acht Übungsgruppen (Mi-Fr) anmelden.Bei Fragen zum Übungsbetrieb melden Sie sich bitte bei Jan Attig.
Übungsblätter
- Übungsblatt 1:
Einstiegsaufgaben (Hello world) [notebook],
Fibonacci-Zahlen [notebook,
solution],
Gumowski-Mira Attraktor [notebook, solution] - Übungsblatt 2:
Divide and conquer [notebook],
Newton Methode [notebook]
Bonus-Aufgabe: Newton Fraktale [notebook] - Übungsblatt 3:
Rauschmittel [notebook]
Bonus-Aufgabe: Zellulärer Automat [notebook] - Übungsblatt 4:
Simpson vs. Trapez [notebook],
Stau aus dem Nichts [notebook]
Bonus-Aufgabe: Wandelnde Dünen [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]
Tutorial: Animationen [notebook]
- Übungsblatt 7:
Allerlei aus dem Potentialtopf [notebook],
Relaxen im Plattenkondensator [notebook]
Bonus-Aufgabe: Das bewegte Feld [notebook]
- Übungsblatt 8:
Spannende Sachen [notebook],
Pendeln in der Quantenwelt [notebook]
Bonus-Aufgabe: Hofstadter Butterfly [notebook] - Übungsblatt 9:
Anharmonischer Oszillator [notebook],
Der heisse Draht 2.0 [notebook]
Bonus-Aufgabe: Tsunamis [notebook] - Übungsblatt 10: Einstein singulär zerlegt [notebook], Geist in der Matrix [notebook], Verschränkte Spins [notebook] Bonus-Aufgaben: Down the rabbit hole [notebook], Pendeln in der Quantenwelt 2.0 [notebook]
- Übungsblatt 11:
Viele Wege führen nach π [notebook],
Dendriten-Wachstum [notebook]
Bonus-Aufgabe: Landschaften [notebook] - Übungsblatt 12:
Integration auf Irrwegen [notebook],
Integration mit gezinkten Würfeln [notebook],
Integration auf der Kugel [notebook], Bonus-Aufgabe: Dynamik von Meinungen [notebook] - Übungsblatt 13:
Durchhänger [notebook],
Ising Modell [notebook]
Bonus-Aufgabe: Unterwegs mit Metropolis [notebook]
- Übungsblatt 14: Bonus-Aufgabe: Perkolation — eine löchrige Angelegenheit [notebook]
- Probeklausur: Kurzfragen, Angry Birds, Ordnung muss sein
Alle Übungsblätter sind auch über das github repository https://github.com/trebst/compphys-2019 verfügbar, welches sich auch 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: Schrödinger-Gleichung, Shooting und Numerov-Integration
- Vorlesung 00111: Partielle Differentialgleichungen: Maxwell-Gleichungen, Yee-Vischen Algorithmus
- Vorlesung 01000: Partielle Differentialgleichungen: Crank-Nicolson Methode, Relaxationsverfahren
- 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
Eine Einführung in Programmiertechniken wird 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, pdf]
- Tutorial 0x2: Schleifen, Verzweigungen, Funktionen [notebook, pdf]
- Tutorial 0x3: Funktionen (cont'd), Sortier-Algorithmen, timing und Komplexitätsanalyse [notebook, pdf]
- Tutorial 0x4: Verarbeitung experimenteller Daten [notebook, pdf]
- Tutorial 0x5: Gewöhnliche Differential-Gleichungen [notebook, pdf]
- Tutorial 0x6: Zeitaufgelöste Streuung [notebook, pdf]
- Tutorial 0x7: Lineare Algebra [notebook, pdf]
- Tutorial 0x8: Pseudo-Zufallszahlen [notebook]
- Tutorial 0x9: Ising Modell (part I) [notebook]
- Tutorial 0xA: Ising Modell (part II) [notebook]
- Tutorial 0xB: 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 den Webbrowser
- Think Julia, ein online Buch
- Intro to Julia, Video-Tutorial
- Getting started with 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: Mittwoch, 17. Juli 2019 | 13:00 - 16.00 | HS INachklausur: Montag, 30. September 2019 | 13:30 - 16:30 | HS III
Denken Sie an Ihre erneute und rechtzeitige KLIPS-Anmeldung.