Physik mit Python: Simulationen, Visualisierungen und Animationen von Anfang an

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Dieses Lehrbuch führt Sie anhand von physikalischen Fragestellungen aus der Mechanik in die Programmiersprache Python ein. Neben der reinen Simulation von physikalischen Systemen wird besonderes Augenmerk auf die Visualisierung von Ergebnissen und das Erstellen von Animationen gelegt. Mit zahlreichen Beispielen und Übungsaufgaben ermöglicht dieses Buch so den praktischen Einstieg in das wissenschaftliche Rechnen.

Sie lernen Kurvenanpassungen durchzuführen sowie lineare und nicht-lineare Gleichungssysteme zu lösen, die bei der Behandlung von statischen Problemen auftreten. Auch die Lösung von Differentialgleichungen, die dynamische Systeme beschreiben, sowie Themen wie Fourier-Transformationen und Eigenwertprobleme kommen nicht zu kurz. Mithilfe der in diesem Buch vorgestellten Simulationsbeispiele vertiefen Sie darüber hinaus Ihr Verständnis der zugrundeliegenden Physik, indem Sie die physikalischen Gesetze algorithmisch umsetzen und physikalische Aufgaben simulieren, die weitaus komplexer sind als die üblichen mit Papier und Bleistift lösbaren Aufgaben.

Alle im Buch vorgestellten Programme, die fertigen Animationen sowie die Lösungen zu den Übungsaufgaben werden online bereitgestellt.

Die vorliegende zweite Auflage enthält zahlreiche Ergänzungen, Korrekturen und Anpassungen an die aktuellen Versionen von Python, NumPy, SciPy und Matplotlib. Darüber hinaus erwartet Sie ein zusätzliches Kapitel über objektorientierte Programmiermethoden.

Ob Sie also Physik oder eine Ingenieurwissenschaft mit hohem physikalischem Anteil studieren, oder ob Sie unterrichten und Ihre Lehre durch Simulationen und  Animationen anreichern möchten – dieses Buch ist dabei Ihr optimaler Begleiter!

Author(s): Oliver Natt
Edition: 2
Publisher: Springer Spektrum
Year: 2022

Language: German
Pages: 434
City: Berlin, Heidelberg
Tags: Physikalische Animationen; Python Grundlagen; Programmieren Physik; Visualisierung Physik; Wissenschaftliches Rechnen; Physik mit Python; Mechanik; Schwingungen; Physical Animations; Python Basics; Programming Physics; Visualization Physics; Scientific Computing; Physics with Python; Mechanics; Vibrations

Vorwort
Inhaltsverzeichnis
1 Einleitung
1.1 An wen richtet sich dieses Buch?
1.2 Was ist eine Simulation?
1.3 Die Wahl der Programmiersprache
1.4 Aufbau des Buches
1.5 Nomenklatur
Literatur
2 Einführung in Python
2.1 Installation einer Python-Distribution
2.2 Installation von Python unter Linux
2.3 Installation eines Texteditors
2.4 Installation einer Entwicklungsumgebung
2.5 Starten einer interaktiven Python-Sitzung
2.6 Python als Taschenrechner
2.7 Importieren von Modulen
2.8 Variablen
2.9 Datentypen und Klassen
2.10 Arithmetische Zuweisungsoperatoren
2.11 Mehrfache Zuweisungen (Unpacking)
2.12 Indizierung von Ausschnitten (Slices)
2.13 Formatierte Strings
2.14 Vergleiche und boolesche Ausdrücke
2.15 Erstellen von Python-Programmen
2.16 Kontrollstrukturen
2.17 Funktionen
2.18 Funktionen mit optionalen Argumenten
2.19 Bedingte Ausführung von Anweisungen
2.20 Bedingte Wiederholung von Anweisungen
2.21 Schleifen über eine Aufzählung von Elementen
2.22 Schleifen mit zip und enumerate
2.23 Styleguide PEP 8
Zusammenfassung
Aufgaben
Literatur
3 NumPy und Matplotlib
3.1 Eindimensionale Arrays
3.2 Mehrdimensionale Arrays
3.3 Datentypen in NumPy
3.4 Rechnen mit Arrays
3.5 Erzeugen von Arrays
3.6 Indizierung von Array-Ausschnitten (Array-Slices)
3.7 Indizierung mit ganzzahligen Arrays
3.8 Indizierung mit booleschen Arrays
3.9 Ausgelassene Indizes
3.10 Logische Operationen auf Arrays
3.11 Mehrfache Zuweisungen mit Arrays (Unpacking)
3.12 Broadcasting
3.13 Matrixmultiplikationen mit @
3.14 Lösen von linearen Gleichungssystemen
3.15 Änderung der Form von Arrays
3.16 Grafische Ausgaben mit Matplotlib
3.17 Animationen mit Matplotlib
3.18 Positionierung von Grafikelementen
Zusammenfassung
Aufgaben
Literatur
4 Physikalische Größen und Messungen
4.1 Darstellung physikalischer Größen
4.2 Statistische Messfehler
4.3 Simulation der Gauß-Verteilung
4.4 Grafische Darstellung von Messdaten
4.5 Kurvenanpassung an Messdaten
Zusammenfassung
Aufgaben
Literatur
5 Kinematik des Massenpunkts
5.1 Schiefer Wurf
5.2 Radiodromen
5.3 Gleichförmige Kreisbewegung
5.4 Bewegung entlang einer Schraubenlinie
Zusammenfassung
Aufgaben
Literatur
6 Statik von Massenpunkten
6.1 Starre Stabwerke
6.2 Elastische Stabwerke
6.3 Linearisierung kleiner Deformationen
6.4 Darstellung der Kräfte über eine Farbtabelle
6.5 Dreidimensionale Stabwerke
6.6 Unterbestimmte Stabwerke
Zusammenfassung
Aufgaben
Literatur
7 Dynamik des Massenpunkts
7.1 Eindimensionale Bewegungen
7.2 Reduktion der Ordnung
7.3 Runge-Kutta-Verfahren
7.4 Freier Fall mit Luftreibung
7.5 Interpolation von Messwerten für Simulationen
7.6 Mehrdimensionale Bewegungen
7.7 Schiefer Wurf mit Luftreibung
7.8 Schiefer Wurf mit Coriolis-Kraft
7.9 Planetenbahnen
Zusammenfassung
Aufgaben
Literatur
8 Mehrteilchensysteme und Erhaltungssätze
8.1 Erhaltungssätze
8.2 Bewegungen mehrerer Massen
8.3 Doppelsternsysteme
8.4 Sonnensystem
8.5 Elastische Stoßprozesse
8.6 Stoß zweier harter Kugeln
8.7 Stoß vieler harter Kugeln
8.8 Modell eines Gases
8.9 Gleichverteilungssatz der statistischen Physik
8.10 Brownsche Bewegung
Zusammenfassung
Aufgaben
Literatur
9 Zwangsbedingungen
9.1 Verallgemeinerte Koordinaten
9.2 Pendel mit Zwangskraft
9.3 Baumgarte-Stabilisierung
9.4 Verallgemeinerung der Zwangsbedingungen
9.5 Chaotische Mehrfachpendel
9.6 Zwangsbedingungen mit Ungleichungen
9.7 Zeitabhängige Zwangsbedingungen
Zusammenfassung
Aufgaben
Literatur
10 Schwingungen
10.1 Theorie des linearen Federpendels
10.2 Darstellung von Resonanzkurven
10.3 Visualisierung einer Feder
10.4 Simulation des Federpendels
10.5 Hörbarmachen von Schwingungen
10.6 Nichtlineare Schwingungen
10.7 Fourier-Analysen
10.8 Spektralanalyse von Audiosignalen
10.9 Amplituden und Frequenzmodulation
10.10 Resonanzkurven nichtlinearer Systeme
10.11 Gekoppelte Schwingungen und Eigenmoden
Zusammenfassung
Aufgaben
Literatur
11 Wellen
11.1 Transversal- und Longitudinalwellen
11.2 Masse-Feder-Kette
11.3 Stehende Wellen
11.4 Interferenz
11.5 Komplexe Amplituden
11.6 Huygenssches Prinzip: Beugung am Spalt
11.7 Brechung
11.8 Doppler-Effekt und machscher Kegel
11.9 Hörbarmachen des Doppler-Effekts
11.10 Dispersion und Gruppengeschwindigkeit
11.11 Zerfließen eines Wellenpakets
Zusammenfassung
Aufgaben
Literatur
12 Grafische Benutzeroberflächen
12.1 Objektorientierte Programmierung
12.2 Definition von Klassen
12.3 Vererbung
12.4 Überschreiben von Methoden
12.5 Erzeugen einer Benutzeroberfläche mit PyQt
12.6 Design einer Benutzeroberfläche
12.7 Implementierung der Benutzeroberfläche
12.8 Direkte Verwendung einer .ui-Datei mit PyQt
12.9 Vorteile von pyuic gegenüber loadUiType
12.10 Benutzeroberfläche für den schiefen Wurf
12.11 Implementierung der Benutzeroberfläche
12.12 Generatoren
12.13 Animationen in GUIs
Zusammenfassung
Literatur
13 Objektorientierte Simulationen
13.1 Dekoratoren
13.2 Properties
13.3 Entpacken von Funktionsargumenten
13.4 Funktionen mit variabler Anzahl von Argumenten
13.5 Problemanalyse der Stabwerke
13.6 Das Paket Stabwerke
13.7 Die Klasse Stabwerk
13.8 Die Klasse StabwerkStarr
13.9 Die Klasse StabwerkElastisch
13.10 Die Klasse StabwerkElastischLin
13.11 Die Klasse PlotStabwerk
13.12 Die Klasse AnimationEigenmode
13.13 Anwendungen des Pakets
Zusammenfassung
Aufgaben
Literatur
14 Ausblick
Literatur
Index