Computeranwendungen in der Physikalischen und Theoretischen

Werbung
Computeranwendungen in der
Physikalischen und Theoretischen
Chemie:
Grundlagen der Numerischen
Mathematik und Programmierung
Bernd Hartke
Theoretische Chemie
Institut für Physikalische Chemie
Max-Eyth-Straße 2
Erdgeschoß, Raum 29
Tel.: 0431/880-2753
[email protected]
http://ravel.phc.uni-kiel.de
“Sprechstunde” : jederzeit nach Vereinbarung
Prof. Dr. Bernd Hartke, Universität Kiel, [email protected]
Ziele der Veranstaltung:
• wie bringe ich meinen Computer dazu, nicht nur vorgefertigte Programme anderer
Leute abzuspulen, sondern meine eigenen Aufgaben auf meine eigene Weise zu lösen;
• erstes Grundverständnis von numerischer i.Ggs. zu analytischer Mathematik;
• Verwendung von professionellen numerischen Bibliotheken in eigenen Anwendungsprogrammen.
• Erwerb nötigen Hintergrundwissens für den Umgang mit beliebigen vorgefertigten
Programmen aus dem Bereich angewandte Mathematik und numerische Simulation
in Physik, Chemie,. . .
KEINE Ziele der Veranstaltung:
• detaillierte Einführung in spezielle tools;
• insbesondere: keine Einführung in Gaussian oder andere TheoChem-Pakete
• insbesondere: keine Einführung in algebraisch-numerische Mathe-Programme
(Mathematica, Maple, MathCad, Matlab, . . . )
• physikalisch- oder theoretisch-chemischer Stoff
Prof. Dr. Bernd Hartke, Universität Kiel, [email protected]
Pflichtveranstaltung im 7./8. Semester, 2 SWS,
mit Schein (Teilnahmenachweis)
procedere:
• 8 verschiedene thematische Kapitel; zu jedem Kapitel gibt es:
(üblicherweise abwechselnd; aber: Ansagen beachten!)
– eine Vorlesungsstunde: Einführung in die theoretischen Grundlagen;
Besprechung des zugehörigen Aufgabenblatts mit mehreren Aufgaben
– eine betreute Übungsstunde im CIP-Pool (organische Chemie, OHP 3)
(weitere Aufgabenbearbeitung selbständig)
• alle Skriptseiten und alle Aufgabenblätter von meiner homepage als PDF-Dateien
herunterladbar:
http://ravel.phc.uni-kiel.de → teaching
→ Computer applications in physical chemistry
(Achtung: Inhalt kann sich während des Semesters noch ändern)
• bis Semesterende muß aus jedem Pflicht-Aufgabenblatt eine Aufgabe eigener Wahl
bearbeitet und abgegeben worden sein:
– abzugeben sind:
∗ mindestens: Programmtext
(als *.f- oder *.f95-Datei, oder als *.txt-Datei)
∗ ggf.: output, Antworten auf Fragen,
weitere Erläuterungen (z.B. bei Schwierigkeiten), etc.
∗ nicht!: ausführbare Programme
– Funktionierende Programme sind anzustreben.
In Ausnahmefällen reicht es, wenn für mich aus dem Programmtext klar
erkennbar ist, daß die Prinzipien verstanden wurden.
– Abgabe der Aufgaben am besten per e-mail: [email protected]
– Ich versuche, baldmöglichst zu antworten: Bestätigung, daß die Leistung ausreicht,
oder Bitte um Nachbesserungen.
• Kompensation (Einteilung Pflicht ↔ optional: s.u.):
– Bearbeitung eines optionalen Aufgabenblatts ersetzt die Bearbeitung eines PflichtAufgabenblatts
– Bearbeitung von mehr als einer Aufgabe eines Pflicht-Aufgabenblatts ersetzt
nicht die Bearbeitung eines anderen Pflicht-Aufgabenblatts
• Der Schein wird vergeben, wenn
1. die Anwesenheit in den Vorlesungen über 80% liegt, und
2. alle erforderlichen Aufgaben ausreichend bearbeitet wurden.
Prof. Dr. Bernd Hartke, Universität Kiel, [email protected]
Inhaltsplan
Voraussetzungen: keine!
-0- Fortran: Einführung in die grundlegenden Konzepte
-1- Integration: Trapezregel, Simpson, Gauß;
Anwendung: überall
(2) Zufallszahlen und Monte-Carlo-(MC)-Integration
Anwendung: MC-Simulationen von Gasen, Flüssigkeiten,. . .
Achtung: muß aus Zeitmangel diesmal voraussichtlich entfallen,
Übungsblatt ist trotzdem optional.
-3- gewöhnliche Differentialgleichungen (Euler, Runge-Kutta)
Anwendung: z.B. einzelne Gleichungen der Kinetik
-4- DGL-Systeme und partielle DGLs
Anwendung: komplizierte Kinetiken, klassische Mechanik, Quantenmechanik, Wärmeleitung, Elektrodynamik, Akustik, Strömungsdynamik,. . .
-5- Lösung linearer Gleichungssysteme (inkl. Matrixinversion);
Anwendung: überall, z.B. Regression ( Fit“) und Interpolation
”
(6) lineare Regression, χ2 -Statistik; nichtlineare Regression (Levenberg-Marquardt);
Spline-Interpolation;
Anwendung: z.B. Anpassung von Modellfunktionen an Meßdaten
(7) Matrixdiagonalisierung: Eigenwertproblem;
Anwendung: Quantenmechanik, stationäre Lösungen der Schrödingergleichung
-8- Suche nach Nullstellen und Extremwerten: Newton et al.
Anwendung: Lösung analytisch unlösbarer Gleichungen; zahlreiche Optimierungsprobleme
Pflicht-Aufgabenblätter: 0, 1, 3, 4, 5, 8
optionale Aufgabenblätter: 2, 6, 7
Prof. Dr. Bernd Hartke, Universität Kiel, [email protected]
Literaturempfehlungen:
• W. H. Press, B. P. Flannery, S. A. Teukolsky und W. T. Vetterling: Numerical
”
Recipes“, Cambridge University Press, Cambridge, 1990:
sehr gut geschriebene Einführung in die Grundalgorithmen der Numerischen Mathematik, mit Beispielprogrammen; weit verbreitetes Standardwerk.
• J. Stoer und R. Bulirsch: Numerische Mathematik 1 und 2“, Springer, Berlin, 8.
”
bzw. 4. erweiterte Auflage, 1999/2000:
bewährtes Standardwerk deutscher Mathe-Fakultäten zur Numerischen Mathematik,
bekannt für klare Darstellung.
• A. Neumaier: Introduction to Numerical Analysis“, Cambridge University Press,
”
Cambridge, 2001:
gutes Buch eines Genies in der Numerischen Mathematik
• H.-G. Roos und H. Schwetlick: Numerische Mathematik. Das Grundwissen für
”
jedermann.“, Teubner-Verlag, 1999:
speziell für Einsteiger verfaßtes Buch.
• H. R. Schwarz und J. Waldvogel (Hrsg.): Numerische Mathematik“, Teubner-Verlag,
”
1997:
umfassender Klassiker, aber etwas schwerer zugänglich.
• G. H. Golub und C. F. van Loan: Matrix Computations“, Johns Hopkins University
”
Press, 1989, 1993:
Klassiker zur linearen Algebra; ziemlich mathematischer“ Stil; für Detailinformationen
”
zu linearen Gleichungssystemen und zum Eigenwertproblem.
• S. J. Chapman: Fortran 90/95 for Scientists and Engineers“, McGraw-Hill, 1998:
”
umfassendes (874 S.), aktuelles, didaktisch gutes Fortran-Lehrbuch.
Prof. Dr. Bernd Hartke, Universität Kiel, [email protected]
Kurzeinführung: CIP-Pool
• Chemie-CIP-Pool in der Organik, Otto-Hahn-Platz 3, 1. Stock, Räume 118-120
• OC-CIP-Pool sollte tagsüber immer offen sein
• 24 Einzel-PCs, Ubuntu Linux (mit Windows in VirtualBox), vernetzt
• spezieller Benutzer für diesen Kurs ( Datenschutz“): numerik/christian
”
• zur Datensicherung eigene Speichermedien verwenden (z.B. USB-memory-sticks)
Kurzeinführung: Fortran-Compiler
Im Kurs wird der für Linux (und Windows) frei verfügbare gfortran-Compiler verwendet:
• Fortran90/95-Standard
• Kommandozeilen-basiert (keine graphische Benutzeroberfläche)
• Compileraufruf (in beliebigem Verzeichnis):
gfortran -o blabla blabla.f
erzeugt aus dem Fortran-Quelletext im file blabla.f“ ein ausführbares Programm
”
namens blabla“. Dies ist danach von der Eingabeaufforderung aufrufbar.
”
• Kurzhilfe via
gfortran -help
Mehr Informationen unter http://gcc.gnu.org/wiki/GFortran.
• Vorteil: all das auch auf eigenem PC zu Hause möglich
• Nachteil: Zusatzhilfen wie debugger, profiler, etc., oder Bibliotheken (BLAS, LAPACK,
IMSL, NAG, . . . ) müssen gesondert angefügt werden.
(Der freie debugger gdb ist installiert; der Umgang mit ihm ist allerdings nicht
ganz einfach.)
Kurzeinführung: Editor
• Fortran-Quelltext im Prinzip mit beliebigem Texteditor schreibbar
• aber: Text darf keine Formatierungs-Steuerzeichen enthalten!
(⇒ unter Windows: MS-Word weniger geeignet, lieber z.B. wordpad-Editor verwenden!)
• ansonsten natürlich volle Funktionalität jedes Editors nutzbar
• kommerzielle Programmierpakete enthalten oft einen speziellen Editor, der Programmiersprachen-spezifische Syntax-Unterstützung bietet (farbige Strukturen, shortcuts
für Kommandoblöcke, usw.; teilweise kann das auch der emacs-Editor, verfügbar im
OC-CIP-Pool).
Prof. Dr. Bernd Hartke, Universität Kiel, [email protected]
Kurzeinführung: Zeichenprogramm
• zur graphischen Darstellung berechneter Daten:
– Graphikerzeugung direkt im laufenden Programm, durch Aufruf geeigneter Routinen einer Graphik-subroutinen-Bibliothek (z.B. NAG)
Vorteil: keine programm-externe Datenmanipulation nötig
– Alternative: Ausgabe numerischer Resultate in Dateien, die danach durch unabhängige Graphikprogramme eingelesen und umgesetzt werden.
Vorteil: flexibler (in diesem Kurs nur diese Variante)
• unabhängige Plotprogramme: z.B. Origin unter Windows
Alternative für Origin-Ahnungslose: gnuplot: (freies Programm aus der Linux-Welt,
auch für Windows verfügbar):
– Aufruf von Kommandozeile (Windows: desktop-icon)
– online-Helpfunktionen: help plot, usw., oder help-button
– Festlegung des Linientyps:
set data style lines, set data styles linespoints, usw.
– Zeichnen analytischer Funktionen:
plot sin(x), plot exp(-0.5*x*x), usw.
– Abweichung der x,y-Achsenintervalle von der automatischen Vorgabe:
set xrange [1.0:5.0], set yrange [-0.7:-0.2], usw.
– Zeichnen diskreter x,y-Datenpunkte aus file output.dat“:
”
plot ’output.dat’
Dazu nötige Struktur des files output.dat“:
”
ein x-Wert und der zugehörige y-Wert pro Zeile; Reihenfolge der Daten legt
die Anfangs- und Endpunkte der Verbindungslinien fest.
– gnuplot kann noch viel mehr, z.B.: x,y-Plots aus mehrspaltigen Daten, Fehlerbalken, Feinkontrolle der Achsenmarkierungen, Plots auf-, über- und nebeneinander,
diverse Spline-Interpolationen, 3D-Kontur- und -Flächen-Plots mit variablem Betrachterblickwinkel, usw.; siehe online-Dokumentation.
Herunterladen