Skip to main content
main-content

Über dieses Buch

Dieses Lehrbuch bietet dem Leser eine aktuelle Einführung in das Lösen von physikalischen Problemen mit dem Computer. Die Grundlagen der Computernutzung, der Programmierung sowie der wichtigsten numerischen Methoden werden besprochen und anhand vieler Beispiele und Übungsaufgaben mit zunehmendem Bezug zur Physik verdeutlicht. Die Nutzung des Betriebssystems Linux und die Programmierung in C und Python bilden dabei die Schwerpunkte.

Der wichtigste Teil des Buches umfasst die Projekte, in denen die zuvor besprochenen Grundlagen auf unterschiedliche Probleme der Physik angewendet werden. Die Projekte beinhalten viele wichtige Beispiele aus der Computerphysik (u.a. den Oszillator und Anfangswertprobleme) und diskutieren deren Anwendungen im Detail. Der Leser erhält damit das nötige Rüstzeug, um selbstständig physikalische Probleme mithilfe des Computers zu lösen. Zahlreiche Übungsaufgaben unterstützen beim Vertiefen des Erlernten.

Neben einer Vielzahl an kleinen Ergänzungen und Verbesserungen ist die zweite Auflage um ein zusätzliches Projektkapitel zum Thema Daten- und Signalanalyse erweitert, wobei wichtige Themen wie statistische Methoden, Filtermethoden und Bildanalyse behandelt werden.

Dieses Buch ist in erster Linie für Bachelorstudenten der Physik, aber auch anderer naturwissenschaftlicher Fächer gedacht. Es kann aber auch von Lehrern und Dozenten zur eigenen Vorbereitung genutzt werden. Vorkenntnisse auf dem Gebiet setzt dieses Buch nicht voraus. Nur in den Projekten wird auf Wissen aus den Grundvorlesungen der Physik zurückgegriffen.

Inhaltsverzeichnis

Frontmatter

Kapitel 1. Einleitung

Zusammenfassung
Computerphysik ist nicht nur ein Teilgebiet der Physik, welches sich hauptsächlich mit Computern beschäftigt, genauso wie sich die Festkörperphysik mit Festkörpern oder die Astrophysik mit Sternen beschäftigt. Vielmehr handelt es sich um eine interdiziplinäre Wissenschaft zwischen Informatik, Mathematik und Physik und wird oft als das dritte Standbein der Physik, neben der Experimentalphysik und der Theoretischen Physik, bezeichnet. In diesem, ersten Kapitel, wird daher ein genauer Blick darauf geworfen, worum es sich bei der Computerphysik handelt. Darüber hinaus geht es in diesem Kapitel neben der Entwicklung der Computerphysik und ihren typischen Anwendungsfeldern um Computersimulationen und das wissenschaftliche Rechnen, ohne die die Computerphysik nicht möglich wäre.
Stefan Gerlach

Computergrundlagen

Frontmatter

Kapitel 2. Hard- und Software

Zusammenfassung
Computer aller Art finden sich inzwischen in allen Bereichen des Lebens. Gerade in der Wissenschaft sind sie inzwischen zu einem unverzichtbaren Werkzeug sowohl in der Lehre als auch in der Forschung geworden. Dabei gibt es eine Vielzahl an täglichen Anwendungen, wie z.B. Kommunikation, Text- und Datenverarbeitung, Programmieren und Simulationen. Für ein effektives Arbeiten sind daher Grundkenntnisse von Hard- und Software Voraussetzung. In diesem Kapitel wird der Aufbau eines Computers sowie die Funktionsweise eines Betriebssystems im Details besprochen. Das besondere Augenmerk richtet sich dabei auf das Betriebssystem Linux, welches in diesem Buch ausschließlich verwendet wird.
Stefan Gerlach

Kapitel 3. Arbeiten mit Linux

Zusammenfassung
Ein modernes Linux-System lässt sich bequem über die grafische Oberfläche bedienen. Für das Verständnis und das effektive Arbeiten mit dem Betriebssystem ist es jedoch sinnvoll, auch die textbasierte Schnittstelle, d. h. ein Terminal und Shellkommandos zu verwenden. Dieses Kapitel beginnt daher mit der Shell, die die Kommunikation zwischen Benutzer und System in einem Terminal übernimmt. Danach werden Details zum Dateisystem sowie Benutzern und Prozessen besprochen, und der Umgang damit mithilfe der relevanten Shellkommandos erläutert.
Stefan Gerlach

Programmieren und Datenverarbeitung

Frontmatter

Kapitel 4. Programmieren in C

Zusammenfassung
Ein wichtiger Teil der Computerphysik ist die Implementierung eines Programms, d. h. das Programmieren selbst. Es gibt zwar Simulationspakete und Umgebungen, die spezielle Probleme ohne Programmierung lösen können, aber erst mit der Programmierung besteht die Möglichkeit, eigene Probleme zu implementieren und zu lösen. In diesem Kapitel werden zuerst die Grundlagen der Programmierung im Detail erläutert. Danach folgt eine Einführung in die Programmiersprache C, die eine hohe Verbreitung genießt und auch zu großen Teilen in diesem Buch verwendet wird. Am Ende des Kapitels werden Hilfsmittel zur Programmierung, d.h. sog. Makefiles, Debugger und Versionsverwaltungen und deren Verwendung angesprochen.
Stefan Gerlach

Kapitel 5. Programmieren in Python

Zusammenfassung
Python ist eine moderne Programmiersprache, die auch im Wissenschaftsumfeld inzwischen sehr verbreitet ist. Es handelt sich im Gegensatz zu C um eine Skriptsprache, die von einem Interpreter (auch interaktiv) ausgeführt wird. Die Rechengeschwindigkeit ist daher zwar geringer, allerdings spielt dies oft kaum eine Rolle, da die Zeit, die man für Entwicklung und Testen benötigt, meistens wichtiger ist. Falls nötig lassen sich aus Python aber auch C-Routinen aufrufen, was bei vielen numerischen Funktionen sinnvoll ist. In diesem Kapitel wird die Programmiersprache Python und deren Sprachelemente vorgestellt und an Beispielen besprochen. Besonderes Augenmerk wird dabei auf die Anwendung in der wissenschaftlichen Programmierung gelegt.
Stefan Gerlach

Kapitel 6. Wissenschaftliches Rechnen

Zusammenfassung
Das wissenschaftliche Rechnen (scientific computing) beschäftigt sich mit Techniken für die Umsetzung eines wissenschaftlichen bzw. mathematischen Problems auf dem Computer. Dabei werden Methoden der Informatik, insbesondere für die Programmierung und Datenverarbeitung, angewendet, um Modelle und Algorithmen zu entwickeln und damit naturwissenschaftliche Simulationen zu realisieren. Dieses Kapitel beschäftigt sich zuerst mit der wissenschaftlichen Programmierung und Methoden zur Datenauswertung und -darstellung. Dabei werden wichtige Programmierbibliotheken und Programme vorgestellt. Am Ende des Kapitels werden die Grundlagen von Computernetzen und Programme zum Datenaustausch besprochen.
Stefan Gerlach

Kapitel 7. Hochleistungsrechnen

Zusammenfassung
Viele Computersimulationen, für die man früher Supercomputer benötigte, lassen sich heutzutage auf Arbeitsplatzrechnern durchführen. Andererseits lassen sich heute aufgrund der verbesserten Ressourcen und numerischen Methoden Probleme bewältigen, die man früher nicht lösen konnte. Auch in der Ausbildung stehen inzwischen Ressourcen zur Verfügung, um umfangreiche Computersimulationen zu ermöglichen. Beim Hochleistungsrechnen (high performance computing) geht es darum, die verfügbaren Rechenressourcen optimal zu nutzen, um eine möglichst gute Rechenleistung zu erhalten. Das betrifft nicht nur die Optimierung der Software, sondern auch die Nutzung von speziellen Rechenclustern. Damit eine Simulation einen Rechner optimal nutzen kann, muss oft ein nicht unerheblicher Aufwand für Optimierung und parallele Programmierung in Kauf genommen werden. Dies lohnt sich natürlich nur bei aufwendigen Simulationen mit hohem Rechen- oder Speicherbedarf. Aber auch einfache Simulationen können von Rechenclustern profitieren, da so viele Simulationen mit verschiedenen Parametern gleichzeitig durchgespielt werden können. Dieses Kapitel gibt einen Überblick über Methoden des Hochleistungsrechnens, Parallele Programmierung und die Nutzung von HPC-Clustern.
Stefan Gerlach

Numerische Methoden

Frontmatter

Kapitel 8. Zahlendarstellung und numerische Fehler

Zusammenfassung
Die Numerische Mathematik (kurz Numerik) beschäftigt sich mit Algorithmen, die eine näherungsweise Berechnung von Lösungen mathematischer Gleichungen erlauben. Der Grund, warum man an näherungsweisen Lösungen interessiert ist, liegt darin, dass nur wenige, einfache Probleme analytisch lösbar sind. Außerdem ist die Berechnung einer exakten Lösung meist nicht notwendig bzw. zu aufwendig. Da ein Computer sehr schnell rechnen kann, erschließt sich damit ein weites Feld an physikalischen Problemen, welche mithilfe numerischer Methoden gelöst werden können. Bevor wir uns jedoch den numerischen Methoden zuwenden, werfen wir in diesem Kapitel einen genaueren Blick auf die Darstellung und Speicherung von Zahlen auf einem Computer, den damit verbundenen numerischen Fehlern und wie man damit umgeht.
Stefan Gerlach

Kapitel 9. Numerische Standardverfahren

Zusammenfassung
Genauso vielfältig wie die bei physikalischen Problemen auftretenden mathematischen Gleichungen sind auch deren numerische Lösungsverfahren. Es gibt jedoch eine Reihe von Standardverfahren der Numerik, die allgemein anwendbar sind und bei unterschiedlichen Problemen auftreten. Dazu gehören Verfahren zur numerischen Ableitung, Nullstellensuche, Interpolation, numerischen Integration und Fourieranalyse. Diese treten bei der numerischen Lösung von physikalischen Problemen immer wieder auf und gehören deshalb zum Grundwissen eines Computerphysikers. In diesem Kapitel werden die wichtigsten dieser numerischen Verfahren besprochen, untereinander verglichen und deren Probleme bzw. Anwendbarkeit diskutiert.
Stefan Gerlach

Kapitel 10. Numerik von gewöhnlichen Differenzialgleichungen

Zusammenfassung
Gewöhnliche Differenzialgleichungen treten bei der Beschreibung von vielen physikalischen Problemen auf. Eine wichtige Anwendung sind z. B. Die vielfältigen Bewegungsgleichungen in der Mechanik. Aber auch Wachstums- und Zerfallsprozesse lassen sich mithilfe von gewöhnlichen Differenzialgleichungen beschreiben. Die Anwendungen sind daher nicht nur auf physikalische Probleme beschränkt, sondern können auch in der Chemie und Biologie genutzt werden. In diesem Kapitel werden die wichtigsten numerischen Verfahren zur Lösung von gewöhnlichen Differenzialgleichungen besprochen. Dazu gehört neben den Euler und Runge-Kutta-Verfahren auch Mehrschrittverfahren und spezielle Verfahren zur numerischen Lösung von Bewegungsgleichungen.
Stefan Gerlach

Kapitel 11. Verfahren der linearen Algebra

Zusammenfassung
Viele Probleme der Physik lassen sich auf das Lösen von Aufgaben der linearen Algebra zurückführen. Dazu gehören viele Anwendungen in der Mechanik (Mehrteilchensysteme, analytische Geometrie etc.), aber auch z. B. Anwendungen in der Quantenmechanik. Die dabei oft auftretenden großen linearen Gleichungssysteme benötigen für ihre Lösung effektive numerische Verfahren. Eine weitere wichtige Klasse aus dem Bereich der linearen Algebra sind sog. Eigenwertprobleme, deren Lösungen, d. h. Eigenwerte und -vektoren, numerisch bestimmt werden sollen. Diese treten z. B. Als Eigenschwingungen in der Mechanik auf, werden aber auch in der Quantenmechanik verwendet, um Eigenenergien und -zustände zu beschreiben. Dieses Kapitel beschäftigt sich mit den verschiedenen numerischen Methoden zum exakten und iterativen Lösen von linearen Gleichungssystemen und mit verwandten Methoden für Eigenwertprobleme.
Stefan Gerlach

Kapitel 12. Zufallszahlen

Zusammenfassung
Der Zufall spielt bei vielen Prozessen in der Natur eine wichtige Rolle. Diese Prozesse nennt man stochastische Prozesse. In einer Simulation lassen sich diese nur nachbilden, wenn man auch den Zufall als Zufallsexperiment simuliert. Simulationen, die auf diesen Zufallsexperimenten beruhen, werden auch Monte-Carlo-Simulationen, als Anspielung auf das Casino in Monte-Carlo, genannt. Die dafür benötigten Zufallszahlen werden durch sog. Zufallszahlengeneratoren auf dem Computer erzeugt und können für Simulationen genutzt werden. In diesem Kapitel werden deshalb zuerst Zufallszahlengeneratoren und deren Eigenschaften besprochen. Danach werden Verfahren zur Erzeugung von Zufallszahlenverteilungen diskutiert und deren Implementierung erläutert.
Stefan Gerlach

Computerphysik-Projekte

Frontmatter

Kapitel 13. Der Oszillator

Zusammenfassung
Das erste Projekt beschäftigt sich mit einem Standardbeispiel zur Untersuchung von physikalischen Vorgängen, dem Oszillator. In allen Bereichen der Physik, in denen Schwingungen eine Rolle spielen, findet man diesen in mehr oder weniger veränderter Form wieder. Der Oszillator sollte also zum Standardrepertoire jedes Physikers gehören. Zuerst werden die physikalischen Grundlagen des Oszillators erläutert und dann die numerischen Lösungen der Bewegungsgleichung besprochen. Insbesondere werden anhand des gedämpften und ungedämpften harmonischen Oszillator mit und ohne Antrieb die verschiedenen numerischen Methoden diskutiert. In diesem Projekt geht es also weniger darum neue Physik einzuführen, sondern anhand der bekannten Physik die numerischen Methoden, deren Programmierung und Anwendung zu verstehen.
Stefan Gerlach

Kapitel 14. Nichtlineare Dynamik

Zusammenfassung
In der nichtlinearen Dynamik werden dynamische Systeme untersucht, bei denen die auftretenden Bewegungsgleichungen nichtlineare Funktionen enthalten. Diese Systeme können sehr interessante Eigenschaften besitzen (z. B. chaotisches Verhalten) und zu besonderen geometrischen Strukturen (sog. Fraktale) führen. Damit ergeben sich natürlich auch interessante Implikationen für reelle Systeme wie z. B. der Schmetterlingseffekt. Wichtige Anwendungen der nichtlinearen Dynamik finden sich aber auch in der Biologie (Räuber-Beute-Modelle), der Medizin (Herzrhythmus) oder in den Wirtschaftswissenschaften (Börsenentwicklung). Dieses Kapitel beginnt mit den typischen geometrischen Strukturen und Modellsystemen (Feigenbaum-Diagramm, Mandelbrot-Menge). Danach wird das nichtlineare Pendel im Detail diskutiert. Am Ende des Kapitels folgt eine Übersicht über sog. seltsame Attraktoren.
Stefan Gerlach

Kapitel 15. Randwertprobleme

Zusammenfassung
Viele physikalische Probleme aus der Mechanik, Elektrostatik und Quantenmechanik führen auf sog. Randwertprobleme, d. h., man sucht statische Lösungen von bestimmten Differenzialgleichungen, die gewisse Randbedingungen erfüllen. Wichtige Beispiele sind die Poisson-Gleichung in der Elektrostatik und die stationäre Schrödinger-Gleichung in der Quantenmechanik, deren numerische Lösungsverfahren in diesem Kapitel betrachtet werden. Dabei wird zunächst die oft verwendete Numerow- und Shooting-Methode vorgestellt und mithilfe von Anwendungen erläutert. Die ebenfalls wichtigen Relaxationsmethoden werden danach diskutiert und untersucht.
Stefan Gerlach

Kapitel 16. Anfangswertprobleme

Zusammenfassung
Anfangswertprobleme beschreiben in der Physik typischerweise zeitabhängige Probleme, bei denen die Startbedingungen durch die Anfangswerte gegeben sind und die zeitliche Entwicklung des Systems gesucht ist. Betrachtet man Systeme, bei denen die Anfangswerte durch ein Randwertproblem gegeben sind, hängt die gesuchte Lösung damit von Ort und Zeit ab und die Dynamik wird durch partielle Differenzialgleichungen beschrieben. In diesem Kapitel werden die wichtigsten partiellen Differenzialgleichungen von physikalischen Anfangswertproblemen besprochen und dafür die verschiedenen numerischen Verfahren zur Lösung der Diffusionsgleichung, der zeitabhängigen Schrödinger-Gleichung und der Wellengleichung näher betrachtet und die Lösungen anhand von Beispielen diskutiert.
Stefan Gerlach

Kapitel 17. Eigenwertprobleme

Zusammenfassung
Eigenwertprobleme tauchen z. B. in der Mechanik bei der Bestimmung von Eigenschwingungen eines Systems auf. Aber auch in der Quantenmechanik spielen Eigenwertprobleme eine wichtige Rolle, da die Eigenwerte von Operatoren als Messwerte interpretiert werden und die Eigenvektoren als zugehörende Zustände. Oft werden deshalb z. B. die Energiezustände von quantenmechanischen Systemen über die Eigenwerte des Hamilton-Operators bestimmt. In diesem Kapitel werden daher typische Anwendungen aus Mechanik und Quantenmechanik diskutiert, bei denen Eigenwertprobleme auftreten. Die numerischen Lösungen und deren Eigenschaften werden im Detail diskutiert.
Stefan Gerlach

Kapitel 18. Daten- und Signalanalyse

Zusammenfassung
Nicht nur in den Naturwissenschaften fallen vor allen Dingen quantitative Daten an, deshalb gehört die Auswertung, Aufbereitung und Darstellung von Daten zum Rüstzeug jedes Wissenschaftlers. Die zunehmende Bedeutung der Datenanalyse in vielen Bereichen ist auch anhand der inzwischen allgegenwärtigen Schlagwörter „Big data“ und „Data science“ erkennbar. In diesem Kapitel sollen die grundlegenden Methoden der Daten- bzw. Signalanalyse besprochen und anhand von Beispielen verdeutlicht werden. Der Schwerpunkt liegt hierbei auf den klassischen Analysemethoden, deren mathematischer Hintergrund leicht nachvollziehbar ist und schnell einen Einstieg in dieses umfangreiche Gebiet erlaubt. Aufwendigere Methoden sowie Fragen zur fachgebietsabhängigen Interpretation von Daten sollen entsprechenden Fachbüchern vorbehalten bleiben.
Stefan Gerlach

Kapitel 19. Stochastische Methoden

Zusammenfassung
Stochastische Prozesse spielen bei vielen physikalischen Problemen eine große Rolle. Die Grundlage dabei sind Zufallsexperimente, die das Verhalten dieser Prozesse charakterisieren. Damit ist klar, dass man solche Prozesse nur mit statistischen Methoden untersuchen kann. Da jedoch höhere statistische Methoden noch nicht in den Grundvorlesungen behandelt werden, beschränkt sich dieses Kapitel auf die Anwendung von Zufallszahlen und der grundlegenden numerischen Methoden. Genauer betrachtet werden daher zwei wichtige Anwendungen, die Monte-Carlo-Integration und der Random Walk.
Stefan Gerlach

Backmatter

Weitere Informationen

Premium Partner

    Bildnachweise