Skip to main content

2016 | Buch

Computerphysik

Einführung, Beispiele und Anwendungen

insite
SUCHEN

Über dieses Buch

Dieses Lehrbuch bietet dem Leser eine aktuelle Einführung in das Lösen von physikalischen Problemen mit dem Computer. Es werden die Grundlagen der Computernutzung, der Programmierung sowie der wichtigsten numerischen Methoden 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 den Schwerpunkt.

Der wichtigste Teil des Buches sind die Projekte, in denen die zuvor besprochenen Grundlagen auf unterschiedliche Probleme der Physik angewendet werden. Die Projekte umfassen 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 mit Hilfe des Computers zu lösen. Zahlreiche Übungsaufgaben helfen dabei.

Inhaltsverzeichnis

Frontmatter
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 interdisziplinä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
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 werden der Aufbau eines Computers sowie die Funktionsweise eines Betriebssystems im Detail besprochen. Das besondere Augenmerk richtet sich dabei auf das Betriebssystem Linux, welches in diesem Buch ausschließlich verwendet wird.
Stefan Gerlach
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
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
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
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
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
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
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
10. Numerik von gewöhnlichen Differenzialgleichungen
Zusammenfassung
Gewöhnliche Differenzialgleichungen treten bei der Beschreibung von vielen physikalischen Problemen auf. Eine wichtige Anwendung ist 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
11. Lineare 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
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
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 Oszillators 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
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
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
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
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
18. 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
Metadaten
Titel
Computerphysik
verfasst von
Stefan Gerlach
Copyright-Jahr
2016
Verlag
Springer Berlin Heidelberg
Electronic ISBN
978-3-662-49429-5
Print ISBN
978-3-662-49428-8
DOI
https://doi.org/10.1007/978-3-662-49429-5

Premium Partner