Mathematische Methoden in der Physik
Christian B. Lang, Norbert Pucker
Programmbeispiele
FORTRAN ist vermutlich die im Bereich der Naturwissenschaften gebräuchlichste Sprache, aber sicher nicht die eleganteste und meist Studienanfängern unbekannt. Lange Jahre wurde als erste Programmiersprache Basic oder Pascal erlernt, aber diese Rolle hat inzwischen wohl C übernommen. Ebenso auf dem Vormarsch ist C++.
Wir haben uns dazu entschieden, für die Beispielprogramme Fortran95 zu verwenden. Ausgehend davon ist es recht einfach, die Programme auch in die jeweilige Lieblingssprache zu übertragen.
Daneben werden einzelne Probleme auch in MATHEMATICA vorgestellt. Neben MAPLE ist das die derzeit wohl verbreitetste "`Sprache"' zur Formulierung analytischer und numerischer Fragestellungen sowie deren grafischer Darstellung. Wir geben nur die Eingabezeilen an, nicht die kompletten MATHEMATICA Notebooks, die ja auch Ausgabe und Plots enthalten.
Wir sind um eine möglichst einfache Programmstruktur bemüht und wollen möglichst wenige "Ornamente" verwenden. Sie können daher sicher in vielen Fällen elegantere oder allgemeiner gültige Varianten entwickeln. Hier geht es nur um den ersten Schritt. Der Leser wird dazu aufgefordert, die vorliegenden Programme zu verändern und zu verbessern und eigene, vielleicht elegantere Lösungen zu finden. Die Fähigkeit zum selbständigen Arbeiten zu entwickeln, ist auch ein Ziel dieses Buchs.
Die Grafik ist immer von der Hardware abhängig. Für die erste Auflage hatten wir die Programme in Pascal und ein minimales Grafikmodul für interaktive Grafikdarstellungen (zum Beispiel auch bewegte Objekte) verwendet. Für FORTRAN95 gibt es keine einfachen Standards. Das Paket OpenGL kommt dieser Forderung nahe, ist aber für Anfänger nicht einfach zu verwenden. Wir werden daher entweder die Ergebnisdaten in geeigneter Form zur Verwendung in eigenständigen Grafikprogrammen aufbereiten oder aber das verbreitete Paket Gnuplot verwenden. Dieses Paket ist für fast alle Plattformen kostenfrei im Internet verfügbar.
Sie können die Programme etweder per Mausklick ansehen oder (über das Menü der rechten Maustaste) dierekt herunterladen und abspeichern. Die Programmbeispiele sollen für den Leser eine Anregung zu weiteren Studien sein und können keinen Text oder Kurs über numerische Methoden in der Mathematik (wie etwa [ToSp88]}) ersetzen. Einen ausgezeichneten Überblick zu diesem Thema findet man in [PrFlTe99], wo auch eine entsprechende Programmbibliothek in allen gängigen Programmiersprachen vorgestellt wird.
Programmbibliotheken im Bereich der Physik gibt es zur Zeit vorwiegend in FORTRAN (in zunehmendem Ausmaß in der Variante FORTRAN95) und C. Auf den Webseiten vieler Forschungszentren, wie etwa auch am Europäischen Forschungszentrum CERN, gibt es große, frei verfügbare Sammlungen von Programmen. Für den Normalverbraucher verweisen wir vor allem auf die äußerst nützliche Sammlung in [PrFlTe99]. Daneben gibt es noch weitere ausgezeichnete Bibliotheken wie etwa die NAG-Library oder auch die IMSL-Library, die kommerziell vertrieben werden. Gute und aktuelle Problemlösungen werden auch in Fachzeitschriften wie Computer Physics Communications (Elsevier) vorgestellt.
Die Programmbeispiele sollen für den Leser ein Anregung zu weiteren Studien sein und können keinen Text oder Kurs über numerische Methoden in der Mathematik (wie etwa [ToSp88]) ersetzen. Einen ausgezeichneten Überblick zu diesem Thema findet man in [PrFlTe99], wo auch eine entsprechende Programmbibliothek aufgebaut wird.
geladen werden. Die Programmbeispiele, welche Grafiken erzeugen sollen, generieren einen Datenfile sample.dat und eine Kommandofile sample.cmd, der unter Linux mit dem gnuplot Kommando
eine Grafik erzeugt. erzeugt. (Unter anderen Betriebsystemen sollte das entsprechende Kommando laut GNUPLOT-Dokumentation aufgerufen werden). Wenn Ihr FORTRAN-Compiler die Verwendung einer Subroutine "System" vorsieht, dann können Sie die Grafik auch aus dem Programm direkt aufrufen. Um dies zu erreichen, entfernen Sie einfach die Kommentarzeichen "!" in den Befehlszeile "call system(...)" im Beispielprogramm.
Falls dieser Aufruf in Ihrem Compiler nicht vorgesehen ist, so könnten Sie das C-Programm
mit dem lokalen C-Compiler mittels
übersetzen und dann beim Auruf des Fortran-Compilers das Objectcode Program system_.o dazuladen.
Anmerkung zu den MATHEMATICA Programmen
In diesen Paketen kann man auch so genannte Notebooks erstellen. Unsere Lösungsvorschläge zu den Aufgaben sind in dieser Form. Wir geben hier (bei den Programmbeispielen) nicht Notebooks (die üblicherweise mit der Erweiterung .nb versehen sind) an, sondern Programme die mitcut und paste aus einem Texteditor in Ihr Notebook eingefügt werden können.
Im zweiten Beispiel wird die logistische Abbildung untersucht, eine Folge, die abhängig von einem Kontrollparameter konvergent oder auf verschiedene Arten divergent ist.
für einen Bereich in x mit einer gegebenen Funktion verglichen.
Die Konvergenzeigenschaften können durch Untersuchung verschiedener
Werte für n und x untersucht werden. Im Programmbeispiel
wird die Reihe für die Funktion cos x mit der Funktion selbst
verglichen. Man beachte die iterative Berechnung der Folgenglieder in der
Partialsumme!
werden durch die Koeffizienten
dargestellt. Die Programme zeigen die wesentlichen Strukturen und sollten
zu eigenen Erweiterungen (etwa für andere Winkelfunktionen oder den
natürlichen Logarithmus) anregen.
.
FORTRAN90 Programm regfalsi.f90
Das Newtonsche Verfahren kann in manchen Fällen aus dem vorgegebenen Intervall hinauslaufen. In diesem Fall wird eine Fehlermeldung ausgeschrieben, und es werden neue Intervallgrenzen angefordert. Dies kann insbesondere dann passieren, wenn es im Intervall Punkte mit sehr kleiner 1. Ableitung gibt. Oft hilft dann ein genaueres Einschränken des Intervalls.
gegeben. Bei mehreren Massepunkten setzt sich jede Kraft, die auf den jeweilig
betrachteten Massenpunkt wirkt, aus den Teilkräften zusammen.