Difference between revisions of "Physik auf dem Computer SS 2016"

From ICPWiki
Jump to navigation Jump to search
(Klausur korrigiert)
 
(59 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
== Hinweis ==
 
== Hinweis ==
 
+
{{Infobox|
<!--Wer im WS 2014/15 die Prüfung Physik auf dem Computer bei mir ([[Axel Arnold]]) ablegen will, melde sich bitte rechtzeitig. Ich verlasse die Universität Stuttgart zum 28. Februar, daher müssen die Prüfungen davor stattfinden. -->
+
'''Die Klausuren wurden korrigiert und die Noten sind im [https://lsf.uni-stuttgart.de LSF]/[https://campus.uni-stuttgart.de CAMPUS] eingetragen. Die Klausureinsicht ist am 13. September um 10:00 Uhr möglich.'''}}
 +
<!--* Das Skript der Vorlesung findet sich {{Download|SS_2014_PadC.pdf|hier}}. Es mag sein, dass im Verlauf des Semesters noch kleinere Änderungen am Skript passieren.
 +
* Die eingebetteten Beispielcodes sollten sich direkt aus dem PDF kopieren lassen.
 +
* Die LaTeX-Quellen des Skripts finden sich auch auf [https://arnolda@github.com/arnolda/padc.git GitHub]. Ich wäre sehr dankbar, Patches für Tipp- und andere Fehler zu bekommen! Ansonsten ist das Skript CC-by-sa-lizensiert. -->
  
 
== Übersicht ==
 
== Übersicht ==
Line 18: Line 21:
 
:jeden '''zweiten''' Freitag 8:00-9:30, Pfaffenwaldring 57, HS 57.05 (14-tägig).  
 
:jeden '''zweiten''' Freitag 8:00-9:30, Pfaffenwaldring 57, HS 57.05 (14-tägig).  
 
: erster Freitagstermin: 08. April 2016
 
: erster Freitagstermin: 08. April 2016
Freitagstermine: 22.04., 06.05., 03.06., 17.06., 01.07. und 15.07.  
+
:'''Freitagstermine: 22.04., 29.04. (ausserplanmässig), <s style="color:red">06.05.</s> (fällt aus!), 13.05. (ausserplanmässig), 03.06., 10.06. (Nachholtermin vom 11.05.), 17.06., 01.07. und <s style="color:red">15.07.</s> (fällt aus!)'''
 
:'''Übung'''
 
:'''Übung'''
 
:jeden Mittwoch 15:45-17:15, Allmandring 3, ICP CIP-Pool
 
:jeden Mittwoch 15:45-17:15, Allmandring 3, ICP CIP-Pool
Line 28: Line 31:
  
 
* {{Download|Vorlesung_Python.pdf|Einführungsvorlesung: Python}}
 
* {{Download|Vorlesung_Python.pdf|Einführungsvorlesung: Python}}
* {{Download|Vorlesung1_PadC.pdf|Motivation und Fadenpendel (Kapitel 0)}}
+
* {{Download|Vorlesung1_PadC.pdf|13.04.2016: Motivation und Fadenpendel (Kapitel 0)}}
 +
** {{Download|pendel.py|Python-Skript zur Simulation eines Fadenpendels|py}}
 +
* {{Download|Vorlesung2_PadC.pdf|20.04.2016: Lineare Algebra: Dreiecksmatrizen und Gauss-Elimination (Kapitel 1)}}
 +
* {{Download|Vorlesung3_PadC.pdf|22.04.2016: Lineare Algebra: Matrixinversion und LU-Zerlegung (Kapitel 1)}}
 +
* {{Download|Vorlesung4_PadC.pdf|29.04.2016: Lineare Algebra und Darstellung von Funktionen: Bandmatrizen, Taylor-Reihen und Polynominterpolation (Ende Kapitel 1 und Anfang Kapitel 2)}}
 +
** {{Download|horner.py|Python-Skript zum Horner-Schema|py}}
 +
* {{Download|Vorlesung5_PadC.pdf|04.05.2016: Darstellung von Funktionen: Lagrangepolynome, Neville-Aitken-Schema, Newton-Darstellung und Chebyshev-Stützstellen (Kapitel 2)}}
 +
** {{Download|horner_newton.py|Python-Skript zur Darstellung von Newton-Polynomen im Horner-Schema|py}}
 +
* {{Download|Vorlesung6_PadC.pdf|13.05.2016: Darstellung von Funktionen: Splines und Fourierreihen (Kapitel 2)}}
 +
* {{Download|Vorlesung7_PadC.pdf|25.05.2016: Diskrete und schnelle Fouriertransformation (Kapitel 2)}}
 +
* {{Download|Vorlesung8_PadC.pdf|01.06.2016: Signalverarbeitung und Datenanalyse (Fouriertransformation) (Kapitel 3)}}
 +
* {{Download|Vorlesung9_PadC.pdf|03.06.2016: Signalverarbeitung und Datenanalyse: Abtasttheorem, Faltung, Kreuz- und Autokorrelationsfunktionen (Kapitel 3)}}
 +
** {{Download|kreuzkorrelation.py|Beispiel-Python-Skript zur Berechnung der Kreuzkorrelation|py}}
 +
* {{Download|Vorlesung10_PadC.pdf|08.06.2016: Pearson-Korrelation, Messfehlerabschaetzung und Binning-Analyse (Kapitel 3)}}
 +
** {{Download|mean_variance.py|Beispiel-Python-Skript zur Berechnung des Mittelwerts und der Varianz|py}}
 +
* {{Download|Vorlesung11_PadC.pdf|10.06.2016: Numerische Ableitungen (Kapitel 4)}}
 +
** {{Download|bessel.py|Python-Skript zur Besselschen Differentialgleichung|py}}
 +
* {{Download|Vorlesung12_PadC.pdf|15.06.2016: Numerische Integration (Kapitel 4)}}
 +
* {{Download|Vorlesung13_PadC.pdf|17.06.2016: Numerische Integration: Gauss-Quadratur und Monte-Carlo-Integration (Kapitel 4)}}
 +
** {{Download|romberg.py|Python-Skript zur Romberg-Integration|py}}
 +
* {{Download|Vorlesung14_PadC.pdf|22.06.2016: Nichtlineare Gleichungssysteme: Sukzessive Substitution und Newton-Verfahren (Kapitel 5)}}
 +
*{{Download|physik_Computer_SS16_29062016.pdf|29.06.2016: Lineare Algebra II (Kapitel 6)}}
 +
<!--* {{Download|.pdf|01.07.2016: Differentialgleichungen (Kapitel 7)}}
 +
* {{Download|.pdf|06.07.2016: Zufallzahlen (Kapitel 8)}} -->
 
<!--* Das Skript der Vorlesung findet sich {{Download|SS_2014_PadC.pdf|hier}}. Es mag sein, dass im Verlauf des Semesters noch kleinere Änderungen am Skript passieren.
 
<!--* Das Skript der Vorlesung findet sich {{Download|SS_2014_PadC.pdf|hier}}. Es mag sein, dass im Verlauf des Semesters noch kleinere Änderungen am Skript passieren.
 
* Die eingebetteten Beispielcodes sollten sich direkt aus dem PDF kopieren lassen.  
 
* Die eingebetteten Beispielcodes sollten sich direkt aus dem PDF kopieren lassen.  
Line 34: Line 60:
  
 
== Klausur ==
 
== Klausur ==
 
+
'''Der Klausurtermin ist Montag, der 11. Juli 2016.'''
 
* Zur Klausur sollten folgenden Dinge mitgebracht werden:
 
* Zur Klausur sollten folgenden Dinge mitgebracht werden:
 
** Stifte  
 
** Stifte  
Line 58: Line 84:
 
=== Übungsblätter ===
 
=== Übungsblätter ===
  
Die Übungsblätter sind in Zweiergruppen zu bearbeiten und gemeinsam per E-Mail an den Tutor abzugeben. Abgabefrist ist jeweils Dienstag, 10:00 Uhr.
+
Die Übungsblätter sind in Zweiergruppen zu bearbeiten und gemeinsam per E-Mail an den Tutor abzugeben. Abgabefrist ist i.d.R. Dienstag, 10:00 Uhr.
 +
 
 +
==== Übungsblatt 11: Iterative Gleichungslöser und Differentialgleichungen ====
 +
* Abgabetermin: Dienstag, 5. Juli 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws11.pdf|Worksheet 11}}
 +
* {{Download|SS_2014_PC_ws9.py|ws11.py|py}}
 +
* {{ipynb|SS_2014_PC_ws9.ipynb|ws11.ipynb}}
 +
 
 +
==== Übungsblatt 10: Nullstellensuche ====
 +
* Abgabetermin: Dienstag, 28. Juni 2016, 10:00 Uhr
 +
* '''Abgabe an [[Julian Michalowsky]]'''
 +
* {{Download|SS_2016_PC_ws10.pdf|Worksheet 10}}
 +
 
 +
==== Übungsblatt 9: Numerisches Differenzieren und Integrieren ====
 +
* Abgabetermin: Dienstag, 21. Juni 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws9.pdf|Worksheet 9}}
 +
 
 +
==== Übungsblatt 8: Messfehlerabschätzung ====
 +
* Abgabetermin: Dienstag, 14. Juni 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws8.pdf|Worksheet 8}}
 +
* {{Download|SS_2014_PC_ws7_ws7.py|ws8.py|py}}
 +
* {{Download|SS_2014_PC_ws7_ws7.pkl.gz|ws8.pkl.gz}}
 +
* {{ipynb|SS_2014_PC_ws7.ipynb|ws8.ipynb}}
 +
 
 +
==== Übungsblatt 7: Signalverarbeitung und Datenanalyse ====
 +
* Abgabetermin: Dienstag, 7. Juni 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws7.pdf|Worksheet 7}}
 +
* {{Download|SS_2014_PC_ws6_ws6.py|ws7.py|py}}
 +
* {{Download|SS_2014_PC_ws6_ws6.pkl.gz|ws7.pkl.gz}}
 +
* {{ipynb|SS_2014_PC_ws6.ipynb|ws7.ipynb}}
 +
 
 +
==== Übungsblatt 6: Diskrete Fouriertransformation ====
 +
* Abgabetermin: Dienstag, 31. Mai 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws6.pdf|Worksheet 6}}
 +
* {{Download|SS_2014_PC_ws5_ws5.py|ws6.py|py}}
 +
* {{ipynb|SS_2014_PC_ws5.ipynb|ws6.ipynb}}
 +
 
 +
==== Übungsblatt 5: Spline-Interpolation und Fourierreihen ====
 +
* Abgabetermin: Dienstag, 24. Mai 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws5.pdf|Worksheet 5}}
 +
* {{Download|SS_2016_PC_ws5_ws5.py|ws5.py|py}}
 +
* {{ipynb|SS_2014_PC_ws4.ipynb|ws5.ipynb}}
 +
 
 +
==== Übungsblatt 4: Lagrange-Interpolation ====
 +
* Abgabetermin: Dienstag, 10. Mai 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws4.pdf|Worksheet 4}}
 +
* {{Download|SS_2016_PC_ws4_ws4.py|ws4.py|py}}
 +
* {{ipynb|SS_2014_PC_ws4.ipynb|ws4.ipynb}}
 +
 
 +
==== Übungsblatt 3: LU-Zerlegung und Taylorpolynome ====
 +
* Abgabetermin: Dienstag, 3. Mai 2016, 23:59 Uhr
 +
* {{Download|SS_2016_PC_ws3.pdf|Worksheet 3}}
 +
* {{Download|SS_2014_PC_ws3_ws3.py|ws3.py|py}}
 +
* {{ipynb|SS_2014_PC_ws3.ipynb|ws3.ipynb}}
 +
* {{Download|SS_2014_ws3_poisson2d.py|poisson2d.py|py}}
 +
 
 +
==== Übungsblatt 2: Gaußsches Eliminationsverfahren ====
 +
* Abgabetermin: Dienstag, 26. April 2016, 10:00 Uhr
 +
* {{Download|SS_2016_PC_ws2.pdf|Worksheet 2}}
 +
* {{Download|SS_2014_PC_ws2_gauss.py|gauss.py|py}}
 +
* {{ipynb|SS_2014_PC_ws2_gauss.ipynb|gauss.ipynb}}
  
 
==== Übungsblatt 1: Python und NumPy ====
 
==== Übungsblatt 1: Python und NumPy ====
Line 109: Line 195:
 
* {{Download|SS_2012_PadC.pdf|Script of the lecture "Physik auf dem Computer" (german)}} - Numerics in Python, using Numpy
 
* {{Download|SS_2012_PadC.pdf|Script of the lecture "Physik auf dem Computer" (german)}} - Numerics in Python, using Numpy
  
== GNU/Linux auf dem eigenen Rechner ==
+
== Python auf dem eigenen Rechner ==
 +
 
 +
Wer die Übungsaufgaben auf dem eigenen Rechner lösen möchte, muss dafür Python samt einiger Zusatzmodule installieren. Auf den unterschiedlichen Betriebssystemen funktioniert das jeweils anders.
 +
 
 +
=== Debian und Ubuntu Linux ===
 +
<pre>
 +
sudo apt-get update
 +
sudo apt-get install python python-numpy python-scipy \
 +
    python-matplotlib ipython ipython-notebook
 +
mkdir -p ~/.config/matplotlib
 +
echo 'backend: TkAgg' > ~/.config/matplotlib/matplotlibrc
 +
</pre>
 +
 
 +
=== OpenSUSE Linux ===
 +
<pre>
 +
sudo zypper install python python-numpy python-scipy \
 +
    python-matplotlib IPython
 +
mkdir -p ~/.config/matplotlib
 +
echo 'backend: TkAgg' > ~/.config/matplotlib/matplotlibrc
 +
</pre>
  
Wer ein Unix-Betriebssystem auf dem eigenen Computer ausprobieren will, der hat verschiedene Möglichkeiten.
+
=== Mac OS X ===
* Die Übungsleiter können Euch dabei - in begrenztem Umfang - weiterhelfen.
+
Zuerst den C-Compiler installieren:
* Die verschiedenen unten vorgestellten Distributionen bieten alle sogenannte "Live-CDs" an. Diese kann man einfach in den eigenen Rechner einlegen und den Rechner neu starten. Er lädt dann das Betriebssystem, ''ohne dabei die Festplatte zu verändern!'' Das ist also völlig ohne Risiko.
+
<pre>
* Wer GNU/Linux auf dem eigenen Rechner installieren möchte, kann das problemlos tun, ohne dabei Windows löschen zu müssen. Es muss lediglich Platz auf der Festplatte frei sein. Auch dazu können die LiveCDs verwendet werden.
+
xcode-select --install
 +
xcodebuild -license accept
 +
</pre>
 +
Anschließend [https://www.macports.org/install.php MacPorts] herunterladen und installieren.
 +
Nun können die Python-Pakete installiert werden:
 +
<pre>
 +
sudo port selfupdate
 +
sudo port install python27 py27-numpy py27-scipy \
 +
    py27-matplotlib py27-ipython py27-jupyter
 +
sudo port select python python27
 +
sudo port select ipython py27-ipython
 +
</pre>
  
Die folgenden Distributionen können wir empfehlen:
+
=== Windows ===
* [http://www.ubuntu.com/ Ubuntu] - Gilt als sehr benutzerfreundliche Distribution, ist einfach zu installieren. Verwendet den [[w:de:GNOME|GNOME-Desktop]] (Grafische Benutzeroberfläche).
+
Für Windows empfiehlt sich [https://www.continuum.io/downloads#_windows Anaconda Python], ein Komplettpaket, von dem alle benötigten Python-Module schon mitgebracht werden.
* [http://www.kubuntu.org/ Kubuntu] - Dasselbe wie Ubuntu, aber mit dem [[w:de:KDE Software Compilation 4|KDE-Desktop]].
 
* [http://www.xubuntu.org/ Xubuntu] - Ubuntu mit [[w:de:XFCE |XFCE-Desktop]]. Weniger bunt und animiert, aber dafür auch auf langsamen Netbooks recht flott.
 
* [http://www.opensuse.org/de/ OpenSuse] - Benutzerfreundliche Linuxdistribution. Stammt ursprünglich aus Deutschland, deswegen in Deutschland relativ weit verbreitet. Bietet wahlweise KDE oder GNOME (oder auch andere Alternativen).
 

Latest revision as of 11:04, 8 September 2016

Hinweis

Übersicht

Typ
Vorlesung (3 SWS) und Übungen (2 SWS)
Dozenten
Dr. Jens Smiatek und JP. Dr. Maria Fyta
Tutoren
Michael Kuron
Sprache
Deutsch
Zeit und Ort
Vorlesung
jeden Mittwoch 14:00-15:30, Pfaffenwaldring 57, HS 57.04
jeden zweiten Freitag 8:00-9:30, Pfaffenwaldring 57, HS 57.05 (14-tägig).
erster Freitagstermin: 08. April 2016
Freitagstermine: 22.04., 29.04. (ausserplanmässig), 06.05. (fällt aus!), 13.05. (ausserplanmässig), 03.06., 10.06. (Nachholtermin vom 11.05.), 17.06., 01.07. und 15.07. (fällt aus!)
Übung
jeden Mittwoch 15:45-17:15, Allmandring 3, ICP CIP-Pool

Vorlesung

Die Folien und das Skript zur Vorlesung gibt es hier:

Klausur

Der Klausurtermin ist Montag, der 11. Juli 2016.

Übungen

Wer in der Vorlesung keinen Fragebogen ausgefüllt hat, aber gerne an der Übung teilnehmen möchte, schreibt bitte eine Email an Michael Kuron mit dem Namen, der Email-Adresse, und der Matrikelnummer.

Tutoren und Übungszeiten

Die Übungsgruppe findet Mittwochs von 15:45 bis 17:15 Uhr statt. Sie wird von Michael Kuron geleitet. Am 20.04. und 13.07. wird diese Übungsgruppe von Jonas Landsgesell vertreten, am 29.06. von Julian Michalowsky.

Wenn Ihr Fragen zu den Übungen habt wendet Euch an Michael Kuron. Bei allgemeinen Fragen zu den Übungen wendet Euch an Jens Smiatek.

Übungsblätter

Die Übungsblätter sind in Zweiergruppen zu bearbeiten und gemeinsam per E-Mail an den Tutor abzugeben. Abgabefrist ist i.d.R. Dienstag, 10:00 Uhr.

Übungsblatt 11: Iterative Gleichungslöser und Differentialgleichungen

Übungsblatt 10: Nullstellensuche

Übungsblatt 9: Numerisches Differenzieren und Integrieren

  • Abgabetermin: Dienstag, 21. Juni 2016, 10:00 Uhr
  • application_pdf.pngWorksheet 9 (212 KB)Info circle.png

Übungsblatt 8: Messfehlerabschätzung

Übungsblatt 7: Signalverarbeitung und Datenanalyse

Übungsblatt 6: Diskrete Fouriertransformation

Übungsblatt 5: Spline-Interpolation und Fourierreihen

Übungsblatt 4: Lagrange-Interpolation

Übungsblatt 3: LU-Zerlegung und Taylorpolynome

Übungsblatt 2: Gaußsches Eliminationsverfahren

Übungsblatt 1: Python und NumPy

Übungsblatt 0: Wiederholung Python

Da auf allen weiteren Übungsblättern Programmieraufgaben in Python zu lösen sein werden, besteht die Hausaufgabe der ersten Woche darin, die eigenen Python-Kenntnisse aufzufrischen.

Zur Wiederholung der grundlegenden Python-Syntax ist dieses IPython-Workbook durchzuarbeiten: ipynb.pngPythonTutorial.ipynb (33 KB)Info circle.png (nbviewer). Zur Wiederholung der Funktionen der NumPy-Bibliothek ist dieses IPython-Workbook durchzuarbeiten: ipynb.pngNumPyTutorial.ipynb (120 KB)Info circle.png (nbviewer). Nach dem Herunterladen kann ein IPython-Notebook mit folgendem Befehl geöffnet werden:

ipython notebook /pfad/zum/Notebook.ipynb

Nützliche Referenzen sind beispielsweise die Vorlesungsfolien aus den Computergrundlagen, die application_pdf.pngFolien der Vorlesung vom 6. April (779 KB)Info circle.png , sowie die SciPy/NumPy-Dokumentation.

In der Übungsgruppe am 13. April 2016 können Fragen gestellt werden. Das erste Übungsblatt, auf dem es Punkte zu sammeln gilt, wird ebenfalls am 13. April veröffentlicht.

Allgemeine Bemerkungen

  • Die Übungen finden im CIP-Pool am ICP (Allmandring 3, 1. Stock) statt.
  • Um zur Prüfung zugelassen zu werden, sind insgesamt 50% der Punkte aus den Übungen notwendig. Außerdem ist regelmäßig an den Übungsgruppen teilzunehmen und ein- bis zweimal eine Aufgabe an der Tafel vorzustellen.
  • Die Übungen sollen i. d. R. in Gruppen von zwei oder drei Leuten bearbeitet werden.
  • Wir gehen davon aus, dass die Übungen im CIP-Pool bearbeitet werden. Dieser ist mit Hilfe des Logins und Passworts jederzeit zugänglich (außer nachts und am Wochenende). Die Belegungszeiten des CIP-Pools können hier abgelesen werden.
  • Trotzdem werden wir versuchen, alle dafür benötigten Materialien hier auf der Homepage bereitzustellen. Wer also selbst ein Unix/Linux-Betriebssystem zu Hause installiert hat, kann die Übungen im Prinzip auch dort erledigen. Das bedeutet aber ausdrücklich nicht, dass Ihr die Übungen dann alleine macht!
  • Wer möchte, kann Linux übrigens auch auf dem eigenen Computer ausprobieren und dann auch installieren (ohne deswegen Windows löschen zu müssen). Tipps dazu gibt es weiter unten.

Documentation

Linux

Python

  • Use the existing documentation of Python itself! To get help on the command print, use
 pydoc print
  • Or use the Web browser to read it. Start
 pydoc -p 4242
and visit the page http://localhost:4242

NumPy

  • first of all, try to use
 pydoc numpy

Python auf dem eigenen Rechner

Wer die Übungsaufgaben auf dem eigenen Rechner lösen möchte, muss dafür Python samt einiger Zusatzmodule installieren. Auf den unterschiedlichen Betriebssystemen funktioniert das jeweils anders.

Debian und Ubuntu Linux

sudo apt-get update
sudo apt-get install python python-numpy python-scipy \
    python-matplotlib ipython ipython-notebook
mkdir -p ~/.config/matplotlib
echo 'backend: TkAgg' > ~/.config/matplotlib/matplotlibrc

OpenSUSE Linux

sudo zypper install python python-numpy python-scipy \
    python-matplotlib IPython
mkdir -p ~/.config/matplotlib
echo 'backend: TkAgg' > ~/.config/matplotlib/matplotlibrc

Mac OS X

Zuerst den C-Compiler installieren:

xcode-select --install
xcodebuild -license accept

Anschließend MacPorts herunterladen und installieren. Nun können die Python-Pakete installiert werden:

sudo port selfupdate
sudo port install python27 py27-numpy py27-scipy \
    py27-matplotlib py27-ipython py27-jupyter
sudo port select python python27
sudo port select ipython py27-ipython

Windows

Für Windows empfiehlt sich Anaconda Python, ein Komplettpaket, von dem alle benötigten Python-Module schon mitgebracht werden.