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.