Information Aufgaben und Lösungen Programmbeispiele

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.

Man findet alle Programmbeispiele im Internet (World-Wide-Web) unter den Adressen

https://www.springer.com/de/book/9783662493120

http://physik.uni-graz.at/~cbl/mm/

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) oder Computers in Science and Engineering (AIP) 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.

 
 
Anmerkung zur Grafik
GNUPLOT kann im Internet als public-domain-Software über das URL

http://www.gnuplot.info

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

gnuplot sample.cmd

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

system_.c

mit dem lokalen C-Compiler mittels

cc -c system_.c

übersetzen und dann beim Auruf des Fortran-Compilers das Objectcode Program system_.o dazuladen.

Anmerkung zu den MATHEMATICA Programmen

MATHEMATICA ist (ähnlich wie MAPLE) ein auf einer Sprache für symbolisches und numerische Rechnen basierendes Softwareprogramm. Zumindest eines der Pakete ist an den meisten Universitäten verfügbar. Informationen gibt es bei

http://www.wolfram.com

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 entweder mit cut und paste in Ihr Notebook eingefügt werden können, oder aber mit dem MATHEMATICA Befehl

<< "beispielprogramm.m"

in das aktuelle Notebook eingelesen werden können. Diese Files sind wesentlich kürzer; sie können geeignet mit eigenen Kommentaren und Zwischenergebnissen erweitert werden und bilden dann Ihr persönliches Notebook zu diesem Thema.
 
Folgen
 

Konvergenz von Partialsummen

Konvergenz von Potenzreihen

Potenzreihen - algebraisch

Numerische Interpolation

 

Fraktale

Doppelspalt-Beugungsbild

 

Nullstellen von Funktionen

 

Numerische Differentiation

Äquipotentiallinien

Numerische Integration

Monte Carlo Integration
Lösung eines Gleichungssystems

Methode der kleinsten Fehlerquadrate

Computeranimation

Richtungsfeld
MATHEMATICA Programm zur graphischen Darstellung des durch eine lineare DG gegebenen Richtungsfeldes.

MATHEMATICA Programm vecfld.m

 
Planetenbahnen
Dieses FORTRAN90 Programm löst die Gleichungen für ein Zentralkraftproblem, wie es die Bewegung der Erde um die Sonne darstellt. Man kann das Programm leicht auf mehrere Planeten und Monde erweitern. Die Kraft zwischen den beiden Massenpunkten, die sich in einer Ebene bewegen, ist durch  gegeben. Bei mehreren Massepunkten setzt sich jede Kraft, die auf den jeweilig betrachteten Massenpunkt wirkt, aus den Teilkräften zusammen.

FORTRAN90 Programm planet.f90


Relaxation
MATHEMATICA Programm zur Relaxation: Die Potentialwerte sind auf einem 50x50 Grid zu berechnen Die Randbedingungen (hier der äußere Rand und die Werte an der Stelle der Punktladungen des Ladungspaars) werden durch das Array ZRB festgelegt, die Randwerte und Anfangswert werden geeignet initialisiert. Nach 100 Relaxationsschritten wird das Ergebnis graphisch dargestellt.

MATHEMATICA Programm relax.m


Schwingende Saite
MATHEMATICA Programm zur graphischen Darstellung einer schwingenden Saite.

MATHEMATICA Programm saite.m


Schwingende kreisförmige Membran (Trommel)
MATHEMATICA Programm zur graphischen Darstellung von Eigenschwingungen einer kreisförmigen Membran (Trommel) mit Animation.

MATHEMATICA Programm drum.m


Allgemeine Relativitätstheorie
MATHEMATICA Programm zur Berechnung der Raumkrümmung im Rahmen der Allgemeinen Relativitätstheorie.

MATHEMATICA Programm art.m

 

Literaturhinweise

PrFlTe99
 W.H. Press, B.P. Flannery, S.A. Teukolsky und W.T. Vetterling, Numerical Recipes (Cambridge University Press, Cambridge: 1999)
ToSp88
 W. Törnig und P. Spelluci, Numerische Mathematik für Ingenieure und Physiker, Band 1 und 2 (Springer-Verlag, Berlin: 1988)
Zum Anfang