Quantitative Systemwissenschaften G.W. Desch und G. Propst Institut für Mathematik und Wissenschaftliches Rechnen Karl-Franzens-Universität Graz Quantitative Systemwissenschaften 1: 1. Grundsätzliches zu mathematischen Modellen 2. Empirische Modelle und Regressionsgerade 3. Parameteranpassung durch kleinste Quadrate 4. Mengenbilanzen 5. Dimensionen und Einheiten 6. Simulation dynamischer Systeme 7. Fragestellungen zu dynamischen Systemen 8. Simulationsdiagramme Quantitative Systemwissenschaften 2: 9. Qualitative Analyse mathematischer Modelle 10. Verteilte Parameter 11. Diskrete deterministische Modelle 12. Diskrete probabilistische Modelle 1 2 1. Grundsätzliches zu mathematischen Modellen Viele Fragestellungen der Umweltwissenschaften werden mit Hilfe quantitativer Methoden bearbeitet. Gemeint ist hier insbesondere die Arbeit mit mathematischen Modellen von realen Systemen. Im Rahmen dieser Vorlesung verstehen wir unter einem “System” einen Teilbereich der Wirklichkeit, für den ein mathematisches Modell erstellt wird. Das ist eine Sammlung gekoppelter Gleichungen und Formeln, deren Lösungen einige der Eigenschaften des Systems wiedergeben oder sein Verhalten beschreiben. Das Modell wird mit Hilfe mathematischer und computergestützter Methoden untersucht. Sofern das Modell die Eigenschaften des Sytems gültig wiedergibt, ist die mathematische Untersuchung des Modells eine “Analyse” des Systems selbst. Daher gehört zur Systemanalyse in dieser Bedeutung insbesondere auch die Erstellung eines mathematischen Modells, die verständnisvolle Arbeit damit, seine Verbesserung, Anpassung oder - gegebenenfalls - Verwerfung. Ein genauerer Titel der vorliegenden Lehrveranstaltung wäre Modellbildung und Simulation. Populationen, mechanische Systeme, chemische Reaktoren, Biotope, Handelsbetriebe, Volkswirtschaften, Körperorgane, Klimasysteme: dies sind einige Beispiele für Teilbereiche der Realität, für deren Modellierung Methoden, die in dieser Vorlesung besprochen werden, angewendet werden können. Ein wesentlicher Aspekt mathematischer Modelle ist die vollständige Definiertheit ihrer Bestandteile. Dies macht sie erstens einer mathematischen Analyse zugänglich und kann zweitens zur quantitativen Berechnung konkreter Beispiele verwendet werden. Folgende Ziele können Zweck der mathematischen Modellbildung sein: • Modellbildungsprozess selbst: Aufdeckung von Wirkungszusammenhängen aufgrund systematischer Vorgangsweise, Erweiterung des Verständnisses des modellierten Systems • quantitative numerische Simulation und Prognose möglicher Entwicklungen • qualitative mathematische Analyse des Modells • Untersuchung von Auswirkungen der Änderung von Modell-Parametern • rechnerunterstützter Entwurf von Systemen (spart Zeit, vermeidet Risiko) • Identifikation von nicht oder nur sehr schwer messbaren Größen (z. B. Seismik (Erdöl), Computertomographie (Gewebe)) • Verbesserung oder Optimierung von Systemeigenschaften. Typische methodische Elemente der Bildung eines mathematischen Modells sind • Vereinfachung, Idealisierung • Festlegung des Wesentlichen, Weglassung von Unwesentlichem • schrittweises Vorgehen von einfach zu komplex • Versuch und Irrtum. In den Modellen können alle möglichen mathematischen Objekte verwendet werden, jedoch beeinflusst der jeweilige Zweck des Modells die Auswahl unter möglichen 1. GRUNDSÄTZLICHES ZU MATHEMATISCHEN MODELLEN 3 Modell-Typen. Grundsätzlich braucht ein Modell nicht komplizierter sein als für seinen Zweck erforderlich, selbst wenn das betrachtete System sehr komplex ist. Als Beispiel für ein mathematisches Modell mit dem Zweck einer Prognose betrachten wir die Verunreinigung eines Sees durch einen Schadstoff. Die Ursache der Verunreinigung spielt keine Rolle, jedenfalls wird nach dem Zeitpunkt t = 0 kein Schadstoff mehr zugeführt. Die zu beantwortende Frage lautet: Wie lange wird es dauern, bis – allein auf Grund der Strömung – die Schadstoffkonzentration im See auf 10% der Anfangskonzentration reduziert ist? Der See hat das konstante Volumen V , pro Tag strömen r m3 Wasser zu und ab. Zur Vereinfachung nehmen wir an, dass der Schadstoff immer gleichmäßig im See verteilt ist. Dann ändert sich die Schadstoffkonzentration S(t) gemäß der Mengenbilanz (dies wird später mehrmals genauer erläutert) Änderung der Menge Schadstoff im See = Schadstoff Zufluss - Schadstoff Abfluss, d (V S(t)) = 0 − rS(t). dt Die Lösung dieser Differentialgleichung (darüber wird später mehr gesagt) mit der Anfangsbedingung S(0) = S0 ist S(t) = S0 e−rt/V . Der gesuchte Zeitpunkt T ist jener, für den S(T ) = S0 /10, also T = ln(10) · V /r. Für den Lake Michigan ist V = 4.871 × 1012 m3 und r = 4.331 × 108 m3 /Tag, also T=25897 Tage = 71 Jahre. Natürlich enthält das Modell Vereinfachungen, z.B. die Annahme der totalen Vermischung, die aber den Abfluss an Schadstoff eher beschleunigen würde; andererseits sind Schadstoff vermindernde Prozesse wie chemische Reaktionen oder Sedimentation ausser Acht gelassen. Der springende Punkt der Brauchbarkeit eines mathematischen Modells für den angepeilten Zweck ist die Güte des Modells. Das System wird beobachtet, es gibt qualitative und ev. quantitative Daten. Die Güte des mathematischen Modells wird an Hand des Grads der Übereinstimmung der “Vorhersagen” des Modells mit den Daten bewertet. Diese Übereinstimmung wird mitunter quantifiziert (z.B. Summe der FehlerQuadrate) und durch geignete Wahl der Modellparameter optimiert. Wenn das Modell allerdings strukturell falsch ist, dann gibt es keine geeigente Wahl von Parametern und die Modellbildung ist (vorläufig) gescheitert. Im Laufe der Vorlesung werden die dargestellten Methoden der mathematischen Modellbildung und Analyse an Hand von Beispielen erläutert. Dabei kommt es nicht darauf an, dass die Modelle möglichst ausgefeilt sind, vielmehr werden allgemeine Modellierungsprinzipien an Hand einfacher Beispiele besprochen. Ferner wird demonstriert, wie man mathematische Modelle am Computer verwendet und untersucht. Es ist ja die Verfügbarkeit von Rechenleistung, bedienungsfreundlicher Software und graphischer Darstellung ein Hauptfaktor der zunehmenden Anwendung von Systemanalyse, die auf mathematischer Modellbildung beruht. 4 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 2. Empirische Modelle und Regressionsgerade 2.1. Graphische Darstellung der Daten. Beispiel 2.1. Die folgende Tabelle zeigt die Bevölkerung der Vereinigten Staaten im Zeitraum von 1790 bis 1950 (in Einheiten zu tausend Einwohnern). 1790 3929 1800 5308 1810 7240 1820 9638 1830 12866 1840 17069 1850 23192 1860 31443 1870 38558 1880 50156 1890 62948 1900 75995 1910 91972 1920 105711 1930 122775 1940 131669 1950 150697 Gesucht ist ein einfaches Modell, das erlaubt, aus diesen Daten das weitere Wachstum der Population vorauszusagen. Für die folgenden Untersuchungen benennen wir mit t die Zeit, in Jahren, und mit P (t) die Population zum Zeitpunkt t, in tausend Einwohnern. Abbildung 2.1 zeigt die Daten graphisch. Wir haben die Datenpunkte hier mit Geradenstücken verbunden, um die Graphik deutlicher zu machen. Wesentlich deutlicher als aus der Tabelle werden die Wachstumstrends sichtbar. Die Steigung der Geradenstücke repräsentiert die Bevölkerungszunahme in den einzelnen Jahrzehnten. Wir sehen, daß die Bevölkerung im gesamten betrachteten Zeitraum zunimmt, und daß auch die Wachstumsrate zunächst zunimmt. Etwa ab 1900 wird aber der Zuwachs wieder flacher. Als eine mögliche Erklärung bietet sich an: Im ungeheuer großen Lebensraum der Vereinigten Staaten entwickelt sich die Population zunächst ungehemmt, je größer die Population, desto mehr Nachkommen. Mit immer dichterer Bevölkerung werden aber Mechanismen wirksam, die das Wachstum einbremsen, geringere Kinderfreudigkeit und/oder erhöhte Sterblichkeit bewirken. Ein gutes Modell müßte diese Effekte wiedergeben können. Wenn wir das Phänomen nicht grob vereinfachend als Beispiel, sondern ernsthaft analysieren wollten, sollten wir jetzt Bevölkerungsstatistiken heranziehen und herausfinden, ob der Wachstumsrückgang auf eine höhere Sterblichkeit oder eine 5 6 Abbildung 2.1. Population der USA x10 4 Population der USA 16 o 14 o o 12 o Population 10 o 8 o o 6 o 4 o o o 2 0 1780 o o o 1800 o o 1820 o 1840 1860 1880 1900 1920 1940 1960 Jahr geringere Geburtenrate zurückzuführen ist. Wir wollen für dieses Beispiel annehmen, daß uns zur Modellbildung nicht mehr als die obigen Daten und unser Hausverstand zur Verfügung steht. Wir werden zunächst nicht auf die Vorgänge und Zusammenhänge innerhalb der Population, also Geburts- und Sterbeprozesse, eingehen, sondern nur versuchen, welche Formeln möglichst gut zu den gemessenen Daten passen. Merksatz 2.2. Ein empirisches mathematisches Modell ist eine Gleichung, die das Verhalten eines Systems mit möglichst wenig Aufwand möglichst treffend wiedergibt. Zur Ableitung eines empirischen Modells werden nicht Naturgesetze und die Funktionsweise des Systems herangezogen, sondern nur die Form des Datenmaterials und eine Funktion, von der man weiß, daß sie ähnlich verläuft. Der Vorteil eines empirischen Modells liegt darin, daß es einfach in der Handhabung und mit wenig Aufwand zu erstellen ist. Der Nachteil liegt darin, daß es zwar die Systemeigenschaften beschreibt, aber keine Erklärung liefert, welche Ursachen diese Eigenschaften bewirken. 2.2. Regressionsgerade. Das einfachste empirische Modell ist eine Geradengleichung. Man spricht von der Regressionsgeraden an einen Datensatz. P (t) ≈ kt + d. 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 7 Abbildung 2.2. Regressionsgerade x10 4 Population USA - lineare Regression 16 o 14 o o 12 o 10 Population o 8 o o 6 o 4 o o o 2 0 o -2 1780 o 1800 o o 1820 o o 1840 1860 1880 1900 1920 1940 1960 Jahr Die Parameter k und d werden so bestimmt, daß die Gerade möglichst genau den Datensatz wiedergibt. Abbildung 2.2 zeigt den Datensatz mit eingezeichneter Regressionsgerade: Wir sind mit diesem Modell nicht zufrieden, sondern beobachten die folgenden Fehler: • Die Datenpunkte liegen nicht genau auf der Geraden. Aber das sollte uns nicht stören, denn perfekte Daten, und schon gar perfekte Modelle gibt es nicht. Jedes Modell ist eine Vereinfachung und kann den Datensatz nicht genau wiedergeben. • Die Datenpunkte liegen nicht “wie zufällig” um die Gerade gestreut, sondern der Datensatz zeigt deutliche Trends, die das Modell nicht wiedergibt, und die wir oben beschrieben haben. Das Modell versagt in der Wiedergabe wesentlicher Eigenschaften des Systems und wird daher verworfen. An einem Beispiel mit weniger Rechenaufwand soll gezeigt werden, wie man eine Regressionsgerade berechnet. Beispiel 2.3. Bestimme die Regressionsgerade y ≈ kx + d zum folgenden Datensatz: x 0 1 2 3 4 y 1 1 2 6 5 Lösung. Gegeben sind n = 5 Datenpaare (x1 , y1 ), · · · , (x5 , y5 ). Wir erstellen eine Tabelle aus den Werten von xi , yi , xi yi und x2i und summieren die Spalten: 8 Abbildung 2.3. Regressionsgerade zu Beispiel 2.3 Regressionsgerade 6 o 5 o y 4 3 2 o 1o 0 0 o 0.5 1 1.5 2 2.5 3 3.5 4 x x y xy x2 0 1 0 0 1 1 1 1 2 2 4 4 3 6 18 9 4 5 20 16 10 15 43 30 n = 5 ist die Anzahl der Datenpaare. Wir bestimmen zunächst die Mittelwerte nach den Formeln n 1X 10 x= xi = = 2, n i=1 5 n 1X 15 y= yi = = 3. n i=1 5 Die Steigung der Geraden errechnet sich nach der Formel Pn 1 xi yi − x · y k = n1 Pi=1 n 2 2 i=1 xi − (x) n = 43 −3·2 5 30 − 22 5 = 1.3. Der Parameter d wird dadurch bestimmt, daß die Gerade durch die Mittelwerte geht: kx + d = y 1.3 · 2 + d = 3 d = 0.4. Abbildung 2.3 zeigt den Datensatz und seine Regressionsgerade. Auf die graphische Darstellung als Probe sollte man nicht verzichten. ¤ 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 9 Merksatz 2.4. Gegeben sei ein Satz von n Datenpaaren (x1 , y1 ), · · · , (xn , yn ). Die Regressionsgerade y = kx + d errechnet man nach folgenden Formeln: n 1X x= xi , n i=1 n 1X yi , n i=1 Pn 1 xi y i − x · y k = n1 Pi=1 , n 2 2 i=1 xi − (x) n d = y − kx. y= Wissenschaftliche Taschenrechner und Statistikprogramme auf Computern berechnen Regressionsgeraden automatisch. 2.3. Exponentialfunktion und logarithmische Darstellung. Wie schon bemerkt, eignet sich die Regressionsgerade nicht zur Beschreibung der Population aus Beispiel 2.1. Kleine Populationen, deren Wachstum nicht durch die Beschränkungen ihres Lebensraumes behindert werden, kann man durch Exponentialfunktionen modellieren: P (t) ≈ Cekt . Dabei sind die Parameter C und k so zu wählen, daß der Datensatz möglichst gut wiedergegeben wird. Ein Blick auf Abbildung 2.1 zeigt, daß die Exponentialgleichung nicht den gesamten Datensatz gut wiedergeben wird, denn die Exponentialfunktion ist konvex, d.h. ihre Steigung nimmt ständig zu, während die Steigung der beschriebenen Population ab etwa 1900 abnimmt. Es wäre aber denkbar, daß sich die Population in den Jahren davor, solange sie noch klein ist, durch eine Exponentialfunktion hinreichend gut beschreiben läßt. Leider ist das Beurteilen einer Kurve, ob sie etwa eine Parabel, eine Exponentialkurve, oder vielleicht eine Hyperbel ist, mit dem freien Auge so gut wie unmöglich. Wir verwenden einen Trick, der die Exponentialfunktion auf eine Gerade reduziert: Wir gehen von der Gleichung einer Exponentialfunktion aus und nehmen (natürliche) Logarithmen: P (t) ≈ Cekt ln(P (t)) ≈ ln(Cekt ) = ln(C) + ln(ekt ) = ln(C) + kt. Setzen wir y(t) = ln(P (t)), d = ln(C), so erhalten wir eine Geradengleichung y(t) ≈ kt + d. 10 Abbildung 2.4. Logarithmischer Plot Population USA - log-Plot 14 13 12 log(P) o o o o o o o 11 o o o o 10 o o o 9 o o o 8 1780 1800 1820 1840 1860 1880 1900 1920 1940 1960 Jahr Gegeben sind die Daten von t1 , t2 , · · · und P (t1 ), P (t2 ), · · ·. Wir berechnen die Werte y1 = ln(P (t1 )), y2 = ln(P (t2 )), usw. und tragen y gegen t auf. Wenn sich eine Gerade ergibt, genügt P einem Exponentialgesetz (Abbildung 2.4). t P ln(P ) 1790 3929 8.28 1800 5308 8.58 1810 7240 8.89 1820 9638 9.17 1830 12866 9.46 1840 17069 9.75 1850 23192 10.05 1860 31443 10.36 1870 38558 10.56 1880 50156 10.82 1890 62948 11.05 1900 75995 11.24 1910 91972 11.43 1920 105711 11.57 1930 122775 11.72 1940 131669 11.79 1950 150697 11.92 Die Graphik zeigt eine sehr gute Übereinstimmung mit einer Geraden für etwa die ersten 8 Datenpaare. Wir haben für diese Daten die Regressionsgerade berechnet und eingezeichnet. Diese Rechnung führt auf k = 0.0295, d = −44.55. 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 11 Abbildung 2.5. Population der USA - Exponentialapproximation x10 5 Population USA - Fit durch Exponentialfunktion 3 2.5 Population 2 1.5 o o o o 1 o o o 0.5 o o 0 1780 o o 1800 o o 1820 o o 1840 o o 1860 1880 1900 1920 1940 1960 Jahr Der Parameter C errechnet sich aus d: d = ln(C), ed = C, C = e−44.55 = 4.48 · 10−20 Als empirisches Modell für die Jahre zwischen 1790 und 1860 erhalten wir P (t) ≈ 4.48 · 10−20 · e0.0295t = e0.0295t−44.55 Zur Überprüfung tragen wir jetzt P (t) und die Approximation gegen t auf. Bei der Bewertung der Güte der Näherung ist zu beachten, daß nur die ersten 8 Datenpaare gefittet wurden. Die weitere Entwicklung wird durch die Exponentialfunktion völlig falsch wiedergegeben (Abbildung 2.5). Man sieht daraus, daß auch ein Modell, das gegenwärtige Zustände exzellent beschreibt, die Zukunft nicht immer richtig vorhersagt. Merksatz 2.5. Gegeben sei ein Satz von Datenpaaren (x1 , y1 ), · · · , (xn , yn ). Einen logarithmischen Plot von y über x erstellt man, indem man die Logarithmen der Daten zi = ln(yi ) über xi aufträgt. Ergibt der logarithmische Plot eine Gerade z ≈ kx + d, so genügen die Originaldaten einem Exponentialgesetz: y ≈ Cekx , dabei ist C = ed . Logarithmische Plots kann man auch verwenden, wenn die Zahlenwerte eines Datensatzes sich um viele Zehnerpotenzen unterscheiden und im linearen Plot die kleinen Zahlen nur mehr auf der Nullinie “kleben”. 12 2.4. Andere Transformationen. Auch andere Modelle als die Exponentialkurve lassen sich durch geschickte Transformation der Variablen auf Geraden reduzieren. Beispiel 2.6. In einer Lösung zerfällt ein chemischer Stoff X. Alle Viertelstunden wird die Konzentration von X gemessen. Mit ti bezeichnen wir die Zeitpunkte (in Minuten), mit ui die gemessenen Konzentrationen (in Mol pro Liter). t u 0 0.0190 15 0.0130 30 0.0091 45 0.0069 60 0.0057 75 0.0052 90 0.0043 105 0.0039 120 0.0035 Die Zerfallsreaktion heißt eine Reaktion m-ter Ordnung, wenn zum Eintreten der Reaktion m Moleküle von X zusammentreffen müssen. Bei einer Reaktion erster Ordnung genügt die Konzentration einem Exponentialgesetz u(t) = Ce−kt . Bei einer Reaktion höherer Ordnung entspricht die Konzentration dem Gesetz 1 u(t) = (kt + d)− m−1 . Welche Ordnung hat die beschriebene Reaktion? Wie lauten die Parameter für das Zerfallsgesetz? (Die Daten dieses Beispieles sind fiktiv.) Lösung. Wir beginnen mit einer graphischen Darstellung der Daten (Abbildung 2.6). Man sieht deutlich das Abnehmen der Konzentration, aber es ist schwer, zu entscheiden, ob es einer Exponentialkurve oder einer Hyperbel folgt. Um das Exponentialgesetz zu überprüfen, versuchen wir einen logarithmischen Plot (Abbildung 2.7): t u ln(u) 0 0.0190 -3.96 15 0.0130 -4.34 30 0.0091 -4.70 45 0.0069 -4.98 60 0.0057 -5.17 75 0.0052 -5.26 90 0.0043 -5.45 105 0.0039 -5.55 120 0.0035 -5.65 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 13 Abbildung 2.6. Daten aus Beispiel 2.6 Konzentration 0.02 o 0.018 0.016 0.014 Mol/Liter o 0.012 0.01 o 0.008 o 0.006 o o o 0.004 0.002 0 20 40 60 80 o 100 o 120 Minuten Abbildung 2.7. Log-Plot zu Beispiel 2.6 Konzentration - log-Plot -3.5 log(Konzentration) -4 o o -4.5 o o -5 o o o -5.5 o o -6 0 20 40 60 80 100 120 Minuten Wir haben zum Vergleich die Regressionsgerade eingezeichnet, aber man sieht mit freiem Auge, daß die Daten durchaus einer gekrümmten Kurve und keiner Geraden folgen. Die Reaktion ist bestimmt nicht erster Ordnung. 14 Abbildung 2.8. Plot der Reziprokwerte zu Beispiel 2.6 Konzentration - transformiert 300 o o 250 1/Konzentration o 200 o o 150 o o 100 o 50 o 0 20 40 60 80 100 120 Minuten Um eine Reaktion zweiter Ordnung ins Auge zu fassen, verwenden wir eine andere Transformation: u(t) ≈ 1 kt + d 1 ≈ kt + d. u(t) 1 kommen wir auf eine Geradengleichung. Wir tragen also den Mit y(t) = u(t) Reziprokwert von u gegen t auf (Abbildung 2.8): 1 t u u 0 0.0190 52.63 15 0.0130 76.92 30 0.0091 109.89 45 0.0069 144.93 60 0.0057 175.44 75 0.0052 192.31 90 0.0043 232.56 105 0.0039 256.41 120 0.0035 285.71 Die Übereinstimmung mit einer Geraden ist sehr gut. Wir nehmen daher an, daß eine Reaktion zweiter Ordnung stattfindet. Die Formeln der Regressionsgeraden liefern die Parameter für k und d: k = 1.96, d = 52.08, u(t) ≈ 1 . 1.96t + 52.08 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 15 Abbildung 2.9. Daten und Approximation als Reaktion zweiter Ordnung Konzentration 0.02 o 0.018 0.016 0.014 Mol/Liter o 0.012 0.01 o 0.008 o 0.006 o o o 0.004 0.002 0 20 40 60 80 o 100 o 120 Minuten Als Probe tragen wir noch einmal die Originaldaten und die Approximation auf (Abbildung 2.9) ¤ Wir geben noch einige Transformationen an, mit denen sich nichtlineare Modelle auf Geraden reduzieren lassen: Merksatz 2.7. Die folgenden Transformationen führen Funktionen y(x) in Geraden über: 1 (s = x) z = y1 z = ax + b 1) y(x) = ax+b ax 1 1 2) y(x) = x+b s= x z=y z = ab s + a1 y ax s= x (z = y) y = −bs + a 3) y(x) = x+b 4) y(x) = Ceλx (s = x) z = ln(y) z = λx + ln(C) λx 5) y(x) = Ce (s = x) z = log10 (y) z = λ log10 (e)x + log10 (C) 6) y(x) = Cxα s = ln(x) z = ln(y) z = αs + ln(C) α 7) y(x) = Cx s = log10 (x) z = log10 (y) z = αs + log10 (C) 8) y(x) = Cxeλx (s = x) z = ln( xy ) z = λx + ln(C) Manche dieser Transformationen haben Namen: 2) Lineweaver-Burk Transformation 3) Eadie-Hofstee Transformation 4,5) Logarithmische Transformation 6,7) Doppelt logarithmische Transformation Merksatz 2.8. Verwendung von Merksatz 2.7: Gegeben sind Datenpaare (x1 , y1 ), · · · , (xn , yn ) und ein empirisches Modell y ≈ f (x). Die Parameter des empirischen Modells sind an die Daten anzupassen. 16 • Berechne aus den gegebenen Daten xi und yi die Daten si und zi . • Trage z über s auf. Wenn der Plot annähernd eine Gerade ergibt, paßt das empirische Modell zu den Daten. • Bestimme die Parameter der Regressionsgeraden z ≈ ks + d. • Berechne die Parameter des Modells aus den Parametern der Regressionsgeraden. • Graphische Probe mit xi , yi . Zum Beispiel für die Lineweaver-Burk Transformation sieht der vorletzte Schritt so aus: seien k und d die Parameter der s, z-Geraden, dh. k = ab , d = a1 . Daraus folgt a = d1 , b = ak = kd , also y(x) = 1 x d x+ k d = x . dx + k Wir haben hier nur sehr einfache empirische Modelle behandelt, insbesondere solche, die nur zwei Größen in Beziehung setzen. Die mathematische Statistik bietet unter dem Namen (lineare und nichtlineare) Regression Methoden zur Anpassung und Validierung (dh. Beurteilung der Gültigkeit) viel komplexerer Modelle an umfangreichere Datensätze an. 2.5. Rechnen und Erstellen von Graphiken. Während der Vorlesung werden die besprochenen Rechnungen und graphischen Darstellungen am Computer demonstriert. Es gibt viele Nummerik-Pakete, die für diese Zwecke geeignet sind. Eines davon ist Matlab (professionell aber teuer), das auf vielen Rechnern in den Benutzerzentren der KFU (bzw. am Terminalserver des ZID) installiert ist. Auf der Seite http://www.uni-graz.at/georg.propst/teaching propst.html sind Verknüpfungen zu Einführungen in Matlab abrufbar. Ausserdem bietet Matlab selbst ausführliche Hilfe und eine Einführung. In diesem Skriptum sind einige der verwendeten Matlab Kommandos abgedruckt, um ein Gefühl für die Logik bei der Arbeit am Computer zu vermittlen. Die Beherrschung der Syntax einer Programmiersprache ist aber kein Lehrziel dieser Vorlesung. Matlab ist eine interaktiv verwendbare Software, das heisst der Benützer gibt im command window (Eingabeaufforderung >>) Befehle ein, die bei Betätigung der Eingabetaste (←-) sofort ausgeführt werden. Mehrmals zu verwendende Befehle schreibt man in sogenannte script files (mit der Erweiterung .m), deren Befehlszeilen bei Aufruf des filenamens ausgeführt werden. Also schreibt man eine Datei, namens chemdata.m, sagen wir, die die Zeilen t=[0:15:120]; u=[0.019 .013 .0091 .0069 .0057 .0052 .0043 .0039 .0035]; lu=log(u); 2. EMPIRISCHE MODELLE UND REGRESSIONSGERADE 17 enthält, sodass im command window bei der Anweisung >>chemdata ←den Vektoren t und p die Werte des obigen Beispiels zugewiesen werden. lu ist ein beliebig gewählter Variablen-Name für einen Vektor, der die Ergebnisse von log(u) enthalten soll. Die Matlab function log berechnet komponentenweise den logarithmus naturalis (zur Basis e) des Vektors u. Ein Strichpunkt am Ende einer Befehlszeile unterdrückt die manchmal unerwünschte Ausgabe der Ergebnisse des Befehls im command window. Mit der Matlab function polyfit, >>c=polyfit(t,lu,1) ←werden die Koeffizienten des Polynoms ersten Grades, das die Punkte (ti , ln ui ), i = 1, . . . 9, interpoliert, unter c gespeichert. Das heisst der erste Koeffizient c(1) ist die Steigung k der Regressionsgeraden, der zweite ist ihr Wert d auf der senkrechten Achse. Mit >>rg=c(1)*t+c(2); ←werden daher die Werte rg(i) der Regressionsgeraden im Vektor rg gespeichert. Die Graphik in Abbildung 2.7 erhält man dann mit >>plot(t,lu,’o:’,t,rg,’-’) ←Die Punkte (t(i),lu(i)) werden als kleine Kreise eingezeichnet und mit punktierten Geradenstücken verbunden (Linientyp ’o:’), und die Punkte (t(i),rg(i)) werden nur mit durchgezogenen Geradenstücken verbunden (Linientyp ’-’). 18 3. Parameteranpassung durch kleinste Quadrate 3.1. Logistisches Modell für Populationswachstum. Wir haben die Populationsdaten der USA aus Beispiel 2.1 bis jetzt nicht zufriedenstellend modelliert, die Exponentialfunktion eignet sich nur für die Phase des lawinenartigen Wachstums. Um den gesamten Datensatz zu modellieren, brauchen wir eine Funktion, die zunächst fast exponentiell anwächst, die aber später einen Wendepunkt durchläuft und konkav (also mit Rückgang des Wachstums) fortfährt. Ein Beispiel einer solchen S-förmigen Funktion ist die logistische Funktion (siehe Abbildung 3.1): et . 1 + et Auf der Basis dieser Funktion formulieren wir als Modellgleichung f (t) = (3.1) e P (t) = K t−t0 τ t−t0 . 1+e τ Die Größen K > 0, t0 ∈ R und τ > 0 sind dabei freie Parameter, wir werden sie so wählen, daß dadurch der Datensatz möglichst genau wiedergegeben wird. Wir werden später sehen, daß es auch ein einfaches Strukturmodell gibt, das auf genau diese Funktion führt. Vorläufig sehen wir die Gleichung einfach als ein empirisches Modell an, eine Funktion, die das augenfällige Erscheinungsbild des Datensatzes mehr oder weniger gut wiedergeben kann. Es gibt natürlich viele andere Funktionen mit ähnlichen Kurven, die wir ebensogut heranziehen könnten. Bestechend an der logistischen Funktion ist zunächst die verhältnismäßig einfache Formel. Wir werden in den nächsten beiden Unterabschnitten die Modellgleichung mit Papier und Bleistift untersuchen. Wir wollen damit herausfinden, ob sie zur Modellierung des Abbildung 3.1. Logistische Funktion Logistische Funktion 1 0.9 0.8 0.7 logit(x) 0.6 0.5 0.4 0.3 0.2 0.1 0 -3 -2 -1 0 x 1 2 3 3. PARAMETERANPASSUNG DURCH KLEINSTE QUADRATE 19 Abbildung 3.2. Der Parameter K in Modell 3.1 2 1.8 1.6 1.4 P 1.2 1 0.8 0.6 0.4 0.2 0 -4 -3 -2 -1 0 1 2 3 4 t t0 = 0, τ = 1; durchgezogen: K = 1, strichliert: K = 2, strichpunkt: K = 0.5. Systems grundsätzlich geeignet scheint, und welche Eigenschaften ein System hat, das durch diese Gleichung beschrieben wird. In den späteren Abschnitten werden wir eine Methode zur Bestimmung der Parameter kennenlernen. 3.2. Auswirkung der Parameter. Merksatz 3.1. Ein empirisches Modell sollte nur mit sovielen freien Parametern ausgestattet werden, wie unbedingt nötig sind, damit es dem Datensatz vernünftig angepaßt werden kann. Die Parameter sollten möglichst unabhängige und verschiedenartige Auswirkungen auf den Verlauf der Funktion nehmen. Besonders günstig sind Parameter, die eine anschauliche Interpretation zulassen. Zuviele Parameter (“Überparametrisierung”) führen zu folgenden Problemen: • Lange Parametertabellen sind unübersichtlich, und die enthaltene Information ist nur schwer abzulesen. • Fast jeder Datensatz kann irgendwie dargestellt werden, man findet nicht heraus, ob das Modell die Situation wirklich treffend karikiert. • Wenn mehrere Parameter fast dieselbe Auswirkung auf den Verlauf der Funktion haben, können annähernd gleiche Datensätze durch sehr verschiedene Parameter gefittet werden: Wir sagen, die Parameter hängen instabil von den Daten ab. An den Zahlenwerten der Parameter kann man dann nicht mehr sehen, ob man das Modell zwei sehr verschiedenen oder sehr ähnlichen Datensätzen angepaßt hat. • Der Rechenaufwand zum Anpassen vieler Parameter ist groß, die Programme können durch die unvermeidbaren Rechenungenauigkeiten unzuverlässig werden, vor allem dann, wenn die Parameter instabil von den Daten abhängen. Wir wollen, bevor wir uns auf die Technik der Parameteranpassung einlassen, beurteilen, welche Rolle die Parameter im Modell 3.1 spielen. Alle drei Parameter sind hier leicht zu erklären. 20 Abbildung 3.3. Der Parameter t0 in Modell 3.1 1 0.9 0.8 0.7 P 0.6 0.5 0.4 0.3 0.2 0.1 0 -5 -4 -3 -2 -1 0 1 2 3 4 5 t K = 1, τ = 1; durchgezogen: t0 = 0, strichliert: t0 = 1, strichpunkt: t0 = −1. K skaliert die Größe der Population, bei Verdoppelung von K liefert das Modell doppelt so große Populationen. Die Population liegt stets zwischen 0 und K, denn e(t−t0 )/τ < 1, 1 + e(t−t0 )/τ der Nenner ist immer um 1 größer als der Zähler. Abbildung 3.2 zeigt das Modell bei verschiedenen Werten von K. 0< Eine Änderung von t0 bewirkt eine Parallelverschiebung der Kurve in t-Richtung um den Betrag t0 . Abbildung 3.3 zeigt das Modell bei verschiedenen Werten von t0 . Am deutlichsten erkennt man die Auswirkung von t0 , wenn man die Verschiebung des Wendepunktes beobachtet. Der Parameter τ skaliert die Zeit, er gibt an, wie schnell sich die Population entwickelt, wie schnell also die Kurve der Funktion durchlaufen wird. Die Zeit t geht mit dem 0 in die Modellgleichung ein. Bei Verdoppelung von τ halbiert sich dieser Exponenten t−t τ Exponent. Die Entwicklung der Population erfolgt nur halb so schnell. Abbildung 3.4 zeigt das Modell bei verschiedenen Werten von τ . 3.3. Eigenschaften des logistischen Modells. Merksatz 3.2. Ein empirisches Modell steht und fällt damit, ob es das Verhalten des dargestellten Systems treffend wiedergibt. Das qualitative Verhalten eines einfachen Modells kann man mit Hilfe von Grenzwert- und Differentialrechnung, zum Beispiel mit einer Kurvendiskussion beurteilen. 3. PARAMETERANPASSUNG DURCH KLEINSTE QUADRATE 21 Abbildung 3.4. Der Parameter τ in Modell 3.1 1 0.9 0.8 0.7 P 0.6 0.5 0.4 0.3 0.2 0.1 0 -5 -4 -3 -2 -1 0 1 2 3 4 5 t K = 1, t0 = 0; durchgezogen: τ = 1, strichliert: τ = 2, strichpunkt: τ = 0.5. Wir fassen einige wichtige Eigenschaften des logistischen Modells zusammen: (1) P (t) ist immer positiv. (2) P (t) ist immer kleiner als K. (3) limt→∞ P (t) = K, limt→−∞ P (t) = 0. 0 (4) Ist t−t tief im negativen Bereich (also t viel kleiner als t0 ), so gilt τ t−t0 näherungsweise P (t) ≈ Ke τ . (5) P (t) ist monoton wachsend. (6) Für t < t0 ist P konvex, für t > t0 ist P konkav. An t = t0 , P = K2 liegt der Wendepunkt. Diese Eigenschaften des logistischen Modells (3.1) lassen sich aus Abbildung 3.1 ablesen (man beachte, dass K und τ positiv sind), und sind mit Hilfe der ersten und der zweiten Ableitung von P (t) mathematisch beweisbar. Welche Bedeutung haben diese Eigenschaften im Zusammenhang mit der Modellierung einer Population? (1) Wenn das Modell nicht positive Bevölkerungszahlen voraussagen würde, wäre es unsinnig. (2) Das logistische Modell sagt voraus, daß der Lebensraum keine größere Population als K tragen kann. Wir bezeichnen K auch als die Kapazität des Lebensraumes. Aus dem Datensatz können wir nicht ablesen, ob das für das System “Population der USA” wirklich zutrifft, aber es ist plausibel. (3) Davon ist vor allem der Grenzwert für t → ∞ interessant: Das Modell sagt voraus, daß sich auf Dauer die Populationsdichte der Kapazität annähert. 22 (4) Das logistische Modell sagt voraus: Solange die Population noch viel kleiner als K ist, folgt sie ungefähr einem Exponentialgesetz. Wir haben schon gesehen, daß das sehr gut auf unsere Daten paßt. (5) Eine Population mit einem signifikanten Bevölkerungsrückgang läßt sich nicht mit Modell (3.1) darstellen. (6) Konvexität bedeutet, daß die Wachstumsrate zunimmt, Konkavität, daß die Wachstumsrate abnimmt. Der Wechsel von konvex zu konkav im Wendepunkt simuliert unsere Beobachtung, daß das Bevölkerungswachstum der USA in den letzten beobachteten Jahrzehnten zurückgegangen ist. Mit Hilfe der Information aus Punkt (6) und (4) kann man graphisch die Parameter K, τ und t0 schätzen. Betrachtet man Abbildung 2.1 und sucht nach der geeignetsten Stelle für den Wendepunkt, drängt sich die Stelle t = 1910 auf. Zu diesem Zeitpunkt war die Größe von P etwa 90000. Wegen Punkt (6) wählen wir daher t0 = 1910 und K = 180000. Sind t0 und K einmal fixiert, kann man sie und eines der Datenpaare (t, P (t)) aus Beispiel 2.1 in das Modell (3.1) einsetzen. Dies ergibt eine Gleichung aus der man eine Schätzung für τ ausrechnen kann. Für jedes der Datenpaare würde man voneinander geringfügig abweichende Werte für τ bekommen. Eine kürzere Variante benützt die Information aus Punkt (4): für die Anfangsjahre wird die logistische Funktion durch die Exponentialfunktion P (t) = Ke(t−t0 )/τ approximiert. Setzt man das Jahr 1790, P ≈ 4000 und die bereits bestehenden Schätzungen für t0 und K ein, ergibt sich 4000 = 180000e(1790−1910)/τ , also τ = −120/ ln 4 ≈ 31.52 180 In diesem Beispiel kommt man relativ schnell zu einer Schätzung der Modellparameter aus den Daten. In anderen Situationen wird man andere Ideen und Tricks suchen und probieren müssen. Insbesondere kann man versuchen, mit mathematischen Methoden Parameter-abhängige Merkmale des Modells zum Vorschein zu bringen. In unserem Beispiel könnten wir nun die geschätzten Parameter verwenden und eine graphische Probe machen. Durch ’Drehen’ an den Parametern könnten wir eventuell noch eine Verbesserung der Anpassung erreichen. Es gibt aber eine systematische Vorgangsweise, die optimalen Parameter zu suchen: 3. PARAMETERANPASSUNG DURCH KLEINSTE QUADRATE 23 Abbildung 3.5. Daten und Approximationsfehler x10 5 Approximationsfehler 1.8 * * 1.6 o * 1.4 o * Population 1.2 o o 1 * o 0.8 *o o 0.6 o 0.4 o * o o 0.2 0 1780 o * o * 1800 o * o * 1820 o * o * 1840 * * * * 1860 1880 1900 1920 1940 1960 Jahr Kreise: Daten, Sterne: Modellvoraussage 3.4. Methode der kleinsten Quadrate. Nur sehr einfache Modelle erlauben eine Schätzung der Parameter mit graphischen Methoden wie oben. Die folgende Methode funktioniert auch für komplizierte Modelle und läßt sich automatisieren. Um sie zu erklären, zeigen wir in Abbildung 3.5 die Daten und den Verlauf des Modells (3.1) mit Parametern, die wir absichtlich so gewählt haben, daß die Daten schlecht wiedergegeben werden. (Die Parameter sind K = 200000, t0 = 1910, τ = 20.) Kreise bedeuten die Felddaten, die Sterne sind die Populationswerte, die das Modell voraussagt. Jedes Felddatum weicht vom Fit, dem vorausgesagten Wert, um einen gewissen Wert ab, den Approximationsfehler. Durch senkrechte Linien haben wir den Approximationsfehler deutlich gemacht. Für das Jahr 1950 liefert dieser Parametersatz einen Fehler von ungefähr -25000, für das Jahr 1880 etwa 15000. Das negative Vorzeichen soll andeuten, daß die Felddaten unter den Schätzwerten aus dem Modell liegen. Natürlich ist zu erwarten, daß bei jeder Wahl von Parametern ein Approximationsfehler auftritt, das Modell kann nicht alle Details der Daten perfekt wiedergeben. Wenn die Parameter aber gut gewählt sind, werden die Approximationsfehler insgesamt sehr klein ausfallen. Drücken wir noch einmal dasselbe mathematisch aus: Gegeben sind ein Satz von n Datenpaaren (t1 , y1 ), · · · , (tn , yn ). Das sind die beobachteten Daten, die wir als Tabelle in Beispiel 2.1 angegeben haben. Gegeben ist ferner eine Funktion f (t; α1 , · · · , αm ) als Modell, die außerdem von m Parametern α1 , · · · , αm abhängt. In unserem Fall ist das die logistische Funktion (3.1), abhängig von t und den drei Parametern K, t0 und τ : f (t; K, t0 , τ ) = K e t−t0 τ 1+e t−t0 τ . 24 Das Modell sagt anstelle der y-Daten die Werte f (t1 ; α1 , · · · , αm ) · · · f (tn ; α1 , · · · , αm ) voraus. Damit entsteht an jedem Datenpaar ein Approximationsfehler ei = yi − f (ti , α1 , · · · , αm ). In unserem Fall ist das ei = yi − K e ti −t0 τ ti −t0 . 1+e τ (Der Buchstabe e hat sich für “error”=Fehler eingebürgert. Bitte nicht mit der Eulerschen Zahl aus der Exponentialfunktion verwechseln.) Ein gutes Modell mit guten Parametern liefert kleine Werte für die Approximationsfehler ei . Um den Gesamtfehler zu bewerten, dürfen wir nicht einfach die einzelnen Approximationsfehler summieren: Dabei könnten sich große positive und negative Fehler wegheben und einen kleinen Gesamtfehler vortäuschen. Es gibt verschiedene Arten, den Gesamtfehler zu bewerten. Die bekannteste besteht darin, die einzelnen Fehler erst zu quadrieren. Damit werden alle Vorzeichen positiv. n X E= e2i = e21 + e22 + · · · + e2n . i=1 Wir betrachten diesen Ausdruck als den Gesamtfehler, nach dem wir die Wahl der Parameter beurteilen können. Die Parameter passen umso besser, je geringer der Gesamtfehler ist. Damit stehen wir vor der folgenden Aufgabe: Finde jene Parameter, für die der Gesamtfehler am kleinsten ist. Merksatz 3.3 (Kleinste Quadrate). Gegeben seien n Datenpaare (t1 , y1 ), · · · , (tn , yn ) und eine Modellfunktion f (t; α1 , · · · , αm ), abhängig von Parametern α1 , · · · , αm . Die Parameteranpassung nach der Methode der kleinsten Quadrate ist die Suche nach jenen Parametern α1 , · · · , αm , für die die Quadratsumme der Approximationsfehler n X E(α1 , · · · , αm ) = (yi − f (ti ; α1 , · · · , αm ))2 i=1 am kleinsten wird. Für die Bewertung der Güte der Anpassung eignet sich noch besser der relative quadratische Approximationsfehler Pn (yi − f (ti ; α1 , · · · , αm ))2 Pn 2 . Erel (α1 , · · · , αm ) = i=1 i=1 yi Er unterscheidet sich von E nur durch Division durch einen konstanten Faktor. Wenn man den Datensatz einfach durch f = 0 approximiert, erhält man Erel = 1. Erel = 0 bedeutet völlig fehlerfreie Darstellung der Daten durch das Modell. 3. PARAMETERANPASSUNG DURCH KLEINSTE QUADRATE 25 Auch die Regressionsgerade an einen Datensatz ist in Wirklichkeit eine Gerade f (t) = kt + d, deren Parameter k und d nach der Methode der kleinsten Quadrate an den Datensatz angepaßt sind. 3.5. Optimumsuche mit Computer. Wir stehen jetzt vor einer Extremwertaufgabe, einem Optimierungsproblem: Merksatz 3.4. Ein Optimierungsproblem hat die folgende Gestalt: Gegeben ist eine Menge Ω von Vektoren in Rm (können auch, im einfachsten Fall, Skalare in R1 sein), und eine Funktion J, die jedem Vektor x aus Ω eine reelle Zahl J(x) zuordnet. Gesucht ist jener Vektor x ∈ Ω, für den die Funktion J(x) am kleinsten (oder am größten) ist. Die Menge Ω heißt der zulässige Bereich, J heißt die Zielfunktion, und die Lösung x des Optimumproblems heißt die optimale Lösung. K In unserem Fall der Parameteridentifizierung besteht Ω aus allen Tripeln x = t0 mit τ K ≥ 0, t0 ∈ R und τ > 0. Die Zielfunktion J ist die Quadratsumme E der Approximationsfehler. Gesucht ist das Minimum von E. Um Mißverständnisse zu vermeiden, betonen wir, daß sich Optimierungsaufgaben durchaus nicht nur im Zusammenhang mit Parameteranpassung ergeben müssen. Überall, wo Mathematik eingesetzt wird, um unter verschiedenen Möglichkeiten die beste zu bestimmen, kommt man letztlich auf ein Optimierungsproblem. Wenn J nur von einer reellen Zahl, nicht einem Vektor, abhängt, läßt sich oft durch Nullsetzen der ersten Ableitung der optimale Parameter bestimmen. Auch bei Funktionen von mehreren Parametern kann das Optimum gelegentlich durch Nullsetzen aller partiellen Ableitungen bestimmt werden, aber meistens ergeben sich dabei Gleichungen, die mit Bleistift und Papier nicht mehr zu lösen sind. Man ist dann auf sogenannte numerische Verfahren angewiesen. Es gibt viele verschiedene Algorithmen (Rechenverfahren) zur numerischen Minimumsuche. Grundsätzlich arbeiten sie nach dem folgenden Prinzip: Der Benützer gibt einen Startwert, eine erste Schätzung für die optimale Lösung, an. Das Programm tastet ab, in welche Richtung die Parameter zu verändern sind, damit sich die Zielfunktion verkleinert. In diese Richtung geht es ein Stück und verbessert dadurch den Schätzwert der optimalen Lösung. Vom neuen Schätzwert tastet es sich weiter. Wenn die Schritte, die von Schätzung zu Schätzung gemacht werden, sehr klein geworden sind, und sich der Wert der Zielfunktion nur (mehr) wenig ändert, wird die letzte Schätzung als endgültige Näherung für die optimale Lösung angenommen. 26 Abbildung 3.6. Ein lokales Minimum fängt einen Optimumsucher Wege eines Optimumsuchers von zwei Startwerten aus: Von Startpunkt 1 wird das Minimum, von 2 aus nur ein lokales Minimum gefunden. Merksatz 3.5. Ein numerisches Verfahren zur Optimumsuche sucht eine Stelle, an der eine gegebene Zielfunktion ein Optimum hat. Ausgehend von einem Startwert geht es systematisch und schrittweise zu immer besseren Stellen weiter. Wenn ein Abbruchkriterium erfüllt ist, indem sowohl die Schrittweite als auch die Änderung der Funktionswerte kleiner als eine vorgegebene Toleranz wird, bricht das Verfahren die Suche ab und gibt die letzte erreichte Stelle als Lösung aus. Der Benützer eines numerischen Optimumsuchers muß bereitstellen (1) ein Unterprogramm, das die Zielfunktion (und, bei Verwendung eines Gradientenverfahrens, auch ihre Ableitungen) aus den Argumenten (das sind hier die Parameter) berechnet, (2) einen Startwert (nach Möglichkeit in der Nähe der Lösung), (3) eine Toleranz in Bezug auf die Ungenauigkeit der Lokalisation der Optimal-Stelle. Aus der algorithmischen Vorgangsweise ergeben sich auch die Probleme: Das Programm tastet zwar die Umgebung einer gefundenen Schätzung ab, aber es kann nicht beurteilen, ob nicht weit entfernt eine noch bessere Lösung existiert. Deshalb sind Zielfunktionen mit mehreren lokalen Minima schwierig zu minimieren: Der Optimumsucher läuft das lokale Minimum an, auf das er ausgehend von seinem Startpunkt als erstes trifft, und erkennt nicht, ob er damit das globale Minimum erreicht hat. Im Zweifelsfall hilft Starten von verschiedenen Startpunkten aus, und ein Vergleich der verschiedenen erreichten Lösungen. Natürlich gibt es Zielfunktionen, die gar kein Minimum besitzen. Das Programm läuft dann theoretisch bis ins Unendliche weiter, wenn es nicht eigens dagegen abgesichert ist. Auch bei einer Zielfunktion mit Minimum kann sich ein Programm ins Unendliche verlaufen, wenn das Minimum vom Startwert weit entfernt ist. 3. PARAMETERANPASSUNG DURCH KLEINSTE QUADRATE 27 Nach der Art, wie das Verfahren seine Suchrichtung wählt, unterscheiden sich die verschiedenen Optimierungsmethoden. Wenn die partiellen Ableitungen der Zielfunktion greifbar sind, weiß man auch die Richtung, in die der schnellste Abfall zu erwarten ist (nämlich den Gradienten). Gute Verfahren folgen allerdings nicht stur dem Gradienten, sondern verwerten auch Information aus den bisher zurückgelegten Schritten. Sind die Ableitungen der Zielfunktion nicht greifbar, müssen immer genügend viele Punkte in der Nähe der aktuellen Schätzung abgetastet werden, um zu beurteilen, welche Richtung den meisten Erfolg verspricht. Ferner gibt es sogenannte ’genetische Algorithmen’, die eine Gruppe von Schätzungen nach den Prinzipien Kreuzung, Mutation und Selektion verändern und dadurch - wie bei der biologischen Evolution - an die Daten anpassen. Es gibt kein allgemein bestes Verfahren. Wenn bei einem Problem ein Verfahren kein Minimum finden will, kann man mit einem anderen Verfahren noch immer Erfolg haben. Es kann aber auch vorkommen, dass das Parameteranpassungsproblem gar keine befriedigende Lösung hat, weil das Modell nicht zu den Daten passt. Bei vergeblicher Suche nach einem geeigneten Minimum ist das Modell in Frage zu stellen, und eine Abänderung des Modells ins Auge zu fassen. 3.6. Lösung des Parameteranpassungsproblems in MATLAB. Zunächst muss man eine Matlab function schreiben, nennen wir sie zielfkt, die zu gegebenen Parametern K, t0 , τ den Approximationsfehler, das ist die Summe der Fehlerquadrate, berechnet. Eine solche function wird durch einen file namens zielfkt.m definiert, der folgende erste und letzte Zeilen enthält: function fehler = zielfkt(x) . . . fehler = · · · Beim Aufruf dieser function enthält der Argumentvektor x die aktuellen Parameter und der output-Variablen fehler muss die zugehörige Summe der Quadrate zugewiesen werden. Im command window gibt man dann die Befehle >>options=optimset(’TolX’,1e-4,’MaxFunEvals’,1000); ←>>xstart=[1 2 3]; ←>>xend=fminsearch(’zielfkt’,xstart,options) ←um (zum Beispiel) die Toleranz auf 10−4 , die maximal zugelassene Anzahl von Auswertungen von zielfkt auf 1000 und den Startvektor auf [1 2 3] zu setzen. Die Matlab Routine fminsearch beginnt bei xstart mit der Suche nach einem Minimum und ruft dazu die vom Benützer programmierte function zielfkt immer wieder auf. Der Such-Algorithmus bestimmt systematisch die Stellen an denen die Auswertung von zielfkt benötigt wird, diese sollte entsprechend flexibel programmiert sein. Findet der Algorithmus Parameter, die zur geforderten Toleranz passen, dann werden diese (hier) dem Vektor xend zugewiesen. 28 Abbildung 3.7. Schritte des Nelder-Mead-Verfahrens Dick ausgezogen: Neues Tetraeder 3.7. Das Verfahren von Nelder-Mead. Nur für Interessierte erklären wir, wie das in fminsearch implementierte Suchverfahren von Nelder-Mead funktioniert. Nehmen wir an, daß die Zielfunktion name als Argument (so wie im obigen Beispiel) einen dreidimensionalen Vektor hat. Wir geben einen dreidimensionalen Startvektor x0 vor, und rufen damit fminsearch(’name’,x0) auf (das Weglassen des dritten Arugments beim Aufruf von fminsearch ist gleichbedeutend mit der Wahl der default Optionen). Was läuft im Computer ab? Die Idee des Programms ist, die optimale Lösung durch ein Tetraeder von 4 Schätzpunkten einzukreisen. (Wäre name eine Funktion eines zweidimensionalen Vektors, würde das Optimum mit Dreiecken eingekreist. In höheren Dimensionen m nennt man das Analogon zu Dreieck und Tetraeder ein Simplex. Es hat immer m + 1 Ecken.) Der erste Schritt besteht darin, in der Umgebung des Startvektors 4 Punkte als Ecken des ersten Tetraeders zu fixieren. An jedem Eckpunkt wird der Wert der Zielfunktion ausgerechnet. Alle weiteren Schritte bestehen darin, das einmal erreichte Tetraeder zu verbessern. Einer der Eckpunkte des gerade aktuellen Tetraeders hat den größten, also schlechtesten Wert der Zielfunktion. Wir konstruieren ein neues Tetraeder, indem gerade dieser Eckpunkt durch einen anderen ersetzt wird, an dem die Zielfunktion einen möglichst guten (=kleinen) Wert annimmt. Die verschiedenen Strategien, die wir jetzt erklären werden, sind in Abbildung 3.7 zusammengefaßt. Der erste Versuch besteht darin, daß man den schlechtesten Eckpunkt am Schwerpunkt der gegenüberliegenden Seitenfläche spiegelt. Dieser Schritt erscheint sinnvoll, weil er von der schlechtesten Ecke weg in die Richtung besserer Werte der Zielfunktion führt. Am neuen Eckpunkt wird der Wert der Zielfunktion berechnet. Ob die Spiegelung ein Erfolg war, entscheidet sich an Hand der Zielfunktion. 3. PARAMETERANPASSUNG DURCH KLEINSTE QUADRATE 29 Ist die Zielfunktion am neuen Eckpunkt sehr gut, nämlich kleiner als die Werte an allen anderen Eckpunkten, dann ist die Suchrichtung erfolgversprechend. Wir strecken den Eckpunkt doppelt so weit von der Fläche weg, an der er gespiegelt wurde, dadurch wird die Suche in die erfolgversprechende Richtung vorangetrieben. Wenn auch dieser Eckpunkt besser als alle anderen ist, wird er beibehalten. Ist aber der Eckpunkt des ausgedehnten Simplex schlechter als eine der anderen Ecken, behalten wir den gespiegelten Eckpunkt bei. Wir behalten auch den gespiegelten Eckpunkt bei, wenn die Zielfunktion dort zwar nicht besser als an allen anderen Ecken, aber nicht die schlechteste des ganzen verbleibenden Tetraeders ist. Wenn aber der gespiegelte Eckpunkt schlechter als alle Ecken außer höchstens der weggelassenen ist, ist die Spiegelung offenbar die falsche Strategie zur Optimumsuche. Man geht davon aus, daß man bereits so nahe am Optimum ist, daß jeder große Schritt nur mehr Verschlechterungen bringt. Daher reduziert man die Schrittweite. Man wählt vom gespiegelten Eckpunkt und seinem Urbild den Punkt mit der besseren Zielfunktion, und halbiert die Strecke von diesem Punkt zum Schwerpunkt der gegenüberliegenden Seitenfläche (an dem vorhin gespiegelt wurde). Wenn der neue Eckpunkt nicht schlechter als alle anderen verbleibenden Ecken ist, behält man ihn bei, das Tetraeder wurde kontrahiert. Wenn auch die Kontraktion nichts hilft, wählt man aus dem gesamten ursprünglichen Tetraeder die beste Ecke, und ersetzt alle anderen Ecken durch die Mittelpunkte zwischen ihnen und der besten Ecke. Damit werden alle Seitenlängen des Tetraeders halbiert, es schrumpft. Nach der Bestimmung der neuen Ecke und damit des neuen Tetraeders prüft man, wie weit die Ecken voneinander entfernt sind, also die Seitenlängen des Tetraeders. Sind alle Seiten kürzer als die geforderte Toleranz, betrachtet man die Ecke mit dem besten Wert der Zielfunktion als Lösung und beendet das Verfahren. 3.8. Die optimalen Parameter des logistischen Modells. Wir berichten kurz von den Erfahrungen und Ergebnissen bei der Optimumsuche für das Populations-Modell. Wie wir schon gesehen haben, sind geeignete Parameter von sehr unterschiedlicher Größenordnung, nämlich K ∼ 2 × 105 , t0 ∼ 1.8 × 103 , τ ∼ 3 × 10. Dies ist eine für die Optimumsuche sehr nützliche Vor-Information, denn wenn man keine Ahnung hat, wo man suchen soll, dann ist es schwierig etwas Passendes zu finden. Ausserdem ist es für das automatische Such-Verfahren günstig, wenn die Auswirkung der Variation für alle Parameter ähnlich groß sind (die Tetraeder im Nelder-Mead Verfahren werden sonst sehr spitz und flach). Daher verwenden wir statt K, t0 , τ die skalierten Parameter K̃ = K/105 , t˜0 = t0 /103 , τ̃ = τ /10. Wir schreiben also ein Unterprogramm, das die Summe der Fehlerquadrate aus K̃, t˜0 , τ̃ berechnet. Wenn man dieses Unterprogramm dem Suchverfahren zur Verfügung stellt, dann variiert es die Argumente K̃, t˜0 , τ̃ und zwar alle drei etwa zwischen 1 und 4. Startet man das Nelder-Mead Verfahren bei (1,1,1), dann konvergiert es ohne Fehlermeldungen oder Warnungen nach (0.5536, 1.1090, 1.1022). Graphisch ist allerdings sofort klar, dass dies keine guten Parameter sind: die zugehörige Funktion ist beinahe konstant und zwar der Mittelwert der Daten. Dort befindet sich scheinbar ein lokales Minimum der Summe der Fehlerquadrate. 30 Abbildung 3.8. Logistisches Modell für Beispiel 2.1 x10 4 16 o 14 o o 12 o Population 10 o 8 o o 6 o 4 o o o 2 0 1780 o o o 1800 o o 1820 o 1840 1860 1880 1900 1920 1940 1960 Jahre Kreise: Felddaten. Durchgezogen: Modell Startet man bei (1,2,3), dann konvergiert das Verfahren nach (2.007, 1.9158, 3.2496). Die zugehörige Graphik sieht gut aus. Beim weiteren Experimentieren mit den Startwerten bekommt man entweder sinnlos schlechte Ergebnisse (lokale Minima) oder sehr gute Ergebnisse ganz in der Nähe von K = 20070, t0 = 1915.8, τ = 32.496. Dort scheint sich also das globale Minimum der Summe der Quadrate zu befinden. Den Vergleich der Daten und dem Modell mit diesen Parametern zeigt Abbildung 3.8. Die Übereinstimmung zwischen Modell und Daten ist hervorragend. Vergleichen Sie auch die Ergebnisse mit den graphisch geschätzten Werten. Nur den Parameter K haben wir deutlich unterschätzt. Trotzdem wäre es falsch zu glauben, das empirische Modell für das Bevölkerungswachstum in den USA gefunden zu haben. Setzt man zum Beispiel in das Modell mit den soeben bestimmten Parametern das Jahr 2000 ein, erhält man P (2000) ∼ 186 Millionen, während laut Census 2000 tatsächlich 281 Millionen Menschen in den USA lebten. Bei der Bestimmung der Parameter unter der Berücksichtigung von Daten bis 2000, würden die optimalen Werte sicher anders ausfallen. 4. MENGENBILANZEN 31 4. Mengenbilanzen 4.1. Strukturmodelle. Wir haben bisher unsere Modellgleichungen an Hand existierender Felddaten ausgesucht, die Modellfunktion sollte eine Kurve ergeben, die die Felddaten möglichst genau wiedergeben kann. Ein völlig anderer Weg, ein Modell zu einem System zu gewinnen, besteht darin, die Einzelteile des Systems und ihre Wechselwirkungen untereinander zu betrachten, und diese Wechselwirkungen durch mathematische Gleichungen, sozusagen durch Naturgesetze, wiederzugeben. Wenn man alle Teile zusammenfügt, erhält man ein System von Gleichungen, das die Einzelteile des modellierten Systems und ihre Zusammenhänge wiederspiegelt. Ein solches Modell heißt ein Strukturmodell. Merksatz 4.1. Ein Strukturmodell bildet die Einzelteile eines Systems und ihre Wechselwirkungen ab. Es verwendet und liefert daher nicht nur Information über die Reaktion des Systems als Ganzes, sondern auch über die inneren Wirkungsweisen, die zu dieser Reaktion führen. Vorteile des Strukturmodells: • Information über die Wirkungsweise des Systems wird gewonnen. • Die Parameter haben (oft) eine natürliche Bedeutung. • Der Modellbildungsvorgang trägt zum Verständnis des Systems bei. Vorteile des empirischen Modells: • Die Gleichungen sind einfach, übersichtlich, und rechnerisch leicht zu behandeln. • Wenige Parameter reichen meist. • Selbst Systeme, von deren Wirkungsweise man gar keine Ahnung hat, lassen sich modellieren. Es hängt vom modellierten System und dem Zweck der Modellbildung ab, welche Hilfsmittel man zur Erstellung eines Strukturmodells heranzieht. Da es sehr unterschiedliche Systeme gibt, kommen alle Zweige der Mathematik zum Tragen. Eine der wichtigsten Modellierungsstrategien ist aber das Erstellen von Mengenbilanzen, das wir an den folgenden Beispielen erörtern werden. 4.2. Modell eines Kessels. Beispiel 4.2. Ein zylindrischer Kessel (Abbildung 4.1) besitzt einen Zufluß, durch den ständig mit gleichbleibender Zuflußrate Wasser zugeführt wird. Am Boden des Kessels befindet sich ein Abfluß, der durch ein enges Rohr führt. Auf Grund des Strömungswiderstandes ist die abfließende Wassermenge proportional zum hydrostatischen Druck am Kesselboden. Dieser ist wieder proportional zur Höhe der Wassersäule im Kessel. (Die Zuflußrate, die Größe des Kessels, und den Strömungswiderstand des Abflusses setzen wir als gegeben voraus.) (1) Welcher Wasserstand wird sich im Kessel einstellen? 32 Abbildung 4.1. Kessel aus Beispiel 4.2 (2) Wie entwickelt sich der Wasserstand im Verlauf der Zeit, wenn wir von einem leeren Kessel ausgehen und dann den Zufluß voll aufdrehen? Wir sehen einen wesentlichen Unterschied zwischen den beiden Fragestellungen: Frage (1) bezieht sich auf einen Dauerzustand, den Wasserstand, der sich auf Dauer im Kessel einstellen wird. Wir erwarten, daß sich der Wasserstand nicht mehr (wesentlich) ändern wird, wenn dieser Zustand einmal erreicht ist — die Zeit spielt dann keine Rolle mehr. Später werden wir einen solchen Zustand einen Gleichgewichtszustand nennen. Der Frage unterliegt eine statische Betrachtungsweise. Ihre Antwort wird eine einzige Zahl sein: Der Wasserstand ist so und so hoch. Dagegen geht Frage (2) von einer dynamischen Betrachtungsweise aus: Wir fragen nach dem Verlauf eines Vorgangs im Lauf der Zeit. Die Antwort könnte zum Beispiel durch eine Kurve gegeben werden, die den Wasserstand in Abhängigkeit von der Zeit darstellt, die seit dem Einschalten des Zuflusses verstrichen ist. Merksatz 4.3. Eine statische Betrachtungsweise bezieht sich auf einen Dauerzustand des Systems, der sich im Laufe der Zeit nicht ändert. Eine dynamische Betrachtungsweise untersucht, wie sich der Zustand des Systems im Lauf der Zeit verändert. Statische Modellierung. Wir wenden uns zunächst der Beantwortung der statischen Fragestellung zu. Wir benennen alle Größen, die im System eine Rolle spielen, und legen ihre Maßeinheiten fest. Die Form des Kessels ist durch seinen Radius r und seine Gesamthöhe H gegeben. Als Einheit kommt eine Längeneinheit in Frage. Im 4. MENGENBILANZEN 33 SI-Einheitensystem ist die Längeneinheit Meter (m). Mit z bezeichnen wir die Zuflußrate, also die Wassermenge, die pro Zeiteinheit durch den Zufluß strömt. Damit wird also eine Volumsmenge auf Zeit bezogen, die Einheit ist (im SI-System) Kubikmeter pro Sekunde (m3 /s). Mit a bezeichnen wir die Abflußrate, also die Wassermenge, die pro Zeiteinheit durch den Abfluß fließt. Die Einheit ist wieder m3 /s. Während aber z gegeben ist, müssen wir a erst aus anderen Gesetzmäßigkeiten herleiten. Letztlich suchen wir nach dem Wasserstand im Kessel, den wir mit h bezeichnen, die Einheit ist wieder m. Die Abflußrate ergibt sich aus dem hydrostatischen Druck d am Kesselboden, die Einheit des Drucks im SI-System ist ein Pascal (1Pa = 1kg/ms2 ). Der Zusammenhang zur Abflußrate ergibt sich durch ein Proportionalitätsgesetz: (4.1) a = d/w Dabei ist w der Strömungwiderstand des Abflußrohres in kg/m4 s. (Wie man zu dieser Einheit kommt, erklären wir in einem späteren Kapitel.) Der hydrostatische Druck errechnet sich wieder aus der Höhe der Wassersäule über dem Boden, multipliziert mit dem spezifischen Gewicht des Wassers: (4.2) d = γh Dabei ist γ das spezifische Gewicht von Wasser, in kg/m2 s2 . Der Zahlenwert ist bekannt: kg γ ≈ 104 2 2 . ms Tabelle 4.1 faßt noch einmal alle Größen und Gesetze des statischen Modells zusammen. (Die Mengenbilanz werden wir gleich erklären.) Unsere bisherige Arbeit hat darin bestanden, alles Wissen aus den Angaben zu formalisieren, indem wir den wesentlichen Größen geeignete Namen gegeben haben, und die verbal dargestellten Beziehungen durch Gleichungen ausgedrückt haben. Der springende Punkt zur Beantwortung der Frage (1) ist aber eine einfache Mengenbilanz: Wenn der Wasserstand gleichbleiben soll, muß genauso viel zufließen wie abfließen. Im Gleichgewicht gilt also z = a. Wir versuchen, alle Hilfsgrößen durch die gesuchte Gröse h und die gegebenen Parameter auszudrücken: d = γh nach (4.2), d γ a = = h nach (4.1). w w Damit ergibt sich aus der Mengenbilanz γ z = h. w Wir können damit den Wasserstand aus den bekannten Größen berechnen. wz (4.3) h= γ 34 Tabelle 4.1. Statisches Modell zu Beispiel 4.2 Größe r H z w γ h a d Einheit m m m3 s kg m4 s kg 104 m2 s2 m m3 s kg ms2 Modellgrößen Benennung Radius Höhe Zuflußrate Kommentar bekannt, unnötig bekannt, unnötig bekannt Str.widerstand bekannt spez. Gew. H2 O bekannt Wasserstand gesucht Abflußrate hydr. Druck Modellgleichungen d , w d = γh. a= statische Mengenbilanz z=a γ z= h w Überzeugen wir uns noch, daß die Formel ein plausibles Ergebnis liefert. Wir sehen aus der Formel: Je größer z, also die Zuflußrate, desto größer der Wasserstand, der sich einstellen wird. Je größer w, der Strömungswiderstand, also je enger der Abfluß, desto höher der Wasserstand. Beide Zusammenhänge erscheinen intuitiv durchaus einleuchtend. Interessant ist auch, daß die Abmessungen des Kessels überhaupt keinen Einfluß auf den Wasserstand nehmen, natürlich nur, solange er nicht überläuft. ¤ Merksatz 4.4. Eine statische Mengenbilanz beruht auf dem folgenden Grundsatz: Die vorhandene Menge ändert sich nicht, befindet sich also im Gleichgewicht, wenn die Summe aller Zuflüsse Z gleich der Summe aller Abflüsse A ist: 0 = Z − A. Dynamische Modellierung. Wir wollen jetzt nicht das statische Gleichgewicht des Systems betrachten, sondern die Art, wie sich der Wasserstand, also der Zustand des Systems, im Lauf der Zeit ändern kann. Benennen wir die Zeit mit t (in Sekunden s). Der Zeitpunkt t = 0 sei der Zeitpunkt des Einschaltens des Zuflusses. Einige unserer Modellgrößen bleiben immer gleich, dazu gehören die Abmessungen des Kessels r, H, das spezifische Gewicht γ des Wasser, der Abflußwiderstand w und, sobald der Zufluß aufgedreht ist, die Zuflußrate z. Das sind also konstante (= von der Zeit unabhängige) 4. MENGENBILANZEN 35 Tabelle 4.2. Dynamisches Modell zu Beispiel 4.2 Größe t V (t) r H z w γ π h(t) a(t) d(t) λ Einheit s m3 m m m3 s kg m4 s kg 104 m2 s2 3.14 m m3 s kg 2 ms γ 1 2 r πw s Modellgrößen Benennung Zeit Volumen Radius Höhe Zuflußrate Kommentar gesucht bekannt bekannt, unnötig bekannt Str.widerstand bekannt spez. Gew. Kreiszahl Wasserstand Abflußrate bekannt bekannt gesucht hydr. Druck Hilfsparameter Modellgleichungen d(t) , w d(t) = γh(t), a(t) = V (t) = r2 πh(t). dynamische Mengenbilanz d V (t) = z − a(t) = z − λV (t). dt Parameter des Systems. Dagegen wird sich der Wasserstand im Lauf der Zeit ändern, und mit ihm alle Größen, die von ihm abhängen. Dazu gehören der hydrostatische Druck und die Abflußrate, außerdem eine Größe, auf die wir bisher gar nicht geachtet haben, und die jetzt eine zentrale Rolle einnehmen wird, das Volumen V , also die Gesamtmenge des Wassers im Kessel (in m3 ). Diese Größen betrachten wir jetzt als Funktionen, die von t abhängen: h(t), d(t), a(t) und V (t). An den Zusammenhängen zwischen Wasserstand, Druck und Abflußrate ändert sich nichts im Vergleich zum statischen Modell, außer daß diese Größen jetzt zu verschiedenen Zeitpunkten verschiedene Werte annehmen. Das Volumen errechnet sich aus Grundfläche und Höhe der Wassersäule im Kessel: (4.5) d(t) , w d(t) = γh(t), (4.6) V (t) = r2 πh(t). (4.4) a(t) = Tabelle 4.2 zeigt das gesamte dynamische Modell, die Mengenbilanz erklären wir gleich. 36 Abbildung 4.2. Erste Ableitung als Wachstumsrate Weil sich jetzt die Wassermenge im Kessel ändern kann, müssen zufließende und abfließende Menge nicht mehr gleich sein. Beide tragen zur Gesamtänderung des Wasservolumens im Kessel bei. Das Volumen V (t) ist eine Funktion von t. Abbildung 4.2 zeigt schematisch, wie das Volumen in Abhängigkeit von der Zeit verlaufen könnte. In einem kurzen Zeitintervall τ wächst das Volumen um den Betrag V (t + τ ) − V (t) an. Wenn τ sehr klein ist, können wir anstatt der Volumskurve selbst ihre Tangente zur Abschätzung des Wachstums heranziehen. Die Steigung k der Tangente an die Volumskurve beschreibt die Wachstumsrate des Volumens: In einem sehr kurzen Zeitintervall der Länge τ Sekunden wächst das Volumen ungefähr um kτ Kubikmeter an. Rechnerisch erhält man die Steigung der Tangente durch Differenzieren der Volumsfunktion nach t: d k = V (t). dt Zwei Faktoren tragen zu dieser Volumsänderung im Zeitraum von τ Sekunden bei: Der Zufluß liefert zτ Kubikmeter Wasser, der Abfluß saugt a(t)τ Kubikmeter Wasser ab. Daher ist die gesamte Volumsänderung kτ = zτ − a(t)τ. Durchkürzen und Umschreiben von k als erste Ableitung von V liefert: d V (t) = z − a(t). dt (4.7) Versuchen wir, alle unbekannten Größen durch V (t) und die bekannten Parameter auszudrücken: V (t) nach (4.6), r2 π γ d(t) = γh(t) = 2 V (t) nach (4.5), r π d(t) γ a(t) = = 2 V (t) nach (4.4). w r πw h(t) = 4. MENGENBILANZEN 37 Wir setzen in die Mengenbilanz ein und erhalten d γ (4.8) V (t) = z − 2 V (t). dt r πw Es ist gut, eine Gleichung mit möglichst wenigen Parametern aufzuschreiben. Fassen wir die vorkommenden Parameter zusammen γ λ= 2 , r πw so erhalten wir die einfachere Form d (4.9) V (t) = z − λV (t). dt Diese Gleichung setzt die unbekannte Funktion V (t) in Beziehung zu ihrer Ableitung d V (t), sie ist also eine Differentialgleichung. Damit ist die Modellbildung beendet. Was dt man mit einer Differentialgleichung anfangen kann, werden wir später sehen. ¤ Merksatz 4.5. Eine dynamische Mengenbilanz beruht auf dem Grundsatz: Die Änderung der Gesamtmenge ist die Summe aller Zuflüsse abzüglich der Summe aller Abflüsse. Die Modellbildung besteht darin, eine Funktion f zu erstellen, die die Differenz der Zu- und Abflussraten Z(t) und A(t) als Funktion der Zeit t und der Gesamtmenge M (t) angibt: Z(t) − A(t) = f (t, M (t)). Änderungsrate bedeutet Änderung pro Zeiteinheit. Ist M eine differenzierbare Funktion von t, so ist die Änderungsrate von M zum Zeitpunkt t gegeben durch die erste Ableitung von M (t) nach t, dtd M (t). Dynamische Mengenbilanzen führen daher auf Differentialgleichungen der Form d M (t) = f (t, M (t)). dt Merksatz 4.6. Eine Differentialgleichung beschreibt eine Funktion, indem sie sie in Beziehung zu einer oder mehrerer ihrer Ableitungen setzt. Die Suche nach Lösungen einer Differentialgleichung ist also die Suche nach Funktionen, die die Differentialgleichung erfüllen. Beispiel 4.7. Wir beziehen uns auf das dynamische Modell zu Beispiel 4.2 in Tabelle 4.2 und die dazugehörige Differentialgleichung (4.9). Sei V0 eine beliebige Konstante. Zeigen Sie, daß die Funktion z z (4.10) V (t) = + e−λt (V0 − ) λ λ die Differentialgleichung (4.9) löst, und für t = 0 die Anfangsbedingung V (0) = V0 erfüllt. Wie lautet die Lösung, wenn zu Beginn (wie in Frage (2) angegeben) der Kessel leer ist? 38 Lösung. Obwohl es meistens schwierig ist, eine Lösung einer Differentialgleichung zu finden, ist es leicht, nachzuprüfen, ob eine Funktion die Gleichung löst, wenn man sie einmal “erraten” hat. Man muß dazu nur differenzieren: d d hz z i V (t) = + e−λt (V0 − ) dt dt λ λ z −λt = 0 − λe (V0 − ) λ z −λt = −λe (V0 − ). λ Zum Vergleich berechnen wir die rechte Seite der Differentialgleichung: z z z − λV (t) = = z − λ − λe−λt (V0 − ) λ λ z −λt = −λe (V0 − ). λ Wir sehen, daß die Ableitung und die rechte Seite der Differentialgleichung übereinstimmen. Daher erfüllt die Funktion V (t) aus Formel (4.10) die Differentialgleichung (4.9). Wir überprüfen noch die Anfangsbedingung: z z V (0) = + e−λ0 (V0 − ) λ λ z z = + V0 − λ λ = V0 . Nun soll zum Zeitpunkt t = 0 der Kessel leer, also das enthaltene Wasservolumen gleich 0 sein. Wir setzen in Formel (4.10) also V0 = 0 und erhalten z z z V (t) = − e−λt = (1 − e−λt ) . λ λ λ Sie sehen, daß Formel (4.10) viele verschiedene Lösungen beschreibt, für jeden Anfangswert V0 eine andere. Das versteht man leicht: Das Volumen im Kessel läßt sich nur dann voraussagen, wenn man nicht nur weiß, was zuströmt und was abfließt (das wird durch die Differentialgleichung ausgedrückt), sondern auch, was zu Beginn im Kessel vorhanden ist. Die Bedingung V (0) = 0 ist eine Anfangsbedingung für die Differentialgleichung: Sie beschreibt den Zustand des Systems “Kessel” zu Anfang des Beobachtungszeitraumes. ¤ Merksatz 4.8. Ob eine vorgelegte Funktion eine gegebene Differentialgleichung erfüllt oder nicht erfüllt, kann man durch Einsetzen überprüfen. Eine Differentialgleichung hat im Allgemeinen unendlich viele Lösungen. Unter diesen wird durch Zusatzbedingungen (etwa Anfangsbedingungen) eine passende eindeutig ausgewählt. 4. MENGENBILANZEN 39 4.3. Das logistische Populationsmodell als Strukturmodell. Beispiel 4.9. In einem beschränkten Lebensraum entwickelt sich eine große Population. Konstruieren Sie ein einfaches mathematisches Modell, das folgenden Gesetzmäßigkeiten Rechnung trägt: (1) Die Geburtenrate (Anzahl der Geburten pro Jahr) ist ungefähr proportional zur Anzahl der Individuen. (2) Je größer die Population, desto größer ist auch der Anteil der Individuen, die jährlich sterben: Durch die Erschöpfung der Ressourcen des Lebensraumes werden die Überlebensmöglichkeiten jedes Individuums eingeschränkt. (3) Der Lebensraum ist geschlossen, Einwanderung und Auswanderung finden nicht (oder nur in vernachlässigbar kleinem Ausmaß) statt. Das Modell soll die Entwicklung der Bevölkerungszahl im Lauf der Zeit beschreiben. Modellbildung. Wir bezeichnen mit t die Zeit (in Jahren), und mit P (t) die Bevölkerung zum Zeitpunkt t. P (t) ist die gesuchte Funktion, die durch das Modell beschrieben werden soll. Wir formalisieren zunächst das Geburtengesetz. Die Anzahl der Neugeburten pro Zeiteinheit (Jahr) bezeichnen wir mit B(t). (B ist natürlich auch eine Funktion von t. Wenn sich im Lauf der Zeit die Gesamtbevölkerungsdichte ändert, wird sich damit auch die laufende Anzahl der Geburten ändern.) Laut Annahme (1) gibt es einen konstanten Parameter β, die Fertilität, sodaß (4.11) B(t) = βP (t). Der Faktor β ist die Anzahl der Nachkommen, die ein Individuum pro Jahr im Mittel hervorbringt. Das Mortalitätsgesetz ist in Annahme (2) nur sehr vage formuliert. Wir haben Handlungsfreiheit, eine mathematische Beschreibung zu wählen, die diese Eigenschaften hat und dabei auf keine allzu komplizierte Formel führt. Für jedes Individuum besteht eine gewisse Wahrscheinlichkeit, im laufenden Jahr zu sterben, die Mortalität. Wir bezeichnen sie mit µ(t). (Weil nach Annahme (2) die Überlebenswahrscheinlichkeit von der Populationsdichte abhängt, ist auch µ keine Konstante, sondern kann sich mit der Zeit ändern.) Mit M (t) bezeichnen wir die Anzahl der Todesfälle pro Zeiteinheit. Weil jedes Individuum dem Todesrisiko unterliegt, erhalten wir (4.12) M (t) = µ(t)P (t). Nun soll laut Annahme µ von der Populationsdichte abhängen: Je größer die Population, desto größer µ. Eine einfache Funktion mit dieser Eigenschaft ist zum Beispiel (4.13) µ(t) = γ + δP (t) mit konstanten Parametern γ und δ. Fassen wir (4.12) und (4.13) zusammen, erhalten wir (4.14) M (t) = (γ + δP (t))P (t). Nach Annahme (3) sind Geburt und Tod die einzigen Vorgänge, die den Bevölkerungsstand ändern können. Daher sind wir jetzt in der Lage, die dynamische Mengenbilanz für den Gesamtzuwachs der Population aufzustellen: Das 40 Gesamtwachstum pro Jahr ist die jährliche Anzahl der Geburten abzüglich der jährlichen Anzahl der Todesfälle: d P (t) = B(t) − M (t) dt = βP (t) − (γ + δP (t))P (t) δ = (β − γ)P (t)(1 − P (t)). β−γ Es ist sinnvoll, ein Modell mit möglichst wenigen Parametern aufzustellen. Wir können β, γ und δ auf verschiedene Weise anders zusammenfassen, sodaß das Modell nur zwei Parameter enthält. Zum Beispiel bewährt sich die Einführung der folgenden Parameter: 1 , β−γ β−γ . K= δ τ= Damit erhalten wir die folgende Differentialgleichung, die sogenannte logistische Gleichung: (4.15) d 1 P (t) P (t) = P (t)(1 − ). dt τ K Damit haben wir ein dynamisches Modell für die Population aufgestellt. ¤ Merksatz 4.10. Anders als bei der Modellierung von mechanischen oder anderen physikalischen oder chemischen Systemen besteht bei der Beschreibung physiologischer, biologischer und ökonomischer Vorgänge oft große Freiheit in der Wahl der Gleichungen, weil die zugrundeliegenden Gesetzmäßigkeiten oft nur qualitativ erfaßt sind. Man wählt dann natürlich möglichst einfache Modelle, die die entsprechenden qualitativen Merkmale wiedergeben. Dafür muß man auch in vielen Fällen damit rechnen, daß eher die qualitativen Merkmale der Lösung als die gewonnenen Zahlenwerte für die Beschreibung des Systems signifikant sind. Beispiel 4.11. Zeigen Sie: Wenn t0 eine beliebige Konstante ist, ist die Funktion P (t) = K e(t−t0 )/τ 1 + e(t−t0 )/τ eine Lösung der logistischen Gleichung (4.15). Wie muß t0 bestimmt werden, wenn die Population zu einem Zeitpunkt t1 bekannt ist ? 4. MENGENBILANZEN 41 Tabelle 4.3. Logistisches Populationsmodell Modellgrößen Größe Einheit Benennung t Jahr Zeit P (t) Indiv. Gesamtpopulation B(t) Indiv./Jahr Geburten M (t) Indiv./Jahr Todesfälle β 1/Jahr Fertilität µ(t) 1/Jahr Mortalität γ 1/Jahr Parameter für µ δ 1/(Ind. Jahr) Parameter für µ 1 τ Jahr Zeitkonstante β−γ β−γ K Indiv. Kapazität δ Kommentar gesucht bekannt bekannt bekannt Modellgleichungen B(t) = βP (t), M (t) = µ(t)P (t), µ(t) = γ + δP (t). dynamische Mengenbilanz d 1 P (t) P (t) = B(t) − M (t) = P (t)(1 − ). dt τ K Lösung. Wir überprüfen die Differentialgleichung: Zuerst differenzieren wir P (t) mit der Bruchregel: · ¸ d d e(t−t0 )/τ P (t) = K dt dt 1 + e(t−t0 )/τ 1 (t−t0 )/τ =Kτ = e (1 + e(t−t0 )/τ ) − e(t−t0 )/τ ( τ1 e(t−t0 )/τ ) (1 + e(t−t0 )/τ )2 e(t−t0 )/τ K τ (1 + e(t−t0 )/τ )2 Zum Vergleich berechnen wir die rechte Seite der Differentialgleichung (4.15): 1 P (t) 1 e(t−t0 )/τ P (t)(1 − )= K τ K τ 1 + e(t−t0 )/τ µ K e(t−t0 )/τ 1− K 1 + e(t−t0 )/τ K e(t−t0 )/τ (1 + e(t−t0 )/τ − e(t−t0 )/τ ) τ (1 + e(t−t0 )/τ )2 K e(t−t0 )/τ = . τ (1 + e(t−t0 )/τ )2 = ¶ 42 Ein Vergleich mit der Ableitung von P (t), die wir oben berechnet haben, zeigt d 1 P (t) P (t) = P (t)(1 − ). dt τ K Also erfüllt die angegebene Funktion P (t) tatsächlich die logistische Gleichung. t0 ist dabei irgendein konstanter Parameter, je nach Wahl von t0 erhalten wir viele verschiedene Lösungen. Wenn jetzt t1 und P1 vorgegeben sind, bestimmen wir den Parameter t0 so, dass P (t1 ) = P1 ist, und zwar durch Einsetzen von t1 in die Lösungsfunktion P , was P1 ergeben soll: e(t1 −t0 )/τ K = P1 1 + e(t1 −t0 )/τ Ke(t1 −t0 )/τ = P1 (1 + e(t1 −t0 )/τ ) (K − P1 )e(t1 −t0 )/τ = P1 P1 e(t1 −t0 )/τ = K − P1 µ ¶ P1 t1 − t0 = ln , τ K − P1 ¶ µ P1 . t0 = t1 − τ ln K − P1 Wieder läßt sich der freie Parameter mit Hilfe einer Zusatzbedingung bestimmen. ¤ Dieselbe Funktion P (t) haben wir im vorigen Kapitel sehr erfolgreich als empirisches Modell an Felddaten für die Population der USA angepaßt. Wir sehen jetzt, daß es ein Strukturmodell gibt, das gerade auf diese Funktion führt. Gemessen an den groben Verallgemeinerungen, die zum Strukturmodell geführt haben, ist die hervorragende Übereinstimmung zwischen Daten und Modell trotzdem überraschend. Bemerkung. Genaugenommen ist die Anzahl der Individuen einer Population eine ganze Zahl. Diese ändert sich unregelmäßig und sprunghaft zu den Zeitpunkten von Geburt oder Tod einzelner Individuen. Also beruht das Modell mit nicht-ganzzahliger sich stetig ändernder Bevölkerungszahl P (t) auf einer Idealisierung, die aber die Modellbildung wesentlich vereinfacht. Für viele Zwecke ist das stetige Modell ausserdem völlig ausreichend; eine ganzzahlige Modellierung ist zwar grundsätzlich möglich (siehe Teil 2), für große Populationen aber nicht angebracht. 4. MENGENBILANZEN 43 4.4. Das Punktreaktormodell. Beispiel 4.12. Die Vorgänge in einem Kernspaltungsreaktor lassen sich am besten im Hinblick auf die freien Neutronen im Reaktor beschreiben. Das Schicksal der Neutronen wird von den folgenden Vorgängen geprägt: (1) Freie Neutronen können von Atomkernen eingefangen werden, ohne daß eine weitere Reaktion eintritt. (2) Freie Neutronen können von spaltbaren Atomkernen eingefangen werden, wobei eine Kernspaltung ausgelöst wird. Bei der Kernspaltung werden wiederum Neutronen frei (die sogenannten prompten Neutronen), außerdem entstehen instabile radioaktive Isotope. (3) Wenn gewisse instabile Isotope zerfallen, werden Neutronen frei. (Diese Neutronen heißen verzögerte Neutronen, weil sie indirekt durch die Kernspaltung, aber nicht sofort, sondern über den Umweg der entstandenen Isotope etwas später freigesetzt werden.) (4) Abgesehen von diesen Reaktionen gibt es eine Neutronenquelle, die — unabhängig von den laufenden Kernspaltungen — ständig eine gewisse kleine Menge an Neutronen freisetzt. Die Aktivität eines Reaktors läßt sich durch die Anzahl der freien Neutronen im Reaktor beschreiben (wegen der oben beschriebenen Beziehungen ist diese Zahl stark zur Anzahl der ablaufenden Kernspaltungen korreliert). Entwickeln Sie ein einfaches dynamisches Modell zur Vorhersage der Neutronenpopulation im Reaktor. Modellbildung. Wir bezeichnen mit t die Zeit (in Sekunden), und mit N (t) die Anzahl der freien Neutronen im Reaktor zum Zeitpunkt t. Außerdem müssen wir den Vorrat an instabilen Isotopen im Auge behalten. Der Einfachheit halber nehmen wir (nicht realistisch) an, daß in der Reaktionskette nur eine Sorte instabile Isotope vorkommt. Sei I(t) die Anzahl der instabilen Atomkerne. Betrachten wir jetzt den Reaktor vom Standpunkt eines freien Neutrons aus: Die Wahrscheinlichkeit, daß das Neutron in der nächsten Sekunde eingefangen wird, ohne eine weitere Reaktion auszulösen, sei β. Die Wahrscheinlichkeit, daß das Neutron in der nächsten Sekunde eingefangen wird und eine Kernspaltung auslöst, sei α. Da jedes Neutron diesen Risiken ausgesetzt ist, haben wir die folgende Verlustbilanz für die Neutronen: (4.16) (4.17) αN (t) + βN (t) Neutronen werden pro Sekunde eingefangen. αN (t) Kernspaltungen finden pro Sekunde statt. Sei ν die Anzahl der Neutronen und γ die Anzahl der instabilen Kerne, die bei einer Kernspaltung freigelassen werden. Aus (4.17) folgt dann: (4.18) ναN (t) prompte Neutronen werden pro Sekunde frei. (4.19) γαN (t) instabile Kerne werden pro Sekunde frei. Mit λ bezeichnen wir die Wahrscheinlichkeit, die für einen instabilen Kern besteht, innerhalb der nächsten Sekunde zu zerfallen. Bei jedem Zerfall entstehen µ verzögerte 44 Tabelle 4.4. Punktreaktormodell mit einer instabilen Spezies Modellgrößen Größe Einheit Benennung t s Zeit N (t) Ind. freie Neutronen I(t) Ind. instabile Kerne β 1/s Wahrsch.: Einfangen ohne Reaktion α 1/s Wahrsch.: Einfangen mit Reaktion λ 1/s Wahrsch.: radioaktiver Zerfall γ instabile Kerne pro Spaltung ν prompte Neutronen pro Spaltung µ verzögerte Neutronen pro Zerfall S Ind./s Neutronen aus der Quelle Kommentar gesucht gesucht bekannt bekannt bekannt bekannt bekannt bekannt bekannt dynamische Mengenbilanzen d N (t) = (να − α − β)N (t) + µλI(t) + S, dt d I(t) = γαN (t) − λI(t). dt Neutronen. Weil jeder instabile Kern diesem Risiko unterliegt, erhalten wir: (4.20) (4.21) λI(t) instabile Kerne zerfallen pro Sekunde. µλI(t) verzögerte Neutronen werden pro Sekunde frei. Letztich benennen wir den Beitrag der Neutronenquelle (4.22) S Neutronen pro Sekunde werden von der Quelle freigesetzt. Wir stellen jetzt zwei Mengenbilanzen auf, eine für die freien Neutronen, eine für die instabilen Kerne. Der Gesamtzuwachs der freien Neutronen pro Sekunde besteht aus den freiwerdenden prompten Neutronen und den verzögerten Neutronen, der Verlust aus den eingefangenen Neutronen. Der Gewinn an instabilen Atomkernen kommt von den Kernspaltungen, der Verlust vom radioaktiven Zerfall. Wir erhalten daher die folgenden Bilanzen: d (4.23) N (t) = (να − α − β)N (t) + µλI(t) + S, dt d (4.24) I(t) = γαN (t) − λI(t). dt Das ist ein System von zwei Differentialgleichungen für zwei unbekannte Funktionen N und I. Es ist nicht schwierig, das Modell so auszuweiten, daß mehrere verschiedene Isotope mit verschiedenen Halbwertszeiten im Reaktor beschrieben werden können, und auch bei Zerfall instabiler Isotope wieder andere instabile Kerne freiwerden, sodaß in der Folge einer Kernspaltung eine ganze Kette radioaktiver Zerfallsreaktionen abläuft. ¤ 4. MENGENBILANZEN 45 Weil wir in diesem Modell nicht die räumlichen Verhältnisse im Reaktor berücksichtigt haben (etwa, wie weit ein Neutron fliegen muß, bis es am nächsten Brennelement eingefangen werden kann, um eine Kernspaltung auszulösen), sondern gerechnet haben, als würden alle Vorgänge an einem Punkt ablaufen, heißt diese Art von Neutronenbilanz ein Punktreaktormodell. Für das technische Design eines speziellen Reaktors, das ja darin besteht, Brennelemente, Bremsstäbe, und viele andere Einrichtungen möglichst wirkungsvoll und betriebssicher im Raum anzuordnen, ist das Punktreaktormodell natürlich viel zu grob. Man kann aber an Hand des Modells Einiges über die Eigenheiten von Reaktoren lernen, etwa, daß diese Einrichtungen überhaupt nur technisch möglich sind, weil ein Teil der Neutronenbilanz relativ langsam über die verzögerten Neutronen abläuft, die prompten Neutronen reagieren viel zu schnell, als daß man den Reaktor rechtzeitig steuern könnte. Andere Eigenheiten sind zum Beispiel, daß Start und Abschaltung, und vor allem ein Neustart knapp nach einer Abschaltung, besonders kritische Betriebsphasen sind. Beispiel 4.13. Wir betrachten das Punktreaktormodell aus Beispiel 4.12. Nehmen wir an, daß der Reaktor stabil ist und sich ein Gleichgewicht einspielt. Welche Neutronenpopulation wird sich im Reaktor als Gleichgewicht einstellen? Lösung. Das ist eine statische Mengenbilanz. Wir können also im Punktreaktormodell die Zuflüsse und Abgänge von Neutronen und instabilen Isotopen jeweils gleichsetzen. Anders ausgedrückt, müssen die Gesamtzuwachsraten von Neutronen und Isotopen gleich Null sein: In den Differentialgleichungen (4.23) und (4.24) setzen wir d d N = 0, I = 0. dt dt Damit erhalten wir ein lineares Gleichungssystem 0 = (να − α − β)N (t) + µλI(t) + S, 0 = γαN (t) − λI(t). Das System besitzt die Lösung S , α + β − γµα − να γαS I= . λ(α + β − γµα − να) N= N und I hängen nun natürlich nicht mehr von t ab: Das Gleichgewicht besteht ja gerade darin, daß sich der Zustand des Systems mit der Zeit nicht ändert. ¤ Auf analoge Art und Weise können Sie die Gleichgewichtslagen des dynamischen Kessel-Modells oder des Populationsmodells bestimmen. Merksatz 4.14. Die Gleichgewichtslagen eines Systems von Differentialgleichungen erhält man, indem man die Ableitungen mit Null ansetzt und das entstehende Gleichungssystem löst. Das Null-Setzen der Ableitungen macht aus dem dynamischen Modell ein statisches. Falls dieses Lösungen besitzt, sind diese die Gleichgewichtslagen des Differentialgleichungsmodells. 46 Viel wichtiger ist allerdings die Frage, ob der Reaktor überhaupt stabil ist. Die Antwort darauf liefert die Theorie der linearen Differentialgleichungen mit Hilfe von Matrizenrechnung. Stabilitätsuntersuchungen gehören zur qualitativen Analyse mathematischer Modelle und werden in einem späteren Kapitel besprochen. 4.5. Kinetik chemischer Reaktionen. Beispiel 4.15. Stickoxid (NO) spielt nach neuesten Erkenntnissen eine wesentliche Rolle in der Blutdruckregulation. Pharmakologen haben Versuche zu folgender Reaktion durchgeführt: Einer Lösung wird eine gewisse Menge eines Stoffes (“Donor”) beigesetzt, aus dem durch Zerfall NO entsteht. NO selbst wird, zusammen mit Sauerstoff, weiter abgebaut. Um konstante Reaktionsgeschwindigkeiten zu sichern, wurde die Temperatur der Lösung konstant gehalten. Die NO-Konzentration in der Lösung wurde etwa 40 Minuten lang durch ständige Messungen verfolgt und die Daten mittels Computer aufgenommen. Finden Sie ein Modell, das diese Daten wiedergeben kann, unter Berücksichtigung der folgenden chemischen Sachverhalte: (1) Der Zerfall des Donors ist eine Reaktion erster Ordnung, das heißt, in den Zerfall ist jeweils nur ein Molekül des Donors involviert. Die Anzahl der pro Sekunde zerfallenden Moleküle ist proportional zur Konzentration des Donors in der Lösung. Die Reaktion ist irreversibel. (2) Der Zerfall von NO ist, von NO aus gesehen, eine Reaktion zweiter Ordnung. Je zwei Moleküle von NO reagieren, zusammen mit einem Molekül O2 , in der Abbaureaktion. Die Anzahl der pro Sekunde zerfallenden Moleküle ist proportional zum Quadrat der NO-Konzentration und proportional zur O2 -Konzentration. Die Reaktion ist irreversibel. (3) Sauerstoff ist in der Lösung so reichlich vorhanden, daß die Konzentration von O2 trotz der Zerfallsreaktion als annähernd konstant angenommen werden darf. (4) Außer den beiden angeführten Reaktionen und der Beigabe von Donor zur Lösung am Anfang des betrachteten Zeitraumes finden keine Reaktionen statt, die die Konzentration von NO beeinflussen. (5) Vor der Beigabe des Donors befindet sich kein NO in der Lösung. Modellbildung. Die Problemstellung verlangt ein dynamisches Modell. t bezeichne die Zeit, die seit Versuchsbeginn verstrichen ist (in Sekunden). Wir bezeichnen mit cN O (t) die Konzentration von NO und mit cD (t) die Konzentration des Donors zum Zeitpunkt t. Die Einheiten sind Mol pro Liter. (Ein Mol ist eine Gewichtseinheit, die sich auf das Molekulargewicht der betreffenden Substanz bezieht: Die Masse eines Stoffes in Mol ist die Gesamtmasse in Gramm, gebrochen durch das Molekulargewicht. Chemische Berechnungen vereinfachen sich durch diese Konvention: Zum Beispiel liefert der Zerfall eines Mols vom Donor genau ein Mol von NO.) c0 bezeichne die Donorkonzentration in der Lösung unmittelbar nach Zugabe des Donors, also zur Zeit t = 0 (in Mol/l). Anfangs befindet sich in der Lösung noch gar kein Stickoxid. (4.25) (4.26) cD (0) = c0 , cN O (0) = 0. 4. MENGENBILANZEN 47 Mit o2 bezeichnen wir die Konzentration an Sauerstoff. Nach Annahme (3) können wir o2 als konstant voraussetzen. Die beiden Reaktionen laufen dann nach den folgenden Gesetzmäßigkeiten ab: Die Masse NO, die in einem Liter Lösung wird pro Sekunde durch Donorzerfall freigesetzt wird, ist proportional zur Donorkonzentration. In Mol gerechnet, wird gleichzeitig der Donorbestand um den gleichen Betrag verringert. Der Proportionalitätsfaktor k1 (in 1/s) beschreibt die Reaktionsgeschwindigkeit des Zerfalls: (4.27) k1 cD (t) = Menge zerfallender D = Menge gebildetes NO pro Sek. Die Masse NO, die in einem Liter Lösung abgebaut wird, ist proportional zum Quadrat der NO-Konzentration und zur Sauerstoffkonzentration: (4.28) k2 o2 c2N O (t) = Menge abgebautes NO pro Sek. Die Mengenbilanz für den Donor enthält nur Verluste durch den Zerfall. Die Mengenbilanz des Stickoxids enthält Zuwachs vom Donorzerfall und Verlust vom NO-Abbau. d (4.29) cD (t) = −k1 cD (t), dt d (4.30) cN O (t) = k1 cD (t) − k2 o2 cN O (t)2 . dt Wir erhalten ein System von 2 Differentialgleichungen in den zwei unbekannten Funktionen cD und cN O . Obwohl sich dieses System mit Bleistift und Papier nicht durch eine geschlossene Formel lösen läßt, kann die Lösung mit Hilfe numerischer Verfahren auf dem Computer erfolgen, wenn man die Parameter k1 , k2 , c0 und o2 kennt. ¤ Die einzige Gleichgewichtslage ist die Null-Lage, denn aus ċD = 0 folgt mit k1 6= 0 dass cD (t) ≡ 0 und dann aus ċN O = 0 dass cN O (t) ≡ 0 (ein Punkt über einer Funktion ist eine Kurzschreibweise für die Ableitung dieser Funktion). Die Gleichgewichtslage des Modells wird ausgehend von jedem positiven Anfangszustand asymptotisch im Lauf der Zeit angenähert, aber nie ganz erreicht. Bemerkung: B. M. Mayer und K. Schmidt am Institut für Pharmakologie und Toxikologie, K. F. Universität Graz, haben diese Versuche durchgeführt, und das Modell dazu aufgestellt. Das Modell war bei der Validierung der Versuche nützlich: Die anfängliche Diskrepanz zwischen Modell und Daten hat die Aufmerksamkeit darauf gelenkt, daß bei diesem Prozeß der Einfluß der Temperatur auf die Reaktionsgeschwindigkeit sehr groß ist. Nach Modifikation der Versuche mit genauer regulierter Temperatur ist die Übereinstimmung zwischen Modell und Meßdaten bei geeigneter Wahl der Parameter (Reaktionsgeschwindigkeiten) sehr überzeugend. Diese Vorgehensweise ist eine Standardmethode zur Modellierung der Kinetik chemischer Reaktionen. Geht man vom dynamischen Modell dann zur statischen Mengenbilanz über, erhält man für reversible Reaktionen das bekannte Massenwirkungsgesetz. 48 Tabelle 4.5. Stickoxidbildung durch Zerfall einer Donorsubstanz Größe Einheit t s cD (t) Mol/l cN O (t) Mol/l c0 5.6 · 10−6 Mol/l o2 2 · 10−4 Mol/l k1 1.4 · 10−3 1/s k2 9 · 106 l2 /(Mol2 s) Modellgrößen Benennung Zeit Konzentration Donor Konzentration NO Anfangskonzentration Donor Konzentration O2 Reaktionskonstante Donorzerfall Reaktionskonstante NO-Abbau Kommentar gesucht gesucht bekannt bekannt bekannt bekannt dynamische Mengenbilanzen d cD (t) = −k1 cD (t), dt d cN O (t) = k1 cD (t) − k2 o2 cN O (t)2 . dt Anfangsbedingungen cD (0) = c0 , cN O (0) = 0. 4.6. Ein kleines Weltmodell. 1972 wurden vom Club of Rome Simulationsergebnisse veröffentlicht, die etwa für das Jahr 2000 einen dramatischen Bevölkerungszusammenbruch voraussagten. Diese Prognosen beruhten auf mathematischen Modellen der globalen Entwicklung, wie sie damals von J. W. Forrester, D. Meadows u. a. entwickelt wurden. Sie werden oft kurz als Weltmodelle bezeichnet. Wir betrachten hier eine einfache Variante, die sich aus der Bilanz des Zusammenspiels der drei Kenngrößen Bevölkerung, Wirtschaft und Umweltund Ressourcenbelastung ergibt. Ausgangspunkt ist folgende grobe Beschreibung der ”Weltdynamik”(nach H. Bossel, Modellbildung und Simulation, Vieweg 1994): Beispiel 4.16. Wir beobachten heute weltweit eine zunehmende Belastung der natürlichen Ressourcen (Rohstoffreserven) und der natürlichen Umwelt. Die Gründe hierfür liegen in einer ständigen Zunahme der Bevölkerung, damit auch der Verbräuche der verschiedensten Rohstoffe und der Abgabe von Abfallstoffen jeder Art an die Umwelt. Eine wichtige Bestimmungsgröße dieser Ressourcen- und Umweltbelastung ist der spezifische Verbrauch an Rohstoffen und Energie pro Kopf. Dieser spezifische Verbrauch steigt noch tendenziell mit der wachsenden Umweltbelastung (durch wachsende Aufwendungen für den Umweltschutz und schwieriger werdende Abbaubedingungen). Andererseits ist festzustellen, dass sich mit wachsendem Einsatz von Rohstoffen und Energien pro Kopf, also mit wachsendem spezifischen Konsum, zunächst die Versorgungsmöglichkeiten verbessern, so dass mehr Menschen versorgt werden können. Festzustellen ist aber auch, dass auf Grund der wachsenden Umweltbelastungen mit Schadstoffen wie auch der schwindenden natürlichen Ressourcenbasis Rückwirkungen auf 4. MENGENBILANZEN 49 die Gesundheit und die Lebenserwartung der Bevölkerung bestehen. Die Umweltbelastungen lassen ein zunehmendes politisches Handeln erwarten, um schädlichen Entwicklungen zu begegnen. Dieser Beschreibung folgend (wie immer man dazu stehen mag), ergeben sich drei für den Zustand und die zeitliche Entwicklung maßgebliche Größen, nämlich die Bevölkerung, der spezifische Konsum (Kurzbegriff stellvertretend für den gesamten Verbrauch an natürlichen Ressourcen pro Kopf) und die Belastung der Umwelt. Dementsprechend definieren wir die drei Zustandsgrößen V Größe der Bevölkerung L Umweltbelastung K spezifischer Konsum und entnehmen der obigen Beschreibung dynamische Mengenbilanzen für diese Größen. Der Kürze halber werden hier Überlegungen bzgl. adäquater Maßeinheiten beiseite gelassen. Die Zunahme der Bevölkerung ist proportional zur Größe der Bevölkerung, die Zuwachsrate wird mit wachsendem Konsum größer und mit wachsender Umweltbelastung kleiner. Eine Formel mit dieser Eigenschaft ist K Zuwachsrate von V = β V. L Die Abnahme der Bevölkerung pro Zeiteinheit ist proportional zu V und soll sich bei steigender Umweltbelastung verstärken; wir setzen Abnahmerate von V = µLV. Darin sollen β und µ positive Konstanten sein. Die Umweltbelastung soll mit wachsender Bevölkerung steigen, ebenso mit wachsendem Konsum, was z. B. in der Formel Zuwachsrate von L = λV K mit λ > 0 der Fall ist. Um zum Ausdruck zu bringen, dass die Umweltbelastung durch natürliche Prozesse – wie den Zerfall von Schadstoffen oder die CO2 -Aufnahme der Pflanzen – vermindert wird, setzen wir die Formel einer chemischen Reaktion erster Ordnung an, nämlich Abnahmerate von L = αL, mit einer positiven Konstanten α. Ökologische Abbauprozesse haben Kapazitätsgrenzen, die z. B. durch Nährstoff-, Licht- und Wasserbeschränkungen gegeben sind. Bei Überlastung kann der Abbau bestenfalls an dieser Grenze operieren; es gibt daher einen kritischen Wert L0 so, dass oberhalb dieses Wertes der Abbau bei einem konstanten Wert hängt, also Abnahmerate von L = αL0 , für L > L0 . Schließlich suchen wir eine Formel für die Änderung des Konsums. Ungehemmtes Wirtschaftswachstum wird durch exponentielles Wachstum K̇ = κK modelliert. Realistischer ist es, eine Kapazitätsgrenze K0 zu modellieren; wie im Populationsbeispiel ist dies z. B. mit der logistischen Bilanz K̇ = κK(K0 − K) der Fall. Um zu berücksichtigen, dass laut obiger Beschreibung zunehmende Umweltbelastung den 50 Verbrauch zunächst erhöht, andererseits bei zunehmender Belastung der Verbrauch durch politisches Handeln gedrosselt wird, ersetzt man auf der rechten Seite der logistischen Bilanz K durch das Produkt KL, und erhält Änderungsrate von K = κKL(σ − KL) mit positiven Konstanten κ, σ. Zusammengefasst ergibt sich das folgende mathematische Modell für die zeitliche Änderung der Größen V (t), L(t), K(t) zur Zeit t: (4.31) (4.32) (4.33) d K(t) V (t) = β V (t) − µL(t)V (t), dt L(t) ½ d αL(t), für L(t) ≤ L0 L(t) = λV (t)K(t) − αL0 , für L(t) > L0 dt ¡ ¢ d K(t) = κK(t)L(t) σ − K(t)L(t) . dt Dies ist ein System von 3 nichtlinearen Differentialgleichungen, das man für numerische Simulationen verwenden kann. Die Dynamik der Lösungen hängt stark von den (relativen) Werten der Parameter β, µ, λ, α, L0 , κ und σ ab. Es muss versucht werden, wenigstens einige der Parameter in vom Modell unabhängigen wirtschaftswissenschaftlichen Untersuchungen zu bestimmen. Einige der Parameter sind durch gesellschaftliches und politisches Handeln beeinflussbar, etwa β (Geburtenkontrolle), λ (Umweltschutz) oder σ (Drosselung des Konsums). Daraus erklärt sich der Appell-Charakter des Einsatzes von Weltmodellen: diese oder jene Entwicklung wird vorausgesagt, wenn nicht rechtzeitig diese oder jene Maßnahmen greifen. Das kleine Modell ist zwar zu simpel, um ernstzunehmende Prognosen liefern zu können, es wird hier nur zur Demonstration von Mengenbilanzen herangezogen. Trotz seiner Kleinheit zeigt das Modell jedoch die auch für ausgebaute Weltmodelle typischen Verhaltensmuster: gedämpfte Schwingungen – oder aber Aufschaukelung und Zusammenbruch – je nach Parametersatz. An den Beispielen dieses Kapitels sieht man die Allgemeinheit und breite Anwendbarkeit der Methode der dynamischen Mengenbilanz; sie führt zu Modellen mit Differentialgleichungen, mit denen die Änderung der Mengen beschrieben wird. Das Wort ’Mengen’ wird hier bewusst in seiner ungenauen Bedeutung verwendet, z. B. kann Umweltbelastung sowohl Schadstoffe in Gewässern als auch Defekte der Atmosphärenzusammensetzung umfassen. Später wird gezeigt, dass man am Computer die Lösungen (eines Systems) von Differentialgleichungen recht einfach näherungsweise berechnen und graphisch darstellen kann. Zusätzlich zum Verständnisgewinn bei der Modellbildung selbst, hat man also Möglichkeiten durch (systematisches) Probieren und Simulieren qualitative und quantitative Eigenschaften des Modells zu untersuchen. 5. DIMENSIONEN UND EINHEITEN 51 5. Dimensionen und Einheiten 5.1. Das SI-System. Jeder Meßgröße kommt eine Maßeinheit zu, etwa Meter (für Längen), Kubikmeter (Volumen), Newton (Kraft), Watt (Leistung) u.a.. Bekanntlich gibt es verschiedene Einheiten für dieselbe Größe, man kann etwa Leistung in Watt oder PS angeben. Das SI-System (système international) erzielt eine Vereinheitlichung, indem alle Maßeinheiten auf einige wenige Grundeinheiten zurückgeführt werden, und zwar Zeit Länge Masse el. Stromstärke Temperatur Stoffmenge Lichtstärke s m kg A K mol cd Sekunde Meter Kilogramm Ampere Kelvin Mol Candela Wir geben einige abgeleitete Maßeinheiten der Mechanik an: Frequenz Geschwindigkeit Beschleunigung Kraft Druck Arbeit Leistung Hz s−1 m s−1 m s−2 N kg m s−2 Pa N m−2 = kg m−1 s−2 J N m = kg m2 s−2 W N m s−1 = kg m2 s−3 Hertz Newton Pascal Joule Watt Merksatz 5.1. Achten Sie darauf, daß die Zahlenangaben in Ihren Modellen auf ein einheitliches Maßsystem bezogen sind. Ständige Umrechnungen zwischen Einheitensystemen machen die Arbeit undurchsichtig und sind Fehlerquellen. 5.2. Dimensionen. Jede Maßeinheit gehört zu einer Dimension, das ist die Art der Größe, die durch die Einheit beschrieben wird. So entspricht das Meter (ebenso wie die Meile, Seemeile oder ein Angström) der Dimension Länge, ein Kilogramm, Pfund, oder eine Tonne gehören zur Dimension Masse. In den beiden SI Tabellen stehen in der ersten Spalte Dimensionen und in der letzten Spalte die zugehörigen SI-Einheiten. In korrekt formulierten Modellen unterliegen dimensionierte Zahlengrößen bestimmten Regeln: Merksatz 5.2. Die folgenden Vorschriften regeln den Gebrauch von dimensionierten Größen in Formeln: (1) Man darf nur Größen derselben Dimension gleichsetzen. (2) Man darf nur Größen derselben Dimension addieren oder subtrahieren. Die Summe (Differenz) hat dann wieder dieselbe Dimension. 52 (3) Multipliziert (dividiert) man eine Größe der Dimension A mit einer Größe der Dimension B, so hat das Produkt die Dimension AB (der Quotient die Dimension A/B). (4) Differenziert man eine Größe der Dimension A nach einer Größe der Dimension B, so hat die Ableitung die Dimension A/B. Integriert man eine Größe der Dimension A nach einer Größe der Dimension B, so hat das Integral die Dimension AB. (5) In alle anderen Funktionen (Winkelfunktionen, Exponentialfunktion, Logarithmus usw.) dürfen nur dimensionslose Größen eingesetzt werden. Die Resultate sind wieder dimensionslose Größen. Ein System von Formeln, das alle diese Vorschriften erfüllt, nennen wir homogen in der Dimension. Beispiel 5.3. Welche Dimensionen und Einheiten haben die Größen im Modell zu Beispiel 4.15? Lösung. Die Größe t bezeichnet Zeit. Als Einheit kommt nach dem SI-System die Sekunde in Frage. cD und cN O sind Konzentrationen, also Teilchenzahlen pro Volumen. Als Einheit käme nach dem SI-System mol/m3 in Frage. Wir verwenden im Modell mol/l, das sind 1000 mol/m3 , denn 1 m3 umfaßt 1000 l. (Zwar ist Liter keine Grundeinheit des SI-Systems. Weil aber in diesem Modell weder Längen noch Flächen vorkommen, bringt es nichts, das Volumen in die dritte Potenz einer Länge zu zerlegen.) Die Einheiten der Modellparameter ergeben sich daraus, daß alle obigen Regeln erfüllt sein müssen: Wir untersuchen die Gleichung d cD (t) = −k1 cD (t) dt auf Dimension. Dabei lassen wir die in Klammern stehenden t ausser Betracht, diese bedeuten ja nur “zum Zeitpunkt t”. dtd cD ist die Ableitung einer Konzentration nach der Zeit und hat nach Regel (4) als Dimension Konzentration/Zeit, d.i. Masse/(Volumen · Zeit). Daher muß auch k1 cD dieselbe Dimension haben. Weil cD eine Konzentration ist, bleibt nach Regel (3) für den Faktor k1 die Dimension 1/Zeit, die Einheit 1/s. Ebenso untersuchen wir die Gleichung d cN O (t) = k1 cD (t) − k2 o2 cN O (t)2 . dt Wieder hat dtd cN O die Dimension Konzentration/Zeit. Die beiden Summanden auf der rechten Seite müssen dieselbe Dimension haben. Da k1 als Dimension 1/Zeit hat und cN O eine Konzentration ist, paßt der erste Summand bereits. cN O und o2 sind Konzentrationen. Daher hat o2 c2N O als Dimension Konzentration3 . Da k2 o2 cN O als Dimension Konzentration/Zeit hat, bleibt für den Faktor k2 die Dimension 1/(Zeit.Konzentration2 ). Als Einheit ergibt sich l2 /(mol2 s). ¤ 5. DIMENSIONEN UND EINHEITEN 53 Zur Bestimmung von Dimensionen ist es zweckmäßig mit fest gewählten Einheiten zu arbeiten. Wir verwenden eckige Klammern, um die Einheit einer Größe zu bezeichnen, [Größe] = algebraische Kombination der Grundeinheiten. Wenn g im Modell z. B. eine Beschleunigung bezeichnet, schreiben wir m [g] = 2 . s Man “rechnet” dann mit den Abkürzungen für die Einheiten, als ob sie algebraische Variable wären. In den zusammenfassenden Tabellen zu den in früheren Kapiteln gebildeten Modellen finden Sie die Einheiten der Modellgrößen. Mit deren Hifle können Sie die Modelle hinsichtlich der Dimensionsregeln überprüfen. Merksatz 5.4. Die Überprüfung von Modellgleichungen auf Dimensionen ist eine gute Fehlerprobe, ob die Gleichungen wenigstens formal richtig sind. Wenn man sich zum Beispiel nicht sicher ist, ob das Gesetz von Torricelli für die Ausflussgeschwindigkeit v aus einem √ Behälter mit Spiegelhöhe h aufgrund der Erdbeschleunigung g wirklich v = 2gh lautet, kann man zur Kontrolle eine Dimensionsbetrachtung durchführen [v 2 ] = m2 s2 und [2gh] = [2][g][h] = m m, s2 also ist die Formel v 2 = 2gh tatsächlich homogen in der Dimension. Die Zahl 2 ist dimensionslos und wird daher einfach weggelassen. Übrigens ergibt sich der Zusammenhang mit dem Kessel-Modell a = d/w aus Tabelle 4.1 mit a = Av, γ = ρg, w = ρv/2A, mit der Dichte der Flüssigkeit ρ und dem Querschnitt des Abflussrohrs A. Prüfen Sie dies nach, insbesondere auch die Dimensionen (die Dichte ist die Masse einer Substanz pro Einheitsvolumen, [ρ] = kg/m3 ). Die Überprüfung (vorläufiger) Modelle auf Dimensionsregeln mag auf den ersten Blick wie nutzlose Pedanterie erscheinen, in der Praxis der Modellbildung ist sie aber ein äusserst wirksames und einfach einsetzbares Werkzeug. Dabei darf allerdings nicht der Versuchung nachgegeben werden, zusätzliche (und überflüssige) Modell-Parameter einzuführen, nur zum Zweck des Zurechtbiegens der Dimensionen. Beispiel 5.5. Der Gebrauchsanweisung eines Fallschirms entnehmen Sie, dass sein Widerstandsbeiwert ζ in Quadratmetern angegeben ist; insbesondere schließen Sie daraus, dass [ζ]=m2 . Schätzen Sie ab, wie schwere Lasten der Masse m Sie damit abwerfen können, wenn die Fallgeschwindigkeit einen vorgegebenen Wert v nicht überschreiten darf. 54 Lösung. Wir stellen zunächst eine statische Kräftebilanz Gewicht= Reibung auf, also mg = R mit der Erdbeschleunigung g. Ein plausibles Modell für die Reibung aufgrund des Luftwiderstands des Fallschirms sollte sowohl mit ζ und v, als auch mit der Atmosphärendichte ρ zunehmen. Der einfachste Ansatz mit dieser Eigenschaft ist das Produkt R = ζρv. Die entsprechende Kräftebilanz lautet mg = ζρv. Wir bestimmen die Dimensionen dieses Modells: m kg m kg . [mg] = kg 2 und [ζρv] = [ζ][ρ][v] = m2 3 = s m s s Links und rechts vom Gleichheitszeichen stehen also verschiedene Dimensionen! Daher müssen wir dieses Modell verwerfen. Wir sehen, dass in der Dimension von R im Zähler noch eine Länge und im Nenner eine Zeit fehlt, insgesamt also ein Faktor Geschwindigkeit. Dies bringt uns auf die Idee den Ansatz R = ζρv 2 zu versuchen. Er ist ebenso plausibel und hält sogar der Dimensionsbetrachtung stand: kg m2 m kg [R] = m 3 2 = 2 = [mg]. m s s Die Formel R = ζρv 2 ist somit ein brauchbarer Kanditat für R. Dieses Modell liefert für die maximal abwerfbare Masse den Wert m = ζρv 2 /g. Es kann aber ohne genauere Angaben nicht eindeutig geklärt werden, ob in der Gebrauchsanweisung wirklich diese Formel gemeint ist, oder ob in ζ vielleicht noch dimensionslose Faktoren versteckt sind. Zum Beispiel werden in Gleichungen für den Druck in Rohrströmungen Reibungsterme in der Form 12 ζρv 2 angesetzt mit einem dimensionslosen Widerstandsbeiwert ζ: der Faktor 12 ist eine altehrwürdige Konvention und erinnert an die kinetische Energie der Strömung. ¤ 2 5.3. Dimensionslose Modelle. Das Stickoxid-Modell enthält 4 Modellparameter (k1 , k2 , c0 und o2 ). Wir sehen aber, daß manche der Parameter nur gemeinsam vorkommen. Zum Beispiel treten k2 und o2 nur gemeinsam als Produkt k2 o2 auf. Wir könnten sehr gut die beiden Parameter in einen einzigen zusammenfassen. Wenn man sich eine Übersicht über das Verhalten des Modells für verschiedene Parameterwerte verschaffen will (und das kann eine sehr wichtige Fragestellung sein), ist es ein Vorteil, wenn in den Modellgleichungen möglichst wenige Parameter vorkommen. Eine systematische Methode, ein Modell auf möglichst wenige Parameter zu reduzieren, besteht darin, es in ein Modell mit dimensionslosen Größen umzuformen. Es gibt in sinnvollen Modellen immer dimensionslose Produkte, das sind Kombinationen von Modellgrößen derart, dass sich die Dimensionen durch die Kombination wegkürzen. Man spricht dann von einer dimensionslosen Größe und schreibt für die zugehörige Einheit 1. Beispiel 5.6. Bilden Sie einige dimensionslose Produkte aus den Modellgrößen im Modell zu Beispiel 4.15. 5. DIMENSIONEN UND EINHEITEN 55 Lösung. Basteln wir uns zum Beispiel ein dimensionsloses Produkt, das k2 enthält,wobei [k2]=l2 /(mol2 s). Um die Sekunde wegzukürzen, dividieren wir durch k1 . Die Konzentrationen kürzen wir, indem wir mit c20 multiplizieren. Wir erhalten das Produkt k2 c20 . k1 Rechnen wir noch einmal die Einheit des Produktes nach: mol mol l2 · · s = 1. 2 · l l mol s Alle Einheiten haben sich weggekürzt, wir haben ein dimensionsloses Produkt gefunden. Überzeugen Sie sich selbst, daß auch die folgenden Produkte dimensionslos sind: cD c3N O cD , , k1 t. c0 c20 o22 Wir können leicht unendlich viele weitere dimensionslose Produkte erzeugen, indem wir die, die wir bereits haben, in verschiedener Weise miteinander multiplizieren. ¤ Die dimensionslosen Produkte können als neue Modellgrößen herangezogen werden. Man erhält dann dimensionslose Gleichungen. Wenn man genügend viele genügend unabhängige Produkte einführt, erhält man ein dimensionsloses Modell. Dieses ist gleichwertig mit dem Ausgangsmodell in dem Sinn, dass die Größen der beiden Modelle eindeutig ineinander umgerechnet werden können. Merksatz 5.7 (Pi-Theorem). Jedes Formelsystem mit dimensionsbehafteten Größen, das homogen in der Dimension ist, läßt sich in ein Formelsystem mit dimensionslosen Produkten dieser Größen umschreiben. Unter dem Stichwort Dimensionsanalyse findet man in Lehrbüchern über mathematische Modellierung eine systematische Methode, möglichst wenige dimensionslose Produkte aufzufinden, aus denen sich alle anderen dimensionslosen Produkte durch Multiplikationen und Divisionen zusammensetzen lassen. Diese wenigen Produkte können dann als Größen eines dimensionslosen Modells herangezogen werden. Obwohl die Methode ziemlich einfach ist, sie beruht auf der Lösung eines linearen Gleichungssystems, behandeln wir sie hier nicht weiter. In vielen Fällen genügt Probieren und Geschick ohne viel Theorie. Beispiel 5.8. Machen Sie das logistische Modell der Populationsdynamik (Beispiel 4.9) dimensionsfrei. Das Modell lautet: µ ¶ 1 P (t) d P (t) = P (t) 1 − . dt τ K 56 Dabei ist t die Zeit (in Jahren), P (t) die Bevölkerungszahl zur Zeit t (in Individuen). K ist die Kapazität des Lebensraumes (in Individuen), und τ ist eine Zeitkonstante (in Jahren), die die Geschwindigkeit der Populationsentwicklung beschreibt. Lösung. t und τ haben beide die Dimension Zeit. Daher führen wir als neue dimensionslose Variable t s= τ ein und betrachten alle Funktionen in Abhängigkeit von s statt t. Wir merken vor: ds 1 = . dt τ P (t) und K haben dieselbe Dimension (nämlich Bevölkerungszahl). Als neue dimensionslose Zustandsgröße führen wir P (t) u(s) = K ein. Also bezeichnet u(s) den Bruchteil der Kapazität des Lebensraumes, der zum Zeitpunkt t = τ s von der Bevölkerung ausgeschöpft wird. Bei u(s) = 1 ist der Lebensraum voll gesättigt. Wir formen jetzt die Differentialgleichung um: µ ¶ d 1 P (t) P (t) = P (t) 1 − dt τ K d 1 Ku(s) = Ku(s)(1 − u(s)) dt τ d ds K Ku(s) · = u(s)(1 − u(s)) ds dt τ K d K u(s) = u(s)(1 − u(s)) τ ds τ d u(s) = u(s)(1 − u(s)) ds ¤ Im dimensionslosen Modell d u(s) = u(s)(1 − u(s)) ds gibt es gar keine Parameter mehr. In dieser Version des Modells ist eine Anpassung an Daten (die entsprechend transformiert werden müssten) nicht möglich. Parameter, deren Werte noch nicht festgelegt sind oder zur Anpassung des Modells an verschiedene Datensätze verwendet werden sollen, wird man also nicht wegtransformieren, es sei denn vorübergehend, um die Struktur des Modells kennenzulernen. Die Größen eines dimensionslosen Modells haben meist eine weniger anschauliche Bedeutung als diejenigen des Ausgangsmodells. Aber der Übergang zu einer möglichst einfachen Form eines Modells bringt dessen essenzielle Struktur am klarsten zum Vorschein und eliminiert redundante Größen, die bei der Arbeit mit dem Modell hinderlich sind. Daher ist es für jede Modelliererin von Interesse, gleichwertige aber vereinfachte Formen ihres Modells zu erarbeiten. 6. SIMULATION DETERMINISTISCHER DYNAMISCHER SYSTEME 57 6. Simulation deterministischer dynamischer Systeme In diesem Abschnitt betrachten wir einige Aspekte der Simulation dynamischer Systeme an Hand von Differentialgleichungs-Modellen. Merksatz 6.1. Wenn der Anfangszustand und alle externen Größen und Parameter eines deterministischen dynamischen Modells gegeben sind, lassen sich - zumindest näherungsweise - zukünftige Zustände am Computer berechnen. Diese Rechnung für eine Folge von zukünftigen Zeitpunkten heißt Simulation oder Vorwärtsrechnung. Das Ergebnis bezeichnet man als numerische Lösung. 6.1. Simulationswerkzeuge. Für die Simulation von dynamischen Systemen steht eine Vielfalt von Hilfsmitteln zur Verfügung. Viele Kriterien spielen bei der Auswahl mit (die Reihenfolge der Aufzählung sagt nichts über die Wichtigkeit aus): (1) Flexibilität: Wird nur ein bestimmtes System in verschiedenen Parameterkonfigurationen simuliert? Wird ein Programm zur Modellierung verschiedener dynamischer Systeme gebraucht? Wird ein Universalwerkzeug für verschiedenste mathematische Operationen gebraucht? (2) Kapazität und Rechengeschwindigkeit: Wird die Methode auf ein sehr großes System angewendet? Soll die Simulation im Online-Betrieb eingesetzt werden und daher fast augenblicklich auf die Eingaben reagieren können? (3) Bequemlichkeit: Welche Programmierkenntnisse hat der Benützer? Wird ein Simulationswerkzeug nur einmal eingerichtet und oft benützt, sodaß auch ein erheblicher Arbeitsaufwand bei der Programmierung gerechtfertigt ist? Soll das Programm interaktiv betrieben werden? (4) Vorhandene Hardware. (5) Kosten. Low-Level Programmiersprachen, zum Beispiel BASIC, FORTRAN, C oder PASCAL, sind darauf ausgerichtet, universell alle Funktionen eines Computers programmieren zu können. Compilersprachen setzen das Programm erst in Maschinensprache um und haben anschließend einen sehr schnellen Code zur Verfügung. Interpreter (viele Versionen von BASIC) übersetzen jeden eingegebenen Schritt und führen ihn sofort aus. Das braucht länger, dafür ist ein interaktiver Betrieb möglich: Man kann die Rechnung sofort modifizieren, wenn die Ergebnisse der ersten Nebenrechnungen es nahelegen. Low-Level Programmierung kann die Eigenheiten der verwendeten Hardware optimal ausschöpfen und wird daher für sehr rechenintensive Probleme eingesetzt. Der Vorbereitungsaufwand für Low-Level-Programmierung ist sehr hoch, weil sich der Programmierer um viele Details wie die Dateneingabe und Ausgabe oder die Sicherung des Programmes bei unvorhergesehenen Vorfällen (logisch inkonsistente Dateneingabe) selbst kümmern muß. Für die Lösung von Differentialgleichungen, so wie für viele andere Routineaufgaben, stehen allerdings fertige, ausgetestete Unterprogramme in professionellen Programmbibliotheken zur Verfügung. Sie müssen nur mehr ins Hauptprogramm eingelinkt werden. 58 Tabellenkalkulationsprogramme (etwa EXCEL) sind zwar keine Simulationswerkzeuge, erlauben aber die Programmierung einfacher mathematischer Prozeduren mit viel weniger Arbeitsaufwand als Programmiersprachen. Die Bearbeitung erfolgt interaktiv. Für jede Größe wird am Bildschirm eine Zelle eingerichtet, in die die Formel eingetragen wird, nach der sich die Größe aus den Einträgen der anderen Zellen errechnet. Die Grenzen sind erreicht, wenn komplexe Rechenprozesse oder große Datenmengen bewältigt werden sollen. Interaktive Mathematikpakete sind Mehrzweckprogramme für alle Arten von mathematischen Problemen. Es handelt sich um Pakete, die sowohl numerisch rechnen als auch symbolisch Formeln umformen können (zweiteres wird in dieser Vorlesung nicht verwendet); Beispiele sind MATLAB, MATHEMATICA, MAPLE. Diese Mathematikpakete stellen unter vielem anderen auch Lösungsverfahren für Differentialgleichungen zur Verfügung. Der Vorteil dieser Werkzeuge besteht in ihrer Vielseitigkeit und Bequemlichkeit. Erst bei sehr großen Problemen stößt man auf die Grenzen der Kapazität. Simulationssprachen (wie SIMULINK, VENSIM, STELLA) sind auf die Simulation dynamischer Systeme spezialisiert. Für diese Bedürfnisse bieten sie optimale Bequemlichkeit, nämlich eine besonders einfache graphische Programmierung zur Eingabe von Simulationsdiagrammen, vorbereitete Ein- und Ausgaberoutinen mit Graphik, und vorbereitete Lösungsverfahren, die man nur mehr aus demMenu auswählen muß. Sie sind flexibel genug, um verschiedenste Systeme zu simulieren. Die hohe Bequemlichkeit schlägt sich gelegentlich in deutlichen Einschränkungen der Kapazität und Rechengeschwindigkeit nieder. In dieser Vorlesung werden bei Computer-Demonstrationen Matlab und dessen Simulationspaket Simulink verwendet. Spezialprogramme sind für bestimmte Anwendungen geschrieben, die immer wiederkehren (Analyse von Grundwasserströmungen, Schadstoffausbreitung, Spannungsund Dehnungsverhalten in elastischen Strukturen, chemische Reaktionen). Sie sind auf die Anwendung optimal zugeschnitten und verlangen vom Benützer am wenigsten Vorbereitungsarbeit. Wir erwähnen noch ein Simulationswerkzeug, das auf Grund der hohen Leistung der digitalen Computer jetzt mehr und mehr in den Hintergrund tritt, den Analogrechner. Im Analogrechner werden die simulierten Systeme als elektrische Schaltkreise nachgebaut. Man entwirft also aus Transistoren, Widerständen und anderen Bauelementen Schaltungen, in denen Spannungen auftreten und Ströme fließen, welche genau die simulierten Differentialgleichungen erfüllen. Die Rechenergebnisse lassen sich dann als Spannungen an bestimmten Stellen der Schaltung messen, zum Beispiel mit Oszillographen. Ein Vorteil der Analogrechner ist ihre Geschwindigkeit: Während der Digitalrechner eine Sequenz von Rechenschritten abarbeitet, “geschieht” das simulierte System gleichzeitig in allen Stromkreisen des Analogrechners. Die Formulierung dynamischer Syteme durch Simulationsdiagramme, also Blockschaltbilder, geht traditionell auf den Einsatz der Analogrechner zurück. 6. SIMULATION DETERMINISTISCHER DYNAMISCHER SYSTEME 59 6.2. Das Eulersche Polygonzugverfahren. Bevor eine Simulation mit einem Simulationspaket gestartet werden kann, muß der Benützer Verfahrens-Parameter wie die Rechengenauigkeit oder die Schrittweite festlegen, und manchmal auch eines unter mehreren Rechenverfahren auswählen. Um die Rolle dieser Entscheidungen zu beurteilen, müssen wir die Funktionsweise einer Simulationsrechnung zumindest in groben Zügen verstehen. Ein kontinuierliches Modell wird auf einem ganzen Zeitintervall t0 < t < tend betrachtet, sein Zustand numerisch aber nur zu diskreten Zeitpunkten ti zwischen t0 und tend berechnet. Den Zustand zur Zeit t bezeichnen wir mit x(t), wieder ist x(t) ein Vektor, der alle Zustandsgrößen zusammenfaßt. Die Entwicklung des Systems wird durch eine Differentialgleichung beschrieben: d x(t) = f (t, x(t)). dt Dabei ist dtd x(t) der Vektor, der aus den Wachstumsraten aller Zustandsgrößen besteht, und f ist eine Funktion, deren Formel bekannt ist. Wir nehmen an, daß der Anfangszeitpunkt t0 und der Anfangszustand x0 = x(t0 ) bekannt sind, und wollen zukünftige Zustände zu gewissen Zeitpunkten ti+1 > ti > t0 berechnen. Wir nehmen der Einfachheit halber zunächst an, daß das System nur eine Zustandsgröße beinhaltet. Wenn die Zukunft des Systems bekannt wäre, könnten wir also eine Kurve zeichnen, indem wir waagrecht die Zeit und senkrecht den Zustand auftragen. Genau diese Kurve kennen wir aber noch nicht, wir sollen sie berechnen. An Hand der Differentialgleichung d (6.1) x(t) = −x2 (t), x(0) = 2, dt erklären wir ein Verfahren, das diese Aufgabe (zunächst schlecht und recht) bewältigt. In diesem Fall hängt die rechte Seite f nur von x und nicht von t ab, und es ist f (x) = −x2 . Abbildung 6.1 zeigt das Schema des Verfahrens, und Abbildung 6.2 zeigt maßstabgerecht die exakte Lösung und zwei Näherungslösungen von (6.1). Die Zahlenwerte sind in Tabelle 6.1 zusammengestellt. Gleichung (6.1) ist besonders einfach und läßt sich auch auf dem Papier lösen. Die exakte Lösung ist 1 . x(t) = 0.5 + t (Machen Sie die Probe.) Deshalb kann man an diesem Beispiel gut sehen, wie weit die Näherungslösungen von der exakten Lösung abweichen. Wir suchen die Lösung x(t) für 0 ≤ t ≤ 1. Wir unterteilen das Intervall [0, 1] in n Teilschritte. Der Einfachheit halber, und weil kein Grund besteht, eine andere Unterteilung zu wählen, wählen wir die Schritte in gleichem Abstand (das wäre aber nicht unbedingt notwendig): 0 = t0 < h = t1 < 2h = t2 < · · · < nh = 1. 60 Abbildung 6.1. Schema des Eulerschen Polygonzugverfahrens Tabelle 6.1. Eulerverfahren für (6.1) ti 0.0 0.25 0.5 0.75 1.0 xi 2.0 1.0 0.75 0.6094 0.5165 x2i 4.0 1.0 0.5625 0.3713 0.2668 hx2i 1.0 0.25 0.1406 0.0928 0.0667 x(ti ) 2.0 1.3333 1.0 0.8 0.6667 Näherungslösungen für Schrittweite h = 0.25 und exakte Lösung Den Abstand bezeichnen wir auch als Schrittweite, und die Stellen t0 , · · · , tn als Stützstellen. Am liebsten wüßten wir den exakten Wert x(ti ) an jeder der Stützstellen. Wir werden dafür nur Näherungswerte berechnen, die wir mit x0 , · · · , xn bezeichnen. Damit unser Beispiel nicht zu lang ausfällt, wählen wir nur n = 4, also nur 5 Stützstellen und eine Schrittweite von 0.25. Der Wert x(t0 ) = x(0) = 2 ist bekannt. Wenn wir diesen Wert in f einsetzen, erhalten wir f (x0 ) = −22 = −4. Das ist aber noch nicht der nächste Zustand, sondern nur die Wachstumsrate, also die Steigung der Tangente an die Lösungskurve am Punkt t = 0. Weil wir im Augenblick nichts genaueres über die Lösungskurve wissen, folgen wir der Tangente bis zur nächsten Stützstelle und hoffen, daß wir uns dabei von der Lösungskurve nicht allzuweit entfernen. Die Gleichung der Tangente ist x(t) = x0 + (t − t0 )f (x0 ) = 2 − (t − t0 ) · 4. An der nächsten Stützstelle t1 = 0.25 nimmt die Tangente den Wert x1 = 2 − 0.25 · 4 = 1 6. SIMULATION DETERMINISTISCHER DYNAMISCHER SYSTEME 61 an. Wir akzeptieren diesen Wert als Näherungswert für die Lösung. Weil wir aber nicht der Lösungskurve selbst, sondern nur der Tangente gefolgt sind, müssen wir mit einem Fehler rechnen, wir liegen nicht mehr genau auf der exakten Lösung: Dieser Fehler heißt Abbruchfehler. Wir kennen also jetzt, zumindest näherungsweise, einen Wert der Lösung zur Zeit t1 = 0.25, nämlich x1 = 1. Wir nehmen an, daß dieser Wert die Lösung zumindest einigermaßen genau wiedergibt. Wir wiederholen jetzt genau dieselbe Prozedur: Nach der Differentialgleichung ist die Steigung der Tangente der Lösungskurve im Punkt t1 d x(t1 ) = f (x(t1 )) ≈ f (x1 ). dt In unserem Beispiel ist das d x(t1 ) ≈ −x21 = −1. dt Wir folgen also der Geraden x = x1 + (t − t1 )f (x1 ) = 1 − (t − 0.25) · 1 bs zur nächsten Stützstelle t2 = 0.5 und erhalten dort x2 = x1 + (t2 − t1 )f (x1 ) = 1 − 0.25 · 1 = 0.75. Selbst wenn x1 der exakte Wert der Lösung an der Stelle t1 gewesen wäre, müßten wir einen Abbruchfehler in Kauf nehmen, denn wieder sind wir einer Tangente statt der Lösungskurve selbst gefolgt. Wir wiederholen diesen Schritt solange, bis wir alle Stützstellen erreicht haben. Die Formel zur Berechnung des Näherungswertes xi+1 an der Stützstelle ti+1 aus dem Näherungswert xi an der Stützstelle ti ist, wie wir an der bisherigen Rechnung gesehen haben, xi+1 = xi + (ti+1 − ti )f (ti , xi ). Tabelle 6.1 zeigt, welche Zahlenwerte dabei herauskommen. Merksatz 6.2. Numerische Lösungsverfahren für Differentialgleichungen bestimmen vom Anfangszustand aus mit Hilfe der Differentialgleichung die Richtung, in die sich der Zustand weiterentwickeln wird. Sie gehen ein kurzes Geradenstück in diese Richtung und bestimmen dann eine neue Richtung durch Einsetzen des ersten Näherungszustands in die rechte Seite der Differentialgleichung - und so weiter bis zum gewählten Endzeitpunkt. Je länger wir den Tangenten folgen, ohne unseren Kurs zu korrigieren, desto weiter entfernen wir uns (im Allgemeinen) von der Lösungskurve. Daher wird das Verfahren eine bessere Näherung ergeben, wenn wir kürzere Schritte machen. Abbildung 6.2 zeigt die exakte Lösung von (6.1) und die Näherungslösungen für die Schrittweiten 0.25 und 0.1. Wir sehen, daß bei der kürzeren Schrittweite die Lösung besser wiedergegeben wird. Um den Abbruchfehler gering zu halten, muß man also eine kleine Schrittweite wählen. Leider entsteht außer dem Abbruchfehler ein zweiter Rechenfehler: Weil auch der beste Computer nur endlich viele Ziffern speichern kann, wird bei jedem Rechenschritt der Zahlenwert des Ergebnisses auf eine gewisse Anzahl von Dezimalstellen gerundet. Dabei 62 Abbildung 6.2. Eulersches Polygonzugverfahren für (6.1) 2 *o 1.8 1.6 * 1.4 x * 1.2 * 1 * o * * 0.8 * o * * o 0.6 * o 0.4 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 t Exakte Lösung und zwei Näherungslösungen: Kreise: Schrittweite 0.25; Sterne: Schrittweite 0.1 entsteht ein Rundungsfehler. Dieser Rundungsfehler wirkt besonders gravierend, wenn Zahlen von sehr verschiedener Größe zueinander addiert werden. Zum Beispiel verschwindet bei Rundung auf 5 signifikante Stellen der zweite Summand in der Addition 1 + 0.00001 völlig, er wirkt sich erst auf der sechsten Stelle aus: 1.00001. (Noch schlimmer wirkt der Rundungsfehler bei Subtraktion von fast gleichgroßen Zahlen.) Wenn die Schrittweite sehr klein gewählt wird, wird in jedem Schritt zur bisherigen Näherungslösung xi nur eine winzige Zahl addiert, und der Rundungsfehler kann sich deutlich auswirken. Dazu kommt, daß bei einer kleinen Schrittweite sehr viele Schritte durchgerechnet werden müssen. Das macht die Rechnung nicht nur langsam, vor allem können sich die Rundungsfehler aufschaukeln. Merksatz 6.3. Zwei Fehler treten bei Anwendung von numerischen Lösungsverfahren für Differentialgleichungen auf. Der Abbruchfehler stammt daher, daß man mit jedem Schritt einer Geraden statt der tatsächlichen Lösungskurve folgt (die man ja nicht kennt). Der Rundungsfehler entsteht, weil das Ergebnis jedes Rechenschrittes gerundet wird. Die Wahl der Schrittweite muß daher einen Kompromiß schließen: Durch die Wahl einer kleinen Schrittweite wird der Abbruchfehler verringert, aber der Rundungsfehler vergrößert. Gute Verfahren sind so gebaut, daß sie schon bei relativ großen Schrittweiten nur geringe Abbruchfehler machen. 6. SIMULATION DETERMINISTISCHER DYNAMISCHER SYSTEME 63 6.3. Bessere Verfahren zur numerischen Lösung von Differentialgleichungen. Wir haben das Eulersche Polygonzugverfahren eingeführt, weil es besonders einfach ist, und sich daran das Prinzip der numerischen Lösung von Differentialgleichungen schön erklären läßt. Im Hinblick auf die Relation des Abbruchfehlers zur Schrittweite ist es leider ein schlechtes Verfahren. Wir werden jetzt überlegen, wie man das Verfahren effizienter gestalten könnte. Im Zeitintervall von t0 zu t1 ändert die Lösungskurve kontinuierlich ihre Richtung, während das Näherungsverfahren mangels besserer Information seine Richtung beibehält. Erst zum Zeitpunkt t1 wird eine neue Richtung bestimmt. Aus der neuen Richtung läßt sich aber der Trend ermessen, nach dem die Lösungskurve ihre Richtung geändert hat, und diese Information kann auf zwei Arten genützt werden: Aus der Richtungsänderung der Tangenten zwischen ti und ti+1 kann man auf die Größe des Abbruchfehlers schließen. Wenn man den geschätzten Abbruchfehler mit der Anzahl der Schritte multipliziert, hat man eine Schätzung, wie weit die Näherungslösung von der exakten Lösung entfernt sein wird. Wenn die Rechnung zu ungenau ausfällt, muß man den Zeitschritt in kürzere Intervalle teilen, um den Abbruchfehler zu verringern. Anders ausgedrückt: Der Schritt von ti bis ti+1 wird nur akzeptiert, wenn |f (xi+1 ) − f (xi )| eine gewisse Schranke nicht überschreitet. Wenn der Unterschied zu groß ist, wird der Schritt von ti aus mit einer kleineren Schrittweite wiederholt. Wenn dagegen der Unterschied besonders gering ausfällt, kann man für den nächsten Schritt eine größere Schrittweite ins Auge fassen. Auf Grund solcher Überlegungen kann man Verfahren programmieren, die automatisch eine geeignete Schrittweite wählen. Merksatz 6.4. Programmen mit automatischer Schrittweitensteuerung gibt der Benützer eine größte und eine kleinste erlaubte Schrittweite vor, und eine Größenordnung der Genauigkeit, mit der die Näherungslösung die exakte Lösung wiedergeben soll. Das Verfahren versucht dann, sich innerhalb dieses Rahmens von Schritt zu Schritt die geeignete Schrittweite auszuwählen. Die Gerade, entlang der man den Punkt xi+1 zur Zeit ti+1 erreicht hat, hat im Eulerverfahren die Steigung f (xi ). Wir haben damit eine erste Schätzung des nächsten Punktes der Lösung (Predictor – Voraussage). Die Steigung der Lösungskurve hat sich aber kontinierlich verändert und liegt näherungsweise bei f (xi+1 ), wenn der Zeitpunkt ti+1 erreicht ist. Wir können diese Trendinformation ausnützen und den Schritt von ti auf ti+1 mit einer neuen Steigung wiederholen, zum Beispiel mit 12 (f (xi+1 ) + f (xi )). Dieser Wert wird insgesamt der Lösungskurve besser entsprechen, weil er die Steigung zu Beginn und Ende des Schrittes berücksichtigt. Der Predictor dient also nur als erster Versuch zur Erkundung des Trends, der endgültige Schritt wird im Sinne des Trends korrigiert (Corrector). Professionelle Lösungsverfahren, wie etwa das Runge-Kutta-Verfahren, tasten jedes Schrittintervall erst vier- bis fünfmal ab, bevor die endgültige Richtung des Schrittes festgelegt wird. Indem der einzelne Schritt sehr sorgfältig abgewogen wird, erfolgt er mit einem viel kleineren Abbruchfehler als beim Eulerverfahren. Der Preis dafür ist, daß bis zur Durchführung des Schrittes die Funktion 64 Abbildung 6.3. Lösung einer steifen Differentialgleichung x10 -6 1 0.9 0.9 0.8 0.8 0.7 0.7 Konzentration von NO Konzentration des Donors x10 -6 1 0.6 0.5 0.4 0.3 0.6 0.5 0.4 0.3 0.2 0.2 0.1 0.1 0 0 5000 Zeit t 0 0 5000 Zeit t k1 = 5 · 10−3 , k2 = 107 , o2 = 2.5 · 10−4 , c0 = 10−6 . f mehrmals für verschiedene vorläufige Werte berechnet werden muß. Das kostet Rechenzeit. Um die genauen Formeln und eine Aufzählung von verschiedenen Methoden wollen wir uns hier nicht kümmern. Merksatz 6.5. Es gibt sehr viele verschiedene Lösungsverfahren für Differentialgleichungen, die bei verschiedenen Problemen verschieden gut arbeiten. Simulationspakete stellen meist mehrere Verfahren zur Verfügung. In den Handbüchern bzw. in der online Hilfe findet man Hinweise, welche Bedingungen für die Anwendung der jeweiligen Methoden sprechen. Wenn ein Lösungsverfahren mit einer Fehlermeldung abstürzt oder sehr langsam rechnet, sollte man andere Verfahren versuchen. Es gibt eine bestimmte Sorte von Differentialgleichungen, die sich der numerischen Lösung besonders hartnäckig widersetzen, sogenannte steife Differentialgleichungen. Steife Differentialgleichungen beschreiben Systeme, in denen Prozesse mit sehr verschiedenen Geschwindigkeiten ablaufen. Stellen Sie sich zum Beispiel einen Kessel vor, dem langsam Chemikalien zugeführt und entzogen werden. Zwischen den Chemikalien, die dort aufeinandertreffen, können sehr schnelle Reaktionen ablaufen. Die Konzentrationen im Kessel werden vom langsamen Materialtransport und den schnellen Reaktionen beeinflußt. Merksatz 6.6. Steife Differentialgleichungen beschreiben Systeme, in denen Prozesse mit sehr unterschiedlichen Geschwindigkeiten ablaufen. Solche Modelle sind numerisch besonders fehleranfällig. Simulationspakete bieten oft spezielle Lösungsverfahren für steife Differentialgleichungen an. 6. SIMULATION DETERMINISTISCHER DYNAMISCHER SYSTEME 65 Abbildung 6.4. Ein Differentialgleichungslöser stürzt ab x10 -6 1 0.8 0.8 0.6 0.6 0.4 0.4 Konzentration von NO Konzentration des Donors x10 -6 1 0.2 0 -0.2 -0.4 0.2 0 -0.2 -0.4 -0.6 -0.6 -0.8 -0.8 -1 0 5000 Zeit t -1 0 5000 Zeit t k1 = 5 · 10−3 , k2 = 107 , o2 = 2.5 · 10−4 , c0 = 10−6 . Ein Runge-Kutta-Verfahren wird mit zu grober Genauigkeitsvorgabe angesetzt. Das Verfahren versucht viel zu lange Schrittweiten und verliert völlig die Orientierung. Als Beispiel für ein steifes System zeigen wir in Abbildung 6.3 den Verlauf der Zustandsgrößen des NO-Modells aus Beispiel 4.15 unter Bedingungen, bei denen der Donor im Verhältnis sehr viel schneller zerfällt als das NO. (Weil die Zerfallsrate von NO proportional zum Quadrat der Konzentration ist, während die Zerfallsrate vom Donor proportional zur Konzentration ist, treten solche Bedingungen bei sehr kleinen Konzentrationen ein.) Der rapide Anstieg zu Beginn kommt davon, daß fast augenblicklich der gesamte Donor zu NO zerfällt. Die langsam abfallende Kurve zeigt den allmählichen Abbau von NO. Wir sehen, warum steife Differentialgleichungen so schwer zu lösen sind: Der schnelle Prozeß bestimmt die Anfangsrichtung der Tangente. Wir haben strichliert die Tangenten zum Anfangszeitpunkt eingezeichnet. Der schnelle Zerfall des Donors bewirkt, daß diese Tangenten sehr steil sind. Wenn das Verfahren diesen Tangenten zu lange folgt, schießt es gleich mit dem ersten Schritt weit über das Ziel hinaus und berechnet von dort aus völlig unsinnige Werte weiter. Die Schrittweite muß also sehr kurz sein. Um den langsamen Prozeß zu beobachten, muß aber ein ausreichend langes Zeitintervall mit diesen kurzen Schritten überdeckt werden. Dabei können die Rundungsfehler dramatisch kumulieren. Die Gleichung in unserem Beispiel ist noch nicht sehr steif. Wenn man die Rechentoleranz genügend klein vorgibt, reichen auch Runge-Kutta-Verfahren aus. Als Beispiel für das Versagen eines Differentialgleichungslösers lassen wir das Programm ode23 aus Matlab das NO-Modell lösen, ohne die Genauigkeiten vorzugeben. Das Verfahren zielt dann von sich aus auf relative und absolute Genauigkeit von 10−3 und 10−6 ab, das ist zu grob im Vergleich mit dem Anfangswert 10−6 . Bilder wie Abbildung 6.4 erhält man mitunter beim ersten Versuch, eine Differentialgleichung 66 numerisch zu lösen. Die Abhilfe kommt durch kleinere Fehlertoleranzen und Schrittweiten. Merksatz 6.7. Wenn ein Verfahren bei der Lösung einer Differentialgleichung auf offensichtlich unsinnige Werte kommt oder mit einer Fehlermeldung abbricht, zwingt man es durch Vorgabe kleinerer Toleranzen und kleinerer Schrittweiten dazu, sich langsamer vorzutasten, oder man wählt ein anderes Verfahren. VORSICHT! Es gibt aber auch Differentialgleichungen, die gar nicht bis in alle Zukunft Lösungen besitzen, weil ihre Lösungen schon in endlicher Zeit gegen unendlich streben (“explodieren”). Auch ein gutes Verfahren wird bei solchen Gleichungen aufgeben müssen, wenn die Werte zu groß werden. Bemerkung 6.8. Zwar werden bei der Beschreibung der Minimumsuche (Seite 25 f) und der obigen Beschreibung der numerischen Lösung von Differentialgleichungen gleiche Worte verwendet (etwa ’Startwert’, ’Schrittweite’, ’Toleranz’), dennoch handelt es sich um völlig unabhängige Verfahren zur Lösung völlig unterschiedlicher Probleme. Verfallen Sie nicht in den Fehler, diese Dinge gedanklich miteinander zu vermischen, sondern machen Sie sich die Unterschiedlichkeit der beiden Problemstellungen und die Verschiedenheit der beiden Verfahren klar bewusst. 6.4. Lösung von Differentialgleichungen in MATLAB. Wir beschreiben hier, wie man die Differentialgleichung dtd x(t) = f (t, x(t)) in MATLAB lösen kann. Es stehen mehrere Verfahren mit automatischer Schrittweitensteuerung zur Verfügung: Die gebräuchlichsten sind das Runge-Kutta-Verfahren ode45 und das Verfahren variabler Ordnung ode15s für steife Differentialgleichungen (das Kürzel ode kommt von ’ordinary differential equation’). Sie unterscheiden sich in den verwendeten Näherungen für die Integration und damit auch in der Anzahl der Auswertungen von f in jedem einzelnen Zeitschritt. x(t) ist dabei ein Vektor, es können also Systeme von Differentialgleichungen mit mehreren Zustandsgrößen gelöst werden. Man schreibt zunächst einen MATLAB-Funktionsfile, der die Funktion f (t, x) erklärt, und speichert ihn. Wir zeigen als Beispiel den Funktionsfile, der die rechte Seite des Donorproblems beschreibt: function y=funk(t,x); % rechte Seite des Donorproblems % 1. Komponente von x: Donor % 2. Komponente von x: NO global k1 k2 o2 dzr=k1*x(1); % Donorzerfallsrate 6. SIMULATION DETERMINISTISCHER DYNAMISCHER SYSTEME 67 nor=k2*o2*x(2)*x(2); % NO-Oxidationsrate y(1)=-dzr; % Zuwachsrate Donor y(2)=dzr-nor; % Zuwachsrate NO y=y’; % das Resultat muss ein Spaltenvektor sein Diese function berechnet aus den im Argument x vom rufenden Programm übergebenen Konzentrationen die rechte Seite des Gleichungssystems. Das Argument t wird in diesem Beispiel nicht verwendet, muss aber an erster Stelle der Argumenteliste stehen. Wie schon erwähnt ist % das Kommentarzeichen, was rechts davon steht ist bei der Ausführung der function irrelevant. Wir sichern diesen File unter dem Namen funk.m. Zur Steuerung der Rechengenauigkeit und anderer Verfahrensparameter verwendet man die MATLAB-Funktion odeset. In odeset wird die gewünschte absolute Genauigkeit mit der Bezeichnung AbsTol und die gewünschte relative Genauigkeit mit der Bezeichnung RelTol gesetzt. Die Namen und Werte sind Argumente von odeset, ihr Ergebnis wird als Variable gespeichert und an ode45 als Argument übergeben. Dabei meint AbsTol den Abstand der berechneten Lösung x(t) zur (unbekannten) wahren Lösung x̂(t) und muss Problem-spezifisch gewählt werden. Dagegen muss RelTol nicht der absoluten Größe von x̂(t) entsprechend gewählt werden, denn gefordert wird |x(t) − x̂(t)| < RelTol. |x̂(t)| Es besteht allerdings keine Garantie, dass die berechnete Lösung überall näher bei der exakten Lösung liegt als die gewählten Toleranzen. Wir legen das Zeitintervall (hier tspan), die Anfangsdaten (hier in x0) und die Verfahrensparameter (hier unter options) fest und rufen dann ode45 auf. Anschließend sehen wir uns das Ergebnis mit plot am Bildschirm an: >>global k1 k2 o2 ←>>k1=5e-3; ←>>k2=1e+7; ←>>o2=2.5e-4; ←>>tspan=[0 1000]; ←>>x0=[1e-6;0]; ←>>options=odeset(’AbsTol’,1e-10,’RelTol’,1e-4); ←>>[t,x]=ode45(’funk’,tspan,x0,options); ←>>plot(t,x(:,1),’-’,t,x(:,2),’--’) ←10−10 klingt sehr genau, aber bedenken Sie, daß der Anfangswert 10−6 ist. Der String ’funk’ ist der Name des Funktionsfiles, der die rechte Seite der Differentialgleichung aus den jeweils vom rufenden Programm (hier ode45) übergebenen Argumenten t und x=[x(1);x(2)] berechnet. Als Ausgabe von ode45 erhält man den Spaltenvektor t, das ist eine Liste aller Stützstellen, und die Matrix x. Jede Zeile dieser Matrix entspricht einer Stützstelle ti und enthält die Werte des Lösungsvektors x(ti ), t1 x1 (t1 ) · · · xn (t1 ) t = t2 , x = x1 (t2 ) · · · xn (t2 ) , .. .. .. . . . (im Donorproblem ist n = 2). 68 Logisch wesentlich an dieser Vorgangsweise ist also: Der Benützer des im Numerik-Paket bereitgestellten Dgl-Lösers (hier ode45) muss eine Funktion programmieren (hier funk), die aus einem Zeitpunkt t und einem Zustandsvektor x den zugehörigen Vektor f (t, x) der rechten Seite des Dgl-Systems berechnet. Diese Funktion sollte möglichst flexibel programmiert sein, bleibt es doch dem Dgl-Löser überlassen, an welchen Stellen und wie oft er das Benutzerprogramm aufruft. Da dies typischerweise mehrere tausend mal geschieht, ist bei großen Problemen der Benützer auch an der Rechenzeit-Effizienz seines Programms (hier funk) interessiert. 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 69 7. Fragestellungen zu dynamischen Systemen 7.1. Dynamische Systeme. Wir verzichten, wie immer, auf eine exakte mathematische Definition und begnügen uns mit einem Appell an die Anschauung: Merksatz 7.1. In einem dynamischen System ändert sich ein Zustand in Abhängigkeit von einer Zeitgröße. Dabei bestehen Gesetzmäßigkeiten, die Voraussagen auf zukünftige Zustände an Hand des gegenwärtigen Zustands gestatten. Sehr oft bezeichnet die Zeitgröße tatsächlich die Zeit, wie in allen Modellen, die wir bisher formuliert haben. Allerdings ist es vom rein mathematischen Standpunkt natürlich auch möglich, daß die Zeitgröße eine völlig andere physikalische (biologische, . . . ) Interpretation hat. Um Sie nicht unnötig zu verwirren, nehmen wir von solchen Beispielen Abstand. Beispiel 7.2. An einer Feder hängt ein Gewicht. Wenn das Gewicht aus der Ruhelage gebracht wird, zum Beispiel durch Anziehen, wird es auf- und abschwingen. Wir beobachten die Bewegung des Gewichtes. Im Lauf der Zeit ändert sich der Zustand des Systems: Der Zustand besteht aus zwei unabhängigen Größen, nämlich der Höhe, in der sich das Gewicht im Augenblick befindet, und der Geschwindigkeit, mit der es sich bewegt. Beispiel 7.3. Ein Wald ist von parasitären Insekten befallen. Alle Jahre wird durch Stichproben der Bestand an Larven ermittelt. Der Zustand des Systems, der sich von Jahr zu Jahr ändert, ist die Anzahl der Larven. Beide Beispiele, 7.2 und 7.3, passen in das Konzept eines dynamischen Systems. Je nach Beschaffenheit und vor allem nach Betrachtungsweise können wir aber dynamische Systeme in sehr unterschiedliche Klassen einteilen. In Beispiel 7.2 betrachten wir am besten die Zeit als ein fließendes Kontinuum. Die Beobachtungszeitpunkte bilden ein Intervall, ein ganzes Geradenstück auf der Zahlengeraden. Die Bewegung kann man durch eine Kurve darstellen. Das mathematische Modell besteht aus einer Differentialgleichung. Dagegen bietet sich für Beispiel 7.3 eine diskrete Betrachtungsweise an: Weil es zu bestimmten Jahreszeiten gar keine Larven gibt, erfaßt man sinnvollerweise die Anzahl der Larven jedes Jahr zu bestimmten Stichtagen. Die Beobachtungszeitpunkte bilden eine Folge. Um in diesem System eine Gesetzmäßigkeit zu formulieren, sucht man eine Formel, die den Larvenbestand des nächsten Jahres aus dem heurigen Bestand berechnet, eine sogenannte Differenzengleichung. Es ist nicht zwingend vorgegeben, ob ein natürliches System diskret oder kontinuierlich modelliert wird. Wenn man die Bewegung des Gewichtes filmt, empfindet man die 70 gefilmte Bewegung zwar als kontinuierlich, aber genau genommen wird nur zu diskreten Zeitpunkten fotografiert. Man könnte auch die Entwicklung der Larven innerhalb eines Monats im Rahmen eines Räuber-Beute-Modells durch eine Differentialgleichung beschreiben wollen. Merksatz 7.4. Ein diskretes dynamisches System wird nur zu einzelnen, fest vorgegebenen Zeitpunkten betrachtet, die eine Folge bilden. Im kontinuierlichen System läuft die Betrachtung über ein ganzes Zeitintervall. Die Simulation von deterministischen diskreten dynamischen Systemen ist vergleichsweise einfach. Das System wird zu den Zeitpunkten t0 < t1 < t2 < · · · betrachtet. Zu diesen Zeitpunkten durchläuft das System die Zustände x0 , x 1 , x 2 , · · · . Im Vektor xi werden alle Zustandsgrößen zum Zeitpunkt ti zusammengefaßt. Der Zusammenhang zwischen Gegenwart und Zukunft wird durch eine Differenzengleichung bestimmt: xi+1 = F (ti , xi ). Dabei ist F das Modell, eine Funktion, deren Formel man kennt. Um vom bekannten Zustand x0 aus den nächsten Zustand x1 zu erhalten, muß nur in die Formel eingesetzt und F (t0 , x0 ) berechnet werden. Wenn man diese Prozedur wiederholt, erreicht man nach und nach alle zukünftigen Zustände. In Beispiel 7.2 kann man auf Grund einfacher physikalischer Gesetze die Bewegung des Gewichtes sehr genau vorhersagen, wenn die Masse des Gewichtes und die Stärke der Feder bekannt sind. Ein System, das erlaubt, (zumindest theoretisch) die Entwicklung in der Zukunft exakt aus dem gegenwärtigen Zustand zu bestimmen, heißt es ein deterministisches System. In Beispiel 7.3 sind die Voraussagen weniger sicher. Der Larvenbestand wird von vielen Zufälligkeiten beeinflußt, die sich der Voraussage entziehen (z.B. Wetter). Die Zusammenhänge zwischen Gegenwart und Zukunft sind nur Gesetzmäßigkeiten im Sinne von Wahrscheinlichkeitsaussagen. Man kann zum Beispiel voraussagen, mit welcher Wahrscheinlichkeit der Larvenbestand im nächsten Jahr größer sein wird als heuer. Ein System, in dem die Gegenwart die Zukunft nicht eindeutig bestimmt, sondern nur Wahrscheinlichkeiten für das Eintreffen zukünftiger Zustände vorgibt, heißt ein stochastisches System. Statt stochastisches System sagt man gleichbedeutend auch probabilistisches System. Auch die Wahl zwischen deterministischer und stochastischer Modellierung liegt eher an der Betrachtungsweise als am beobachteten System selbst. Die Quantenmechanik geht davon aus, daß alle Bewegungen nur stochastisch beschrieben werden können. Es wäre wahrscheinlich überzogen, das Feder-Masse-System aus Beispiel 7.2 mit Quantenmechanik anzusetzen. Aber Einflüsse durch Luftzug, oder Vibrationen der 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 71 Aufhängung durch vorbeifahrende Sechsachser könnten durchaus stochastisch modelliert werden. Andererseits kann man nach dem Gesetz der großen Zahlen Systeme, in denen Zufallsgesetze gelten, gut durch deterministische Modelle beschreiben, wenn nur die betrachteten Populationen groß genug sind, sodaß sich die Zufälligkeiten gegeneinander aufheben. Merksatz 7.5. Die Zusammenhänge zwischen dem gegenwärtigen Zustand und den zukünftigen Zuständen eines stochastischen Systems sind durch Wahrscheinlichkeitsaussagen beschrieben. Im deterministischen System wird jeder zukünftige Zustand eindeutig durch den gegenwärtigen Zustand bestimmt. Lassen Sie sich bitte von der Wahl der Beispiele nicht irreleiten: Es gibt auch stochastische kontinuierliche, und deterministische diskrete Systeme. Alle Modelle, die wir in diesem Semester behandeln, sind deterministisch und kontinuierlich. Im zweiten Semester werden wir auch Beispiele für diskrete und für probabilistische Modelle kennenlernen. 7.2. Anatomie eines dynamischen Systems. Betrachten wir zur Illustration eine Modifikation von Beispiel 4.15. Beispiel 7.6. In einer Lösung zerfällt, wie schon in Beispiel 4.15 beschrieben, eine Donorsubstanz zu NO. Dieses wird oxidiert und dadurch aus der Lösung entfernt. Bei beiden Prozessen wird Wärme frei. Ein Sensor mißt laufend die NO-Konzentration der Lösung und gibt auf einem Plotter die Kurve aus. Der Analytiker kann kontinuierlich Donor zugeben, wobei er die Zuflußgeschwindigkeit über eine regelbare Pumpe steuern kann. Außerdem kann er die Temperatur der Lösung durch ein Thermometer überwachen, und der Lösung durch eine regelbare Kühleinrichtung Wärme entziehen, indem durch eine Kühlschleife Kühlflüssigkeit geleitet wird. Abbildung 7.1 zeigt ein Wirkungsdiagramm dieses Systems. Versuchen Sie selbst, die dargestellten Zusammenhänge zu rechtfertigen. Wir wollen an diesem Beispiel erklären, welche Arten von Größen in einem dynamischen System vorkommen können. Im Zentrum des Systems stehen die Zustandsgrößen. Sie ändern sich im Verlauf der Zeit, und geben zu jedem Zeitpunkt den augenblicklichen Zustand des Systems wieder. In Beispiel 7.6 kann man als Zustandsgrößen die Konzentrationen von Donor, NO und O2 sowie die Temperatur der Lösung heranziehen. Man kann aber auch einen anderen Satz von Zustandsgrößen aufbauen, etwa die Masse des gesamten gelösten Donors, das gesamte gelöste NO, das gesamte gelöste O2 , und die in der Lösung verfügbare freie Wärme. Offensichtlich beschreiben beide Datensätze den Zustand des Systems gleich gut. Dem Analytiker bleibt die Wahl der bequemsten Formulierung. Man wählt aber jedenfalls so wenig Zustandsgrößen wie möglich. Die Zeit wird durch die Zeitgröße beschrieben, in unserem System eine kontinuierliche Größe, in Sekunden. Die Gesetzmäßigkeiten der chemischen Reaktionen und der Wärmezufuhr werden mit Hilfe der Zuwachsraten der Chemikalien und der Temperatur, also generell über die 72 Abbildung 7.1. Wirkungsdiagramm zu Beispiel 7.6 Kursiv: Steuerungs- und Beobachtungsgrößen Zuwachsraten der Zustandsgrößen beschrieben. Das ist typisch für kontinuierliche Systeme, die auf Differentialgleichungen führen. Die weitere Entwicklung des Systems wird durch den gegenwärtigen Zustand, aber auch durch exogene Größen bestimmt. Exogene Größen beschreiben Effekte, die von außerhalb auf das System einwirken. Wenn diese Größen gezielt beeinflußt werden können, sprechen wir auch von Steuergrößen. In stochastischen Systemen könnte man auch die Zufallseinflüsse als externe Größen auffassen. In unserem System gibt es zwei Steuergrößen: Den Zufluß an Donor und den Durchsatz an Kühlflüssigkeit. Nicht alle Systemgrößen sind dem Beobachter direkt zugänglich. Sehr oft sind gerade die Zustandsgrößen nicht direkt meßbar, sondern nur durch Rückschlüsse aus ihren Auswirkungen errechenbar. Zugängliche Größen bezeichnen wir als Beobachtungsgrößen. In unserem System können zwei Zustandsgrößen direkt gemessen werden, sind also auch Beobachtungsgrößen: die NO-Konzentration und die Temperatur. Die Wechselwirkungen zwischen allen diesen Größen werden durch verschiedene Gesetzmäßigkeiten geregelt. In unserem Modell hängen viele Größen voneinander ab: die Zerfallsgeschwindigkeiten der Chemikalien von der Temperatur, der Wärmeentzug durch die Kühlanlage vom Kühlmitteldurchsatz und der Lösungstemperatur, die Temperatur von der freien Wärme, die freiwerdende Wärme von der Anzahl der oxidierten NO-Moleküle, und so weiter. In den Formeln dieser Gesetze kommen Konstanten vor (etwa die spezifische Wärme des Lösungsmittels, die Zerfallsgeschwindigkeit des Donors bei 25◦ C), die Eigenschaften des Systems beschreiben, die vom augenblicklichen Zustand oder von der Zeit nicht abhängen. Diese Konstanten heißen Parameter. Auf dem Weg der Berechnung der Zuwachsraten der Zustandsgrößen aus den Zustandsgrößen, den exogenen Größen und den Parametern treten viele Nebenrechnungen auf. Die Resultate dieser Nebenrechnungen heißen Zwischengrößen. Zu den Zwischengrößen in unserem Beispiel gehören der augenblickliche Wärmeentzug durch die Kühlung, oder wieviel NO pro Sekunde oxidiert wird. Merksatz 7.7. Größen folgender Art können in einem dynamischen System auftreten: 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 73 • Die Zeitgröße. • Zustandsgrößen. Sie hängen von der Zeitgröße ab und beschreiben den augenblicklichen Zustand. • Exogene Größen. Sie quantifizieren Einflüsse, die von außen an das System herangetragen werden. Wenn man eine exogene Größe gezielt beeinflussen kann, spricht man auch von einer Steuergröße. • Beobachtungsgrößen. Sie beschreiben Auswirkungen des Zustands, die einer direkten Beobachtung oder Messung zugänglich sind. • Parameter. Sie beschreiben Eigenschaften des Systems oder seiner Teile, die vom augenblicklichen Zustand nicht abhängig sind und sich nicht mit der Zeit ändern. • Zwischengrößen. Das sind Größen, die sich aus den bisher beschriebenen Größen berechnen lassen. Im Allgemeinen treten sie als Produkte von Nebenrechnungen bei der Berechnung der Zuwachsraten auf. • Wachstumsraten der Zustandsgrößen (nur in kontinuierlichen Modellen). Sie lassen sich aus den oben beschriebenen Größen berechnen und bestimmen die Weiterentwicklung des Zustandes. Beispiel 7.8. Betrachten Sie den Kessel aus Beispiel 4.2. Wir nehmen an, daß der Kessel ein geschlossener Stahltank ist. Der Zufluß wird über ein Ventil geregelt. Im Abfluß befindet sich ein Strömungsmeßgerät, das die pro Sekunde abfließende Wassermenge anzeigt. Klassifizieren Sie die Größen in diesem System. Wie so oft, bedeutet die Zeitgröße wirklich Zeit. Sinnvollerweise werden wir hier die Zeit kontinuierlich modellieren. Der Zustand ist beschrieben, wenn wir wissen, wieviel Wasser sich im Augenblick im Kessel befindet. Wahlweise können wir als Zustandsgröße entweder die Höhe des Wasserstandes oder das enthaltene Wasservolumen heranziehen. Wir wählen aber nur soviele Zustandsgrößen, wie unbedingt gebraucht werden, also eine von beiden. Die andere ist dann bei Bedarf eine Hilfsgröße. Der Wasserzufluß ist eine exogene Größe, eine Steuergröße, die wir durch Drehen am Ventil beeinflussen können. Der Wasserabfluß wird gemessen, und kann daher als einzige Größe direkt beobachtet werden, denn ins Innere des Stahltanks können wir nicht sehen. Glücklicherweise läßt sich der Wasserstand aus der Abflußgeschwindigkeit berechnen. (Wie?) Das Modell enthält viele Parameter, nämlich die Abmessungen des Kessels, den Strömungswiderstand des Abflußrohres, und das spezifische Gewicht von Wasser. Wir bemerken noch, daß für dieses, durch strenge physikalische Gesetzmäßigkeiten bestimmte System ein deterministisches Modell durchaus adäquat ist. Das ändert sich sofort, wenn wir eine Risikoanalyse durchführen: “Mit Wahrscheinlichkeit von 30% ist einmal im Jahr der Abfluß verstopft . . . ”. 74 7.3. Verschiedene Fragestellungen. Man untersucht dynamische Systeme aus zwei Gründen: Entweder braucht man eine neue Veröffentlichung auf der Publikationsliste, oder man will an Hand der Studie einen Komplex von Fragen beantworten. Welche Fragen beantwortet werden sollen, sollte man sich schon vor der Modellbildung gründlich überlegen. Wir geben eine kurze Klassifizierung von Fragen, die im Zusammenhang mit einem dynamischen System auftreten können. Simulation oder Vorwärtsrechnung: Die Systemeigenschaften, also Struktur und Parameter, sind bekannt. Man kennt auch den gegenwärtigen Zustand und die externen Größen, die zu erwarten sind. Zu berechnen ist der zukünftige Verlauf der Zustandsgrößen. Die Vorwärtsrechnung liefert also die direkten Voraussagen, die sich ableiten lassen, wenn ein Modell einmal etabliert ist. Beobachtungsproblem: Die Systemeigenschaften sind bekannt, aber der Zustand des Systems nicht. Dagegen kennen wir den Verlauf der Beobachtungsgrößen über ein gewisses Zeitintervall. Daraus soll der gegenwärtige Zustand (oder vielleicht der Zustand zu Beginn der Beobachtung) errechnet werden. Wenn der Zustand aus verrauschten, unvollkommenen Beobachtungen geschätzt werden soll, reden wir auch von einem Filterungsproblem. Parameteridentifikation oder -anpassung: Die Struktur des Modells ist festgelegt, aber die Parameter müssen erst bestimmt werden. Das geschieht natürlich so, daß reale Daten mit den Daten verglichen werden, die das Modell liefern würde, und solange an den Parametern gedreht wird, bis sich Modell und Meßdaten möglichst gut decken. Parameteroptimierung: Die Struktur des Systems ist bekannt, und die Parameter können innerhalb eines gewissen Bereichs eingestellt werden (durch geeignete Konstruktion des Systems, geeignete Materialen, oder Einstellen von Regeleinrichtungen). Die Parameter sollen so eingestellt werden, daß das System ein möglichst günstiges Verhalten zeigt (zum Beispiel möglichst stabil ist, oder möglichst kostengünstig operiert). Obwohl die Zielsetzung in der Anwendung völlig anders ist, ist dieses Problem mathematisch mit der Parameteridentifizierung sehr eng verwandt. Optimale Steuerung: Die Systemeigenschaften sind bekannt. Über eine oder mehrere Steuergrößen soll das System so beeinflußt werden, daß es ein möglichst günstiges Verhalten zeigt (zum Beispiel einen gewünschten Zustand in möglichst kurzer Zeit oder möglichst kostengünstig erreicht und daran festhält). Qualitative Untersuchung: Nicht die Zahlenwerte der Lösung, sondern charakteristische Eigenschaften stehen im Mittelpunkt. Stellt sich im Lauf der Zeit eine Gleichgewichtslage ein? Erholt sich das Gleichgewicht, wenn man es stört? Kann das System periodische Schwingungen ausführen? 7.4. Parameteridentifikation. Als Beispiel einer komplexeren Fragestellung behandeln wir die Parameteridentifikation. Wir werden sehen, daß die Vorwärtsrechnung hier als ein wichtiges Hilfsmittel auftritt. 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 75 Abbildung 7.2. Ablauf einer Parameteridentifikation Abbildung 7.2 zeigt die typische Vorgangsweise bei einer Parameteridentifikation. Man erfaßt Felddaten, also reale Daten über das modellierte System. Andererseits läßt man mit verschiedenen Sätzen von Parametern Simulationen laufen. Wenn die Simulationen die Felddaten ausreichend gut wiedergeben, nimmt man die Parameter an. Sonst ändert man die Parameter systematisch und versucht weitere Simulationen. Natürlich kann es vorkommen, daß sich gar keine Parameter finden, die die Felddaten genügend gut nachvollziehen. In diesem Fall müssen die Modellgleichungen selbst verändert werden. Im Ablauf des Identifikationsverfahrens wird die Vorwärtsrechnung oft und oft wiederholt. Weil die Vorwärtsrechnung selbst im allgemeinen langwierig ist, ist eine Parameteridentifikation mit sehr viel Rechenaufwand verbunden. Wir nehmen nun wieder das Stickoxidmodell aus Beispiel 4.15, und werden anhand dieses Beispiels eine Parameteridentifikation durchführen. Beispiel 7.9. Wir modellieren die chemischen Reaktionen aus Beispiel 4.15 mit den Differentialgleichungen d cD (t) = −k1 cD (t), dt d cN O (t) = k1 cD (t) − k2 o2 cN O (t)2 , dt cD (0) = c0 , cN O (0) = 0. Die Größen k1 und k2 , die die Reaktionsgeschwindigkeiten bestimmen, sollen durch einen Versuch in Erfahrung gebracht werden. Dazu setzen wir der Lösung zunächst c0 = 10−5 mol/l Donor zu. Wir messen eine (im Versuchsverlauf annähernd konstante) Sauerstoffkonzentration der Lösung von o2 = 2.5 · 10−4 mol/l. Alle 100 Sekunden wird die Konzentration von Donor und NO gemessen, die Meßwerte finden sich in Tabelle 7.1. Zu bestimmen sind die Parameter k1 und k2 . Erfahrungsgemäß dürften die Größenordnungen dieser Parameter etwa k1 ≈ 10−3 und k2 ≈ 107 betragen. 76 Tabelle 7.1. Daten zu Beispiel 7.9 t 000 100 200 300 400 500 600 700 800 900 1000 1100 1200 cD 1.00 · 10−5 7.40 · 10−6 5.57 · 10−6 3.90 · 10−6 2.87 · 10−6 1.95 · 10−6 1.46 · 10−6 1.03 · 10−6 7.79 · 10−7 5.66 · 10−7 4.21 · 10−7 2.95 · 10−7 2.24 · 10−7 cN O 0.00 · 10−6 2.34 · 10−6 2.79 · 10−6 2.74 · 10−6 2.50 · 10−6 2.30 · 10−6 1.82 · 10−6 1.75 · 10−6 1.64 · 10−6 1.29 · 10−6 1.10 · 10−6 9.64 · 10−7 9.30 · 10−7 7.5. Parameteridentifikation mit freiem Auge. Die Methode scheint im Computerzeitalter antiquiert zu sein, aber sie hat einen Vorteil. Indem man selbst viele Parameter ausprobiert, sammelt man Erfahrung über die Rolle, die die Parameter im System spielen. Bevor wir die Identifikation durchführen, müssen wir die Simulation vorbereiten und die Daten einlesen. In Matlab geschieht dies am besten in einem script, sagen wir dondata.m, das die Daten unter tdat, dondat, nodat speichert und die Variablennamen c0, o2, k1, k2 global setzt, sodass sie auch in funk und in parziel verwendet werden können. Der folgende M-File führt eine Vorwärtsrechnung durch und plottet die Ergebniskurven und die Meßdaten zum Vergleich. Im Zentrum der Rechnung steht wieder die MATLAB-Routine ode45. Sie löst die Differentialgleichung x0 (t) = f (t, x(t)) mit Hilfe eines Runge-Kutta-Verfahrens. Dabei ist die Funktion f durch einen MATLAB-Funktionsfile gegeben (hier funk.m). % Vorwaertsrechnung Donorproblem % Name der Funktion: funk % Anfangswerte: 0,c0 % Zeitintervall: 0-1200 % Genauigkeit: 1e-10 options=odeset(’AbsTol’,1e-10); [t,x]=ode45(’funk’,[0,1200],[c0;0],options); %Plotten und Beschriften: plot(t,x(:,1),’--’,t,x(:,2),’-’,... tdat,dondat,’*’,tdat,nodat,’o’) xlabel(’t’),ylabel(’Donor: --,*; NO: -,o’) title(sprintf(’k1=%8.4e, k2=%8.4e’, k1,k2)) %(Titelzeile druckt die verwendeten Parameter) 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 77 Abbildung 7.3. Simulation des Donorproblems: erster Versuch x10 -5 1* k1=1.0000e-003, k2=1.0000e+007 0.9 0.8 * Donor: --,*; NO: -,o 0.7 0.6 * 0.5 0.4 * 0.3 o o o * o 0.2 o * o o * 0.1 0o 0 200 400 600 o o * * 800 * o o * * 1000 o * 1200 t Simulation: Donor strichliert, NO durchgezogen. Meßdaten: Donor Sternchen, NO Kreise. Wir sichern diesen File als simu.m. Mit diesen Werkzeugen können wir die Parameteridentifikation beginnen. Wir stehen jetzt im Workspace und laden zuerst die Daten. Anschließend machen wir den ersten Versuch, mit k1 = 10−3 und k2 = 107 . Wir geben diese Parameter im Workspace ein und starten die Vorwärtsrechnung. Abbildung 7.3 zeigt das Ergebnis. Die Übereinstimmung ist noch schlecht, obwohl zumindest die Form der Kurven ungefähr paßt: >>dondata ←>>k1=1e-3; ←>>k2=1e7; ←>>simu ←Wir können jetzt die Auswirkungen der Parameter ausprobieren. Es ist gut, immer nur einen Parameter zu verändern, damit man weiß, welchen Grund die Änderung der Kurven hat, die man dann beobachtet. Anscheinend fällt die Donorkonzentration in der Simulation zu langsam ab. Wir verdoppeln die Zerfallsgeschwindigkeit k1 : >>k1=2e-3; ←>>simu ←und versuchen weiter, die Parameter zu verändern. Wie wirkt sich k1 auf die Konzentrationskurven aus? Auf welche Kurve wirkt k2 ? Wenn man einige Erfahrung mit den Parametern gesammelt hat, könnte man etwa auf folgende Simulation kommen: >>k1=3e-3; ←>>k2=8e6; ←>>simu ←- 78 Abbildung 7.4. Simulation des Donorproblems: nach einiger Erfahrung x10 -5 1* k1=3.0000e-003, k2=8.0000e+006 0.9 0.8 * Donor: --,*; NO: -,o 0.7 0.6 * 0.5 0.4 * 0.3 o o o * o 0.2 o * o o * 0.1 0o 0 200 400 600 o o * * 800 * o o * * 1000 o * 1200 t Simulation: Donor strichliert, NO durchgezogen. Meßdaten: Donor Sternchen, NO Kreise. Abbildung 7.4 zeigt eine recht gute Anpassung an die Meßdaten. Beobachten Sie, daß die Donorkurve nur durch k1 beeinflußt werden kann. Das hat einen Grund: Die Differentialgleichung für cD enthält nur cD und k1 , es besteht kein Einfluß von cN O auf die Donorkonzentration. Je größer k1 , desto schneller fällt die Donorkonzentration ab, und desto schneller steigt zu Beginn die NO-Konzentration. Je größer k2 , desto schneller fällt später wieder die NO-Konzentration ab. Wenn man diese Zusammenhänge verstanden hat, ist es leicht, sich zu geeigneten Modellparametern vorzutasten. 7.6. Kleinste Quadrate. Wie für das empirische logistische Modell können wir auch die Parameter eines dynamischen Systems an die Felddaten mit Hilfe der Methode der kleinsten Quadrate anpassen. Die einzige Neuerung ist jetzt, daß jede Berechnung der Zielfunktion eine Vorwärtsrechnung enthält. Wir wiederholen noch einmal das Prinzip der kleinsten Quadrate: (1) Gegeben ist ein Satz von Zeitpunkten t1 , t2 , · · · , tn und ein Satz von Meßdaten x1 , x2 , · · · , xn . (Dabei können, wie in unserem Beispiel, die Meßdaten Vektoren sein, also aus mehreren Komponenten bestehen. (2) Wenn wir einen Satz von Parametern vorgeben, können wir durch Vorwärtsrechnung bestimmen, welche Zustandswerte das Modell für die Zeitpunkte t1 , · · · , tn voraussagt. Nennen wir diese simulierten Werte x̃1 , x̃2 , · · · , x̃n . 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 79 (3) Der quadratische Fehler für diesen Satz von Parametern ist dann E = |x1 − x̃1 |2 + |x2 − x̃2 |2 + · · · + |xn − x̃n |2 . (Sind die Daten Vektoren, dann bezeichnet |a| die Norm des Vektors a.) Weil die Simulationsdaten von den vorgegebenen Parametern abhängen, hängt auch der quadratische Fehler von den Parametern ab. Der quadratische Fehler ist also eine Funktion der Parameter. (4) Durch ein Minimumsuchprogramm bestimmen wir jene Parameter, für die der quadratische Fehler am kleinsten wird. Die Zielfunktion der Minimumaufgabe ist also der quadratische Fehler. Wir kennen bereits den Minimumsucher fminsearch in MATLAB. Die Zielfunktion muß als MATLAB-Funktionsfile programmiert werden. Vorab ein technisches Detail: Der Minimumsucher sucht einen Vektor von Parametern. Er arbeitet am besten, wenn alle Parameter dieselbe Größenordnung haben. Wir packen daher die beiden Parameter skaliert in einen Vektor: µ ¶ k1 · 103 kk = . k2 · 10−7 Wir beginnen mit dem Editieren der Zielfunktion: function fehl=parziel(kk); %parziel: Zielfunktion Parameteridentifikation global k1 k2 o2 c0 tdat dondat nodat %Der Vektor kk enthaelt die beiden Parameter %Auspacken der Argumente k1=kk(1)*1e-3; k2=kk(2)*1e7; options=odeset(’AbsTol’,1e-10); [t,x]=ode45(’funk’,tdat,[c0;0],options); Jetzt bilden wir die Differenz der Meßdaten von den Simulationsdaten und errechnen daraus den quadratischen Fehler: %Berechnung des Fehlers donfehl=x(:,1)-dondat; nofehl=x(:,2)-nodat; fehl=donfehl’*donfehl+nofehl’*nofehl; Damit wäre die Zielfunktion fertig programmiert, denn ihre Aufgabe ist die Berechnung des quadratischen Fehlers aus den Parametern. Nur damit wir dem Programm beim Arbeiten zusehen können, programmieren wir auch eine graphische Ausgabe der neuesten Daten. Das verlangsamt natürlich den Ablauf der Rechnung, und dient hier nur zu didaktischen Zwecken. %Beobachtung des Verlaufs plot(t,x(:,1),’--’,t,x(:,2),’-’,... tdat,dondat,’*’,tdat,nodat,’o’) xlabel(’t’),ylabel(’Donor: --,*; NO: -,o’) 80 Abbildung 7.5. Simulation des Donorproblems: kleinste Quadrate −5 1.2 k1=3.1379e−003, k2=7.7613e+006, fehler=1.6686e−013 x 10 1 Donor −−,* NO −,o 0.8 0.6 0.4 0.2 0 0 200 400 600 t 800 1000 1200 Simulation: Donor strichliert, NO durchgezogen. Meßdaten: Donor Sternchen, NO Kreise. title(sprintf(... ’k1=%8.4e, k2=%8.4e, fehl=%8.4e’,k1,k2,fehl)) pause(0.1) Wir sichern die Zielfunktion unter dem Namen parziel.m. Beachten Sie dass das zweite Argument im Aufruf von ode45 nicht wie früher ein Vektor aus zwei Komponenten für Start- und Endzeit ist, sondern mehr als 2 Komponenten besitzt, nämlich hier 13. Dies bewirkt, dass ode45 in [t,x] 13 Zeilen erzeugt, genau eine für jeden Meßzeitpunkt t = 0, . . . , 1200. Dies geschieht durch automatische Interpolation, während ode45 mit viel kleinerer variabler Schrittweite arbeitet. Wir führen jetzt im Workspace die Parameteridentifikation durch. Der Minimumsucher benötigt den Namen der Zielfunktion, einen Startwert, und eventuell die Toleranz. Wir haben schon durch die händische Identifikation ziemlich genaue Vorstellungen, wo die Parameter liegen, nämlich k1 ≈ 3 · 10−3 , k2 ≈ 8 · 106 , das wäre nach der Skalierung: kk ≈ (3, 0.8)T . Absichtlich geben wir einen ungünstigeren Startwert vor, um dem Programm beim Arbeiten zuzusehen. >>dondata ←>>kkstart=[1;1]; ←>>kk=fminsearch(’parziel’,kkstart) ←kk = 3.1379 0.7761 Wir beobachten auf dem Bildschirm, wie der Minimumsucher zunächst scheinbar ziellos Parameter ausprobiert und bessere und schlechtere Simulationen erzeugt, aber nach 7. FRAGESTELLUNGEN ZU DYNAMISCHEN SYSTEMEN 81 Abbildung 7.6. Hierarchie der Programme einiger Zeit geht er ziemlich gezielt auf immer bessere Kurven los. Wenn die Rechnung abbricht, erhalten wir die optimalen Parameter. Vergessen wir nicht die Skalierung, die wir vorgenommen haben. Wir erhalten k1 = 3.1379 · 10−3 und k2 = 0.7761 · 107 . Abbildung 7.5 zeigt die Kurven der Simulation mit diesen Parametern im Vergleich zu den Meßdaten. Abbildung 7.6 fasst die Struktur des Rechenvorgangs zusammen. Im workspace werden mit dondata die Daten und die globalen Größen zugewiesen und fminsearch aufgerufen, das die Minimumsuche durchführt und dabei parziel für verschiedene Parameter k1 , k2 aufruft. parziel berechnet nach einer Simulation mit ode45 die Summe der Fehler-Quadrate. Die von den rufenden Routinen übergebenen Argumente stehen in der linken Spalte von Abbildung 7.6, die von den gerufenen Routinen gelieferten Ergebnisse in der rechten. In der Rechnung zu Abbildung 7.5 wurde parziel 84 mal aufgerufen, soviele Vorwärtsrechnungen wurden also durchgeführt. Dabei wurde funk insgesamt 7644 mal ausgewertet; dies kann man durch Einbau einfacher Zähler (etwa z=z+1) feststellen. Die gesamte Rechenzeit beträgt ca. 1 Sekunde auf einem Standard PC. An dieser Stelle sei an Bemerkung 6.8 erinnert, denn hier wurde eine Problemstellung beschrieben, in der beide Verfahren zum Einsatz kommen. Trotzdem sind sie nicht miteinander vermischt: die Minimumsuche steht in der obigen Hierarchie über dem Differentialgleichungslöser und die beiden Verfahren arbeiten intern unabhängig. Das Modell wurde somit erfolgreich an Daten angepasst, wobei allerdings alle hier vorhandenen Daten verwendet wurden, sodass die Parameter k1 , k2 genau für diesen Datensatz optimiert wurden. Es besteht die Hoffnung, dass diese k1 , k2 vom speziellen Datensatz unabhängige Reaktionskonstanten sind. Dies müsste allerdings erst mit Hilfe anderer, zusätzlicher Messungen untersucht werden, z.B. mit anderen Donorzugaben (anderes c0 im Modell) oder anderem Sauerstoffgehalt (anderes o2 im Modell). Grundsätzlich sollte man nicht alle verfügbaren Daten in die Parameteridentifikation stecken, sondern einen unabhängigen Anteil davon für Kontroll-Zwecke aussparen. 82 8. Simulationsdiagramme Wir geben in diesem Abschnitt eine Einführung in blockorientierte Simulationsdiagramme. Simulation ist nichts anderes als numerische Lösung der Modellgleichungen. Simulationssprachen sind Computerprogramme, die darauf ausgelegt sind, daß man die Modellgleichungen auf möglichst anschauliche Art eingeben kann, und mit den Techniken der numerischen Gleichungslösung so wenig wie möglich belastet wird. Blockorientierte Simulation hat den Vorteil, daß das Modell auf der Basis einer graphischen Darstellung entwickelt und eingegeben wird. 8.1. Wirkungsdiagramm. Ein Wirkungsdiagramm ist eine Darstellung eines Systems und der Wechselwirkungen seiner Komponenten. Dabei werden die zu modellierenden Zustandsgrößen und Prozesse als Worte so angeordnet, dass die Wechselwirkungen mit Pfeilen symbolisiert werden können. Dies ist ein nützlicher erster Schritt bei der Bildung eines mathematischen Modells, unterstützt das Nachdenken über die Wirkungen im System und stellt eine Vorstufe bei der Entwicklung eines Simulationsdiagramms dar. Insbesondere fällt schon hier eine wichtige - vielleicht vorläufige - Entscheidung über die Auswahl der Zustandsgrößen und die berücksichtigten oder weggelassenen Wechselwirkungen. Beispiel 8.1. In Beispiel 4.15 wird einer wässerigen Lösung eine sogenannte Donorsubstanz zugesetzt, die in einer Reaktion erster Ordnung zu NO zerfällt. In einer Reaktion zweiter Ordnung wird NO oxidiert und dadurch aus der Lösung entfernt. Stellen Sie die wechselseitige Beeinflussung der Systemgrößen Donorkonzentration, Stickoxidkonzentration, Sauerstoffkonzentration, Donorzerfallsrate und NO-Oxidationsrate graphisch dar. Diese Vorgänge werden in Abbildung 8.1 graphisch zusammengefaßt: Drei Substanzen in der Lösung stehen in Wechselwirkung, nämlich der Donor, NO und O2 . Die zwei chemischen Vorgänge werden durch die Zerfallsrate des Donors und die Abbaurate von NO beschrieben. Durch Pfeile bezeichnen wir die Art der Wechselwirkung: Je mehr Donor vorhanden ist, desto mehr Donor zerfällt auch, daher wirkt sich der Donorbestand positiv auf die Donorzerfallsrate aus. Wir zeichnen einen mit + markierten Pfeil vom Donorbestand zur Donorzerfallsrate. Je mehr Donor zerfällt, desto mehr NO wird gebildet, aber desto weniger Donor bleibt übrig. Die Donorzerfallsrate wirkt sich also positiv auf den NO-Bestand und negativ auf den Donorbestand aus. Wir zeichnen einen positiv markierten Pfeil vom Donorzerfall zum NO-Bestand, und einen negativ markierten Pfeil vom Donorzerfall zum Donorbestand. Je mehr O2 und NO vorhanden sind, desto mehr NO wird oxidiert. Der NO-Abbau wirkt sich negativ auf den Bestand von NO und O2 aus. Weil wir annehmen, daß soviel Sauerstoff gelöst ist, daß der geringfügige Verlust durch die NO-Oxidation nicht ins Gewicht fällt, markieren wir die negative Auswirkung der NO-Oxidation auf den Sauerstoffbestand nur mit einem strichlierten Pfeil, wir werden sie im Modell nicht berücksichtigen. 8. SIMULATIONSDIAGRAMME 83 Abbildung 8.1. Wirkungsdiagramm zu Beispiel 4.15 Die eben erstellte Abbildung ist ein Wirkungsdiagramm. Merksatz 8.2. Ein Wirkungsdiagramm stellt durch Pfeile dar, welche Komponenten eines Systems einander beeinflussen. Durch Vorzeichen wird dargestellt, ob der Einfluß positiv oder negativ ist. Das Wirkungsdiagramm ist ein qualitativer Überblick über die Struktur des Systems, es enthält keine quantitative Information. 8.2. Erstellen eines Simulationsdiagramms. Wir entwickeln in diesem Abschnitt ein Simulationsdiagramm, das ist eine graphische Beschreibung des Systems, die auch quantitative Information enthält, und zwar so detailliert, daß sie sich direkt in Gleichungen umsetzen läßt. Wieder nehmen wir als Beispiel das Stickoxidmodell. Die Zustandsgrößen unseres Systems sind die Bestände an Donor und NO, sie beschreiben zu jedem Zeitpunkt t den augenblicklichen Zustand der Lösung, alle anderen Größen (etwa die Donorzerfallsrate und die Oxidationsrate) lassen sich daraus berechnen. Den Sauerstoffbestand betrachten wir in unserem Modell als eine bekannte Konstante. Wir zeichnen zwei Rechtecke, sogenannte Blöcke, für die Zustandsgrößen (Abbildung 8.2). Unter die Blöcke schreiben wir die Namen der dargestellten Größen. Wir stellen uns vor, daß am Ausgang der Blöcke die Zahlenwerte cD und cN O der Größen abgelesen werden können. (Wie, das sehen wir später.) Am Eingang werden Einflüsse stehen, die auf diese Größen einwirken. Merksatz 8.3. Den Aufbau eines Simulationsdiagrammes beginnt man mit den Blöcken für die Zustandsgrößen. Wir modellieren jetzt die Wirkungsweise des Donorzerfalls (Abbildung 8.3): Die Zerfallsrate DZR des Donors wird ebenfalls durch einen Block repräsentiert, ausnahmsweise zeichnen wir diesen Block dreieckig — warum, das wird gleich erklärt. Am Ausgang des Blocks steht also, wieviel Mol Donor in der Sekunde zerfallen. Weil der Donorbestand auf die Zerfallsrate Einfluß nimmt, zeichnen wir einen Pfeil vom Block Donor zum Eingang des Blocks DZR. Soweit sieht die Modellierung nur qualitativ aus. Wir stellen aber auch den quantitativen Zusammenhang dar: DZR(t) = k1 · cD (t). Die Form des Blocks symbolisiert die Art der Gleichung: Ein dreieckiger Block bezeichnet einen sogenannten Verstärker. Die Spitze des Dreiecks zeigt zum Ausgang. 84 Abbildung 8.2. Blöcke beschreiben Systemgrößen Abbildung 8.3. Wirkungsweise des Donorzerfalls Der Ausgang eines Verstärkers entsteht aus dem Eingang durch Multiplikation mit einer bekannten Konstanten. Die Konstante, hier k1 , tragen wir in das Dreieck ein. Der Donorzerfall selbst wirkt auf den NO-Bestand, das modellieren wir später, und auf den Donorbestand. Weil er darauf negativ wirkt, drehen wir das Vorzeichen um. Mathematisch gesehen ist das eine Multiplikation mit −1, kann also durch einen Verstärker mit der Konstanten −1 dargestellt werden. Am Ende des zweiten Verstärkers steht also die negative Donorzerfallsrate, und diese wirkt direkt auf den Donorbestand. Wir führen also einen Pfeil vom zweiten Verstärker an den Eingang des Blocks Donorbestand. Beginnend mit einem Anfangswert für die Donorkonzentration integriert die Schleife in Abb. 8.3 die negative Donorzerfallsrate. Das können wir wahlweise mit Hilfe der Ableitung oder eines Integrals schreiben: (8.1) (8.2) d c (t) dt D = −DZR(t), cD (t0 ) = c0 Rt cD (t) = c0 + t0 (−DZR(s)) ds. t0 bezeichnet dabei den Anfangszeitpunkt der Simulation, den Zeitpunkt, zu dem Donor in die Lösung eingebracht wurde. Diese beiden Zeilen sind gleichwertig in dem Sinn, dass cD (t) dann und nur dann eine Lösung von (8.1) ist, wenn cD (t) auch die Integralgleichung (8.2) erfüllt (Hauptsatz der Differential- und Integralrechnung). Der Ausgang des Blocks Donor ist also das Integral des Eingangs plus Anfangswert cD (t0 ) = c0 . Der Block Donor ist ein sogenannter Integrationsblock. Wir symbolisieren das, indem wir in den Block das Symbol 1/s schreiben. (Die Schreibweise 1/s für einen Integrationsblock können wir hier nicht erklären. Sie stammt aus der Regeltechnik.) Der Integrationsblock beinhaltet einen Anfangswert, nämlich den Donorbestand c0 zu Beginn. 8. SIMULATIONSDIAGRAMME 85 Abbildung 8.4. Einige Typen von Blöcken Beachten Sie, daß die Graphik sich direkt in Gleichungen umsetzen läßt. In Abbildung 8.3 haben wir die folgenden Beziehungen symbolisiert: DZR = k1 cD , Z t cD (t) = c0 + (−DZR(s)) ds. t0 Merksatz 8.4. In einer blockorientierten Simulationssprache werden die mathematischen Zusammenhänge innerhalb eines Systems anstatt durch Gleichungen graphisch dargestellt. Dabei wird jede Systemgröße durch einen Block symbolisiert. Am Ausgang des Blocks steht die dargestellte Größe. Pfeile zum Eingang des Blocks zeigen die Größen an, die auf den Block Einfluß nehmen. Die Art des Blocks zeigt an, wie die Ausgangsgröße aus den Eingangsgrößen errechnet wird. Bevor wir das Simulationsdiagramm weiterentwickeln, stellen wir in Abbildung 8.4 die Blocktypen zusammen, die wir noch brauchen werden. Integrationsblock und Verstärker wurden bereits beschrieben. Ein Additionsblock hat zwei oder mehrere Eingänge, die addiert oder subtrahiert werden. Jeder Eingang hat ein Vorzeichen, das festlegt, ob er positiv oder negativ zur Summe beiträgt. Auch ein Multiplikationsblock hat mehrere Eingänge. Am Ausgang steht das Produkt der Eingänge. Eine feste Konstante wird durch ein kleines Rechteck symbolisiert. Weil die Konstante eben von keinen Einflüssen verändert wird, hat dieser Block keine Eingänge. Der Oszillographenblock stellt keine Gleichung dar: Er ist die Anweisung, während der Simulation die Kurve derjenigen Größe zu zeichnen, die am Eingang hängt. Wir stellen jetzt das Simulationsdiagramm fertig. Zwei Größen beeinflussen den NO-Bestand, nämlich die Donorzerfallsrate (positiv), und die NO-Oxidationsrate (negativ). An den Eingang des Blocks NO hängen wir daher einen Additionsblock, der 86 Abbildung 8.5. Simulationsdiagramm des Stickoxidmodells die Oxidationsrate von der Donorzerfallsrate subtrahiert. Die Donorzerfallsrate ist bereits modelliert und wird an den positiven Eingang des Addierers angeschlossen. Der negative Eingang wird für die Oxidationsrate reserviert. Die Differenz der beiden Reaktionsraten ist die Wachstumsrate des NO-Bestandes. Wieder steht am Eingang des Blocks NO die Wachstumsrate, also die Ableitung: Auch NO ist ein Integrationsblock, was wir durch das Symbol 1/s darstellen. Der Anfangswert ist 0, zu Beginn befindet sich kein Stickoxid in der Lösung. Beachten Sie ein wichtiges Detail: Die Größe DZR wurde mehrfach weiterverarbeitet, die Ausgangsleitung von DZR wurde sozusagen angezapft. Wo sich die Leitungen verzweigen, haben wir einen deutlichen Punkt eingezeichnet. In komplizierten Simulationsdiagrammen ist man gezwungen, Leitungen zu überkreuzen, die miteinander nichts zu tun haben. Der Punkt zeigt an, daß nicht eine Kreuzung von zwei Abbildung 8.6. Kreuzungen und verbundene Leitungen 8. SIMULATIONSDIAGRAMME 87 unabhängigen Leitungen aus zeichentechnischen Gründen erfolgt ist, sondern tatsächlich eine Leitung in mehrere Richtungen verzweigt wurde (Abbildung 8.6). Die NO-Oxidation ist eine Reaktion zweiter Ordnung nach NO. Die Oxidationsrate ist das Produkt von vier Faktoren N OR = k2 o2 c2N O = k2 o2 cN O cN O . Dabei sind k2 und o2 zwei bekannte Konstanten, die wir durch Konstantenblöcke symbolisieren. NOR selbst ist dann ein Multiplikationsblock mit vier Eingängen. Damit sind die mathematischen Beziehungen zwischen den Systemgrößen fertig beschrieben: Z t cD (t) = c0 + (−DZR(s)) ds, 0 DZR(t) = k1 cD (t), Z t cN O (t) = 0 + (DZR(s) − N OR(s)) ds, 0 N OR(t) = k2 o2 c2N O (t). und das Simulationsdiagramm in Abb. 8.5 ist die blockorientierte Darstellung des Differentialgleichungsmodells (4.29),(4.30). Wir schließen noch zwei Oszillographenblöcke an: In der Simulation wollen wir die Kurven der Donorkonzentration und der NO-Konzentration beobachten. Schreiben Sie, zur Übung, ein kleines System von Differentialgleichungen Ihrer Wahl an und zeichnen Sie das zugehörige Simulationsdiagramm auf. An die Eingänge der Integratorblöcke werden die Wachstumsraten angeschlossen. Diese werden gemäß den rechten Seiten der Differentialgleichung gezeichnet, wobei für die Zustandsgrößen die Ausgänge der Integratorblöcke verwendet werden. Damit haben Sie Ihr System - im Sinn von Simulationen mit geeigneter software - auch schon gelöst. 8.3. Implementieren eines Simulationsdiagramms in SIMULINK. Bisher kennen wir das Simulationsdiagramm nur als eine graphische Alternative zur Darstellung mathematischer Beziehungen. Nun wird demonstriert, wie man in Simulink, das ist ein Teilpaket von Matlab, ein Simulationsdiagramm eingeben und dann damit Simulationen durchführen kann. Anders als im Workspace gibt man in erster Linie nicht Formeln, sondern Graphik ein. Als Ergebnis der Simulation erhält man die Kurven der Lösungen des Modells. Beachten Sie, dass die Simulationen dieses Abschnitts in sich selbstständig sind und nicht auf Matlab-Programmen früherer Kapitel aufbauen. Die Eingabe eines Simulationsdiagramms in Simulink umfaßt die folgenden 8 Schritte: (1) Öffnen eines Fensters für das Simulationsdiagramm. (2) Beschaffung der benötigten Blöcke aus der SIMULINK-Blockbibliothek. (3) Anordnung der Blöcke. 88 (4) (5) (6) (7) (8) Eintragen der Verbindungen. Zurechtrücken und Feinkorrekturen. Eintragen der Parameter und Anfangswerte. Einstellen der Oszilloskope. Speichern des Simulationsdiagramms. Schritt (1) geschieht durch das Matlab-Kommando simulink oder durch Klicken des Simulink Symbols. Die Blockbibliothek ist ein Fenster, das die Blöcke (ohne Verbindungsleitungen) enthält. Mit der Maus zieht man daraus die benötigten Blöcke ins Diagramm-Fenster. Die Schritte (3) und (5) werden auch mit der Maus und/oder mit Tasten-Kombinationen durchgeführt. Die Verbindungsleitungen zeichnet man ebenfalls mit der Maus ein, dies erfordert etwas handwerkliches Geschick und Übung. Zur Festlegung der Block-Parameter und der Anfangswerte bedient man sich des pop-up Formulars, das man durch Doppelklicken des Blocks erhält. Die Oszilloskope kann man (nach der Simulation) auch automatisch skalieren lassen. Abbildung 8.5 zeigt das fertige Simulink-Diagramm zum Stickoxidmodell. Wir wollen jetzt Beispiele rechnen mit dem Modell, das durch das Simulationsdiagramm dargestellt wird. Dazu müssen wir dem Programm noch mitteilen, welchen Zeitraum die Simulation durchschreiten soll, wie genau und mit welchem Verfahren es rechnen soll. Dazu öffnen wir in der Menuzeile des Fensters, in dem unser Simulationsdiagramm steht, unter dem Menupunkt Simulation die Option Parameter. Es öffnet sich ein Formular mit mehreren Zeilen für die Verfahrensparameter. (Die Verfahrensparameter steuern das numerische Verfahren und haben mit den Modellparametern nichts zu tun.) Zunächst wählen wir durch Anklicken die Lösungsmethode. In Frage kommt etwa das als default angebotene Variable-step Runge-Kutta-Verfahren ode45. Weil der Computer die Gleichungen nur näherungsweise lösen kann, braucht er ein geeignetes Näherungsverfahren, und verschiedene Verfahren bewähren sich bei verschiedenen Gleichungen. Start Time und Stop Time umspannen den Simulationszeitraum. Wir wählen Start 0 und Stop 2000, das sind 2000 Sekunden. Differentialgleichungslöser tasten sich in kleinen Schritten die Lösungskurve entlang (vgl. Seite 59 f). Je kürzer die Schritte, desto genauer können sie der Kurve folgen, aber um den Preis von viel Rechenaufwand. Durch die Aufhäufung von vielen Rundungsfehlern geht wiederum Genauigkeit verloren, wenn die Schrittweite allzu kurz ist. Außerdem wird bei kurzen Schritten die Rechnung sehr langsam. Weil das gesamte Zeitintervall 2000 Sekunden lang ist, spezifizieren wir als größte erlaubte Schrittweite etwa 10, als kleinste 1. Zum Vergleich können wir auch die step sizes auf auto setzen. Als Rechengenauigkeit verlangen wir nicht allzu viel. Im Hinblick darauf, daß die Konzentrationen in der Größenordnung von 10−5 liegen, verlangen wir 1e-8 absolute 8. SIMULATIONSDIAGRAMME 89 Abbildung 8.7. Simulationsergebnisse des Stickoxidmodells x10 -5 1 0.9 0.9 0.8 0.8 0.7 0.7 Konzentration von NO Konzentration des Donors x10 -5 1 0.6 0.5 0.4 0.3 0.6 0.5 0.4 0.3 0.2 0.2 0.1 0.1 0 0 500 1000 Zeit t 1500 2000 0 0 500 1000 1500 2000 Zeit t tolerance. Das Programm ist so ausgelegt, daß die berechnete Lösung von der tatsächlichen Lösung um ungefähr diese Größenordnung abweichen darf. Wir haben jetzt alle Verfahrensparameter eingegeben. Wir schließen das zugehörige Formular und starten die Simulation durch Klicken der Start-Taste. Eine laufende Simulation kann man durch Anklicken von Stop abbrechen, die Rechenzeit für dieses Beispiel beträgt aber nur Bruchteile einer Sekunde. Das Lösungsverfahren arbeitet also in diskreten Zeitschritten, die wie eine tickende Uhr wirken. Obwohl es nicht tatsächlich so ist, kann man sich vorstellen, dass diskrete Signale als Pulse im Takt der Uhr durch die Leitungen laufen. Startwerte sind die Anfangswerte in den Integratorblöcken. Die Amplitude eines Pulses entspricht dem Wert der zugehörigen (Zwischen-)Größe. In den Blöcken werden die Pulse transformiert bzw. miteinander verknüpft. In den Oszilloskopen werden die diskreten Simulations-Zeitpunkte waagrecht, die zugehörigen Amplituden der Eingangspulse senkrecht aufgetragen (weil die Schritte klein sind, sieht die durchgezogene Verbindungslinie glatt aus). Gerade die Anschaulichkeit dieser Vorstellung erleichtert die Interpretation eines Diagramms. Ausserdem erleichtern die Block-Bibliothek sowie die Anschaulichkeit der graphischen Programmierung das Erlernen und Verwenden eines derartigen Simulationswerkzeugs. Abbildung 8.7 zeigt die Kurven der Donor- und NO-Konzentration, wie sie für c0=1e-5, o2=2.5e-4, k1=5e-3, k2=1e7 auf den Oszilloskopen entstehen. Allerdings müssen dazu die Achsen der Oszilloskope geeignet skaliert sein, was man am einfachsten durch Autoscale erreicht. Der Verlauf der Kurven ist sehr plausibel: Der Donor unterliegt nur einem exponentiellen Zerfallsgesetz, hat am Anfang den vorgegebenen Wert und verschwindet langsam aus der Lösung. Zunächst befindet sich kein NO in der Lösung, durch den anfänglich raschen Zerfall von Donor steigt die Konzentration von NO an. 90 Damit steigt aber auch die Oxidationsrate, und der Nachschub durch den Donor klingt allmählich ab. Daher fällt nach einem Maximum auch die NO-Konzentration gegen Null ab. 8.4. Ein Infektionsmodell. Beispiel 8.5. Eine Population entwickelt sich auf der Basis von Zuwanderung und Tod. In dieser Population bricht eine Infektionskrankheit aus. Gesucht ist ein einfaches Simulationsmodell, an dem demonstriert werden kann, wie sich die Infektion innerhalb der Bevölkerung entwickeln könnte, ob sie ausstirbt, oder ob sie sich endemisch einnistet, sodaß auf lange Sicht immer ein gewisser Anteil der Bevölkerung erkrankt sein wird. Wir treffen dabei die folgenden qualitativen Annahmen: (1) Ansteckung erfolgt durch Kontakt infizierter Personen mit noch nicht infizierten. Sobald eine Person infiziert ist, ist sie in der Lage, die Krankheit zu übertragen. (2) Die Krankheit ist soweit ungefährlich, als die Mortalität von infizierten und gesunden Personen gleich ist. (3) Die Anzahl der Infizierten nimmt keinen Einfluß auf die Anzahl der Zuwanderungen und auf die Heilungschancen der einzelnen Infizierten. (4) Infizierte Personen können geheilt werden, und sind nach der Heilung völlig und auf immer immun gegen die Krankheit. (5) Das Infektionsrisiko ist für alle Personen der Population gleich. (6) Neu zugewanderte Personen sind weder infiziert noch immun. Stellen Sie diese Vorgänge durch ein Wirkungsdiagramm graphisch dar. Wir bemerken, daß diese Annahmen natürlich eine sehr grobe Vereinfachung jedes realen Infektionsgeschehens sind. Überlegen Sie selber, welche Phänomene dazu beitragen, daß die Annahmen 1–6 unrealistisch sein könnten. Die Aufgabe des Modells, das wir entwickeln werden, soll nicht sein, den Verlauf einer einzelnen Infektion präzise vorauszusagen, sondern wir wollen uns nur einen Überblick verschaffen, welchen Verlauf eine Infektion generell nehmen könnte. Da die Population nach Punkt (5) homogen ist, müssen wir nur drei Klassen von Personen unterscheiden: S Gesunde noch nicht immune, also noch anfällige Personen (in englischer Terminologie Susceptible). I Infizierte Personen, sie sind zugleich Krankheitsüberträger (englisch Infective). R Immune Personen, die dadurch aus dem Wirkungskreis der Infektion entfernt sind (englisch Removed). Ein Modell, das auf der Basis dieser drei Populationsklassen aufbaut, heißt ein SIR-Modell. Abbildung 8.8 zeigt das Wirkungsdiagramm. Im Zentrum stehen die Bestände der drei Klassen S, I und R. Die Populationsdynamik der drei Klassen wird durch folgende Vorgänge geregelt: 8. SIMULATIONSDIAGRAMME 91 Abbildung 8.8. Wirkungsdiagramm zu Beispiel 8.5 Jedes Individuum jeder Klasse unterliegt einer gewissen Sterbewahrscheinlichkeit. Die Anzahl der täglichen Verluste jeder Klasse durch Tod steigt, je mehr Individuen in der Klasse sind. Diese Verluste sind natürlich dem Bestand der Klasse abträglich. Wir haben daher eine positive Wirkung vom Bestand der Klasse zur Häufigkeit der Todesfälle aus der Klasse, und eine negative Wirkung von der Todesrate auf den Bestand. Die Zuwanderung bewirkt einen Zuwachs der Susceptible-Klasse. Sie wird selbst durch keinen Vorgang des Infektionsgeschehens beeinflußt. Je mehr Anfällige und je mehr Infizierte in der Population vorhanden sind, desto eher kommt es zu Kontakt zwischen einem Anfälligen und einem Infizierten, und desto häufiger tritt auch Ansteckung auf. Die Häufigkeit der Ansteckungen wird daher sowohl vom Bestand von S als auch von I positiv beeinflußt. Jede Ansteckung befällt eine Person aus der Klasse S und führt sie in die Klasse I über: Die Ansteckungshäufigkeit wirkt sich auf den Bestand von S negativ, auf I positiv aus. Je mehr Personen infiziert sind, desto mehr können auch geheilt werden. Der Bestand von I wirkt sich positiv auf die Häufigkeit der Heilungen aus. Jedes geheilte Individuum wird der Klasse I entzogen und als immun der Klasse R zugezählt. Beispiel 8.6. Entwickeln Sie ein Simulationsmodell, das mit möglichst einfachen mathematischen Beziehungen die oben beschriebenen Vorgänge im SIR-Modell beschreiben kann. Führen Sie verschiedene Simulationen durch, um eine Vorstellung von den Möglichkeiten zu bekommen, wie sich eine Infektion in einer Bevölkerung ausbreiten kann. Wir beginnen unser Simulationsdiagramm mit den Beständen S(t), I(t), und R(t). Diese Funktionen geben an, wieviel Individuen die drei Klassen zur Zeit t enthalten. Zuwanderung und Tod, sowie Ansteckung und Heilung tragen zu den Wachstumsraten der einzelnen Klassen bei. Wir modellieren jede Klasse durch einen Integrationsblock, dem ein Additionsblock vorgelagert ist, in dem die einzelnen Beiträge zur Wachstumsrate aufsummiert werden. In Abbildung 8.9 modellieren wir zunächst Zuwanderung und Tod. Da die Zuwanderungsrate (Zuwanderungen pro Tag) unbeeinflußt von allen anderen Vorgängen bleibt, ist sie eine Konstante β > 0. Sie wird zur Wachstumsrate der S-Klasse zugezählt. 92 Abbildung 8.9. Die Wirkung von Zuwanderung und Tod in Beispiel 8.5 Jede Klasse hat ihre eigene Häufigkeit der Todesfälle. Wir nehmen an, daß jedes Individuum derselben konstanten Sterbewahrscheinlichkeit pro Tag unterliegt, diese Wahrscheinlichkeit bezeichnen wir mit µ > 0. Die Anzahl der täglichen Todesfälle aus der Klasse S ist daher µS und wird aus S durch einen Verstärker errechnet. Sie trägt negativ zur Wachstumsrate von S bei. Dieselbe Konstruktion wird auch für die Klassen I und R durchgeführt. Wir modellieren jetzt die Ansteckung. Die einfachste mathematische Beziehung, die die qualitativen Eigenschaften der Infektion nachahmt, beschreibt die Anzahl der täglichen Ansteckungen durch λIS mit einem konstanten Faktor λ > 0. Ein solches Modell ist gerechtfertigt, wenn man davon ausgeht, daß die Anzahl der Kontakte zwischen Infizierten und Anfälligen proportional sowohl der Anzahl der Infizierten als auch der Anfälligen ist. Im Simulationsdiagramm errechnen wir das Produkt IS durch einen Multiplikationsblock. Der anschließende Verstärker trägt den Faktor λ bei. Die Häufigkeit der Ansteckungen trägt negativ zur Wachstumsrate von S und positiv zur Wachstumsrate von I bei. Wir modellieren die Heilung unter der Annahme, daß für jede infizierte Person die Wahrscheinlichkeit, innerhalb eines Tages geheilt zu werden, γ > 0 beträgt. Die Anzahl der täglichen Heilungen ist dann γI, was durch einen Verstärker modelliert wird. Die Heilungen tragen negativ zum Wachstum von I und positiv zum Wachstum von R bei. Damit sind die mathematischen Beziehungen fertig modelliert. Abbildung 8.10 enthält das zugehörige Simulationsdiagramm (in Simulink). Wir müssen noch Ausgabeblöcke festlegen, die die Simulationsergebnisse anzeigen, und die Parameter in die Blöcke eintragen. Wir wollen an Hand dieses Modells demonstrieren, wie eng Simulink mit dem Matlab-Workspace zusammenarbeitet. Anstatt die Kurven auf Oszilloskopen anzuzeigen, schreiben wir die Resultate in den Workspace. In der Bibliothek befindet sich der Block “to Workspace” (ein längliches Rechteck); dieser Block schreibt einfach alle Daten, die an seinen Eingang gelangen, in einen langen Spaltenvektor im Workspace. Den Namen des Vektors können wir festlegen, indem wir den Block öffnen. Wir schreiben die Bestände aller drei Klassen in den Workspace, als Vektoren susc, infec und remov. Diese Daten können wir nach der Simulation im Workspace weiterverarbeiten. Damit wir wissen, zu welchen Zeitpunkten die Daten 8. SIMULATIONSDIAGRAMME 93 Abbildung 8.10. Simulationsdiagramm des SIR-Modells gelten, schreiben wir auch die Simulationszeit als time in den Workspace. Die diskreten Simulationszeitpunkte erhält man aus dem Block Clock, der wie eine Uhr aussieht. Neuere Versionen von Simulink speichern die Simulationszeitpunkte auch ohne Clock in einem Vektor (default tout). Auch bei der Festlegung der Parameter in den Blöcken verwenden wir das enge Wechselspiel zwischen dem Workspace und dem Simulationsdiagramm. Merksatz 8.7. Ein Parameter in einem SIMULINK-Block kann durch einen Zahlenwert festgelegt werden, aber auch durch jede Formel, die der Workspace zu Beginn der Simulation ausrechnen kann. Wir schreiben daher in die Verstärker- und Konstantenblöcke einfach die Ausdrücke lambda, mu, gamma, beta und müssen nur bei Beginn der Simulation sicherstellen, daß die Zahlenwerte dafür im Workspace aufliegen. Das ist so gut und so schlecht wie die Eingabe der Zahlenwerte in die Blöcke selbst, nur für µ ergibt sich ein echter Vorteil: Wenn wir im Lauf der Simulationen verschiedene Werte für µ probieren wollen, müssen wir nur den Wert im Workspace ändern und nicht drei Blöcke aufmachen. Als Anfangswert für S geben wir 100000 im Integrationsblock S ein. (Das ist der Wert, der sich mit den Parametern, die wir verwenden werden, ohne Infektion in der Bevölkerung als Gleichgewicht einstellen würde.) Als Anfangswert für I geben wir 100 ein, dh. 100 Personen werden unvermittelt krank. Wir beginnen mit 0 Individuen in der Klasse R. 94 Wir führen jetzt eine Simulation durch. In den Workspace schreiben wir die Wertzuweisungen >>beta=100; ←>>mu=0.001; ←>>gamma=0.4; ←>>lambda=5e-6; ←Als Verfahrensparameter (einzusetzen im Menupunkt Simulation, Option Parameters) verwenden wir: Runge-Kutta Verfahren, Startzeit 0, Stopzeit 4000, kleinste Schrittweite 1, größte Schrittweite 10, Genauigkeit 1. Wir sollten später auch ausgiebig mit Ergebnissen bei anderen Verfahrensparametern (z.B. default) vergleichen, um Vertrauen (oder Misstrauen) in die Simulationsergebnisse zu bekommen. Wir starten die Simulation und hören dann einen kurzen Piepton. Jetzt liegen die Resultate der Simulation im Workspace, und wir können sie ansehen und weiterverarbeiten. Von Interesse ist zum Beispiel, wie sich die Anzahl der Infizierten im Lauf der Zeit entwickelt: >>plot(time,infec) ←Die Kurve zeigt zunächst einen rapiden Anstieg der Infizierten bis zu einem Maximum, und im folgenden ein langsames Auf- und Abschwingen der Anzahl der Infizierten mit langsam abnehmender Amplitude. Wir könnten auch die Anzahl der Infizierten gegen die Anzahl der Anfälligen auftragen: >>plot(susc,infec) ←Wir erhalten die linke Kurve in Abbildung 8.11. Wir ändern jetzt die Ansteckungsrate und betrachten eine weniger ansteckende Krankheit. Dazu verändern wir λ im Workspace: >>lambda=3e-6; ←Die anderen Parameter lassen wir unverändert und starten eine neue Simulation. Nach Beenden des Laufes können wir die Resultate wieder plotten: >>plot(susc,infec) ←Wir erhalten die rechte Kurve in Abbildung 8.11. Auf diese Weise könnten wir die verschiedensten Kombinationen von Parametern durchprobieren. Beispiel 8.8. Interpretieren Sie die Simulationsresultate für die Parameter β = 100, µ = 0.001, γ = 0.4, λ = 5 · 10−6 bzw. λ = 3 · 10−6 , die in Abbildung 8.11 dargestellt sind. 8. SIMULATIONSDIAGRAMME 95 Abbildung 8.11. Simulationsergebnisse des SIR-Modells lambda = 5e-6, 4000 Tage lambda = 3e-6; 4000 Tage 2500 10 9 2000 8 7 Infective 6 Infective 1500 1000 5 4 3 500 2 1 0 6 o 7 8 Susceptible 9 * 10 x10 4 0 9.997 9.998 9.999 Susceptible * 10 x10 4 Parameter:β = 100, µ = 0.001, γ = 0.4, λ = 5 · 10−6 bzw. λ = 3 · 10−6 , Simulationszeitraum: 4000. Wir bemerken, daß die Zahlenwerte des Modells nicht realistisch gewählt wurden, sondern so, daß das Verhalten, das ein SIR-Modell zeigen kann, besonders deutlich sichtbar wird. Die Kurven liefern einen Vergleich der Ergebnisse in Abhängigkeit vom Parameter λ, der mißt, wie ansteckend die Krankheit innerhalb der Population wirkt. Alle anderen Parameter sind in beiden Simulationen gleich. In den Parameter λ gehen sowohl Eigenschaften der Krankheit als auch die hygienischen Verhältnisse ein. (Masern sind zum Beispiel besonders ansteckend, sodaß λ für diese Krankheit relativ groß ist. Durch sorgfältige Quarantäne von Infizierten kann man λ klein halten.) Ist λ genügend klein (rechte Kurve), so stirbt die Infektion aus: Die Neuansteckungen werden von den Heilungen überwogen. Zunächst nimmt die Anzahl der Anfälligen wegen der Ansteckung ab. Aber auch die Anzahl der Infizierten fällt rasch, sodaß die Infektion ausstirbt, und sich letztlich die Anzahl der Anfälligen jenem Wert nähert, der das Gleichgewicht in der völlig gesunden Population darstellt (mit einem kleinen * rechts unten eingezeichnet.) Ist λ groß (linke Kurve), überwiegt zunächst die Ansteckung die Heilung. Die Anzahl der Infizierten nimmt schnell zu, und durch die Ansteckung nimmt die Anzahl der Anfälligen ab. Letztlich fehlt der Nachschub an Gesunden, die angesteckt werden könnten. In dieser 96 Tabelle 8.1. SIR-Modell zur Ausbreitung einer Infektion Größe Einheit t Tag S(t) Ind. I(t) Ind. R(t) Ind. β Ind/Tag µ 1/Tag γ 1/Tag λ 1/(Tag.Ind) Modellgrößen Benennung Zeit Anzahl Anfällige Anzahl Infizierte Anzahl Immune Zuwanderungsrate Mortalität Heilungswahrscheinlichkeit Maß für Ansteckung Kommentar gesucht gesucht gesucht bekannt bekannt bekannt bekannt dynamische Mengenbilanzen d S(t) = β − µS(t) − λS(t)I(t), dt d I(t) = λS(t)I(t) − µI(t) − γI(t), dt d R(t) = γI(t) − µR(t). dt Phase der Epidemie fällt sowohl die Anzahl der Anfälligen als auch die der Infizierten. Die Infektion scheint fast auszusterben. Anschließend steigt langsam die Anzahl der Anfälligen wieder an. Wenn aber genug Nachschub an Gesunden besteht, die angesteckt werden können, bricht die nächste Welle der Epidemie aus, nicht ganz so heftig wie die erste. Dieser Zyklus wiederholt sich in immer weniger ausgeprägten Wellen. Wir können uns vorstellen, daß sich auf die Länge ein Gleichgewicht einstellt, indem stets ein bestimmter Prozentsatz der Population infiziert ist: Die Infektion ist endemisch. (Das endemische Gleichgewicht ist durch einen Kreis angedeutet.) Natürlich könnte man jetzt ähnliche Untersuchungen über die Auswirkung der anderen Parameter anstellen. Man könnte etwa durch Simulationen herausfinden, wie groß λ mindestens sein muß, daß bei den gegebenen anderen Parametern die Infektion nicht ausstirbt (nämlich λ = 4.01 · 10−6 , wie wir auch durch Untersuchung der Gleichgewichte finden werden). Anmerkung. Wir haben uns die Klasse R als Geheilte gedacht und nicht, was ja auch mit removed gemeint sein könnte, als auf Grund der Infektionskrankheit Verstorbene. Aber auch die erste Variante hat etwas Unmenschliches an sich: wenn die Geheilten immun sind, dann sollten doch vor allem die Geheilten bei der Bekämpfung der Epidemie mitwirken! Wie könnten wir die Heilungsrate γ in diesem Sinn von R abhängigig machen? Und wie würde das entsprechende Simulationsdiagramm ausschauen? 8. SIMULATIONSDIAGRAMME 97 Es wird Ihnen sicher aufgefallen sein, dass wir Simulationen durchführen konnten, ohne das mathematische Modell anzuschreiben. Dies ist deshalb möglich, weil das Simulationsdiagramm inklusive festgelegter Anfangswerte und Modell-Parameter eindeutig und detailliert genug ist, um von Simulink als ein System von Integralgleichungen interpretiert zu werden. Insbesondere sind an die Eingänge der Integratorblöcke die Änderungsraten der Zustandsgrößen angeschlossen (vgl. (8.2), (8.1)). Und diese wurden modelliert, ohne alle Formeln explizit anzuschreiben. Wir können das Diagramm als System von Differentialgleichungen interpretieren und erhalten die Gleichungen in Tabelle 8.1. Auf der linken Seite eines Gleichheitszeichens steht die Ableitung einer Zustandsgröße, rechts davon der Eingang des zugehörigen Integratorblocks, nämlich die Zusammenfassung der Additions- und Multiplikationsblöcke, in die S, I, R und β eingehen. Es ist immer vorteilhaft, mit beiden Formen des Modells zu arbeiten, schon zur gegenseitigen Kontrolle. Die Differentialgleichungs-Variante ist zwar nicht direkt für Simulationen zu gebrauchen, sie ist aber kompakter, übersichtlicher, schneller anzuschreiben und kann - wie wir sehen werden - einer qualitativen Analyse unterzogen werden. 8.5. Trajektorien im Zustandsraum. In diesem Abschnitt besprechen wir Konzepte, die von der speziellen Simulationsmethode völlig unabhängig sind. Diese Konzepte haben also nichts mit Simulationsdiagrammen zu tun, es ist hier aber eine geeignete Stelle dieses wichtige Thema zu besprechen. Wir können die zeitliche Entwicklung eines Systems graphisch darstellen, indem wir jede Zustandsgröße als Funktion der Zeit zeichnen. Im Donor-Problem hat man z. B. die beiden Konzentrationen cD (t) und cN O (t), t ≥ 0, also zwei Zeichnungen, wie in Abbildung 8.7. Aus diesen beiden Kurven können wir eine einzige machen, wenn wir auf der waagrechten Achse nicht die Zeit sondern die erste Zustandskomponente cD (t) auftragen und auf der senkrechten die zweite, cN O (t). Wir zeichnen also die Kurve {(cD (t), cN O (t)), t ≥ 0}. Das Ergebnis ist in Abbildung 8.12 zu sehen. (In Matlab würde man dazu in Abschnitt 6.4 einfach das Kommando plot(x(:,1),x(:,2)) eingeben.) Diese Abbildung ist wie folgt zu interpretieren: jeder Punkt der Kurve ist ein Zustand des Modells, der im Laufe der Simulation angenommen wurde. Und zwar ist der Anfangszustand der Punkt (10−5 , 0) rechts unten. Von dort bewegt sich der Punkt (cD (t), cN O (t)) zunächst nach links oben, in Richtung höherer NO-Konzentration und abnehmender Donor-Konzentration. Wenn der Maximalwert der NO-Konzentration überschritten ist, bewegt sich das System nach links unten, beide Konzentrationen nehmen ab. Die Punkte auf der Kurve könnten wir mit der Hand zeichnen, in dem wir zu jedem Simulations-Zeitpunkt t die Größe von cD (t) aus Abbildung 8.7 entnehmen und als waagrechte Koordinate auftragen und als senkrechte Koordinate die Größe von cN O (t) für dieselbe Zeit t. Die Kurve in Abbildung 8.12 heisst eine Trajektorie des Donor-Modells. Sie besteht aus allen Punkten (cD (t), cN O (t)), die das Modell, ausgehend von einem speziellen Anfangswert, im Lauf der Zeit durchläuft. Obwohl cD auf der waagrechten und cN O auf der senkrechten Achse aufgetragen wird, ist die Trajektorie nicht so zu interpretieren, dass cN O eine Funktion von cD wäre. Die Trajektorie ist eine 98 Abbildung 8.12. Simulationsergebnisse des Stickoxidmodells −6 3.5 x 10 3 Konzentration von NO 2.5 2 1.5 1 0.5 0 0 0.2 0.4 0.6 0.8 Konzentration des Donors 1 1.2 −5 x 10 Teilmenge des Zustandsraums, das ist der Vektorraum aller möglichen Zustände; für das Donorproblem ist der “Raum” zweidimensional, eine Ebene. Definition 8.9. Die Werte der n Zustandsgrößen eines Modells fassen wir zu einem Zustandsvektor mit n Komponenten zusammen, kurz Zustand genannt. Der Raum aller Zustandsvektoren heisst der Zustandsraum (oder Phasenraum), das ist ein Vektorraum mit der Dimension n. Die zeitliche Entwicklung eines kontinuierlichen dynamischen Systems erzeugt eine Trajektorie {(x1 (t), . . . , xn (t)) : t ≥ t0 } ⊂ Rn im Zustandsraum, das ist eine Kurve, die aus den Punkten besteht, die der Zustand ausgehend von einem Anfangszustand zum Zeitpunkt t0 - durchläuft. (In der englischsprachigen Literatur wird statt trajectory auch das Wort orbit verwendet.) Beachten Sie, dass die zwei Kurven in Abbildung 8.7 mehr Information beinhalten als die Kurve in Abbidung 8.12 allein. Man kann nämlich, wie geschildert, von der Abbidung 8.7 eindeutig zur Trajektorie gelangen aber nicht umgekehrt: die Zeit ist in Abbidung 8.12 nicht explizit enthalten. Daher sieht man einer Trajektorie ohne Zusatzinformation nicht an, wo sie beginnt und endet. Auch über die Geschwindigkeit mit der sich der Zustand ändert ist in Abbidung 8.12 nichts enthalten. Aus Abbidung 8.7 wissen wir jedoch, dass der Zustand sich mit abnehmender Geschwindigkeit dem Nullpunkt nähert. Wir könnten in Abbidung 8.12 Zusatzinformation einzeichnen indem wir den Anfangszustand markieren, oder die Geschwindigkeit, mit der die Trajektorie durchlaufen wird, dadurch andeuten, dass wir in regelmäßigen zeitlichen Abständen ein Symbol auf die Trajektorie setzen. Dann würde der Abstand der Symbole in Richtung links unten immer kleiner 8. SIMULATIONSDIAGRAMME 99 Abbildung 8.13. Die drei Zeit-Plots der endemischen Epidemie 4 10 x 10 S(t) 9 8 7 6 0 500 1000 1500 2000 2500 3000 3500 4000 0 4 x 10 500 1000 1500 2000 2500 3000 3500 4000 0 500 1000 1500 2000 Zeit t 2500 3000 3500 4000 2000 I(t) 1500 1000 500 4 R(t) 3 2 1 0 werden. Oft deutet man wenigstens die Richtung, in der die Trajektorie durchlaufen wird, mit Pfeilen an. Ein Beispiel mit einem dreidimensionalen Zustandsraum ist das Epidemie-Modell: die Trajektorien bestehen aus Punkten mit den Koordinaten (S(t), I(t), R(t)). Abbildung 8.13 zeigt die wellenförmige zeitliche Entwicklung der Epidemie: immer wieder verschwindet die Krankheit fast vollkommen aus der Population, aber nie ganz. Durch das wiederholte Ausbrechen der Infektionskrankheit (schneller Anstieg von I(t)) geht die Zahl der Ansteckbaren S(t) zurück, gleichzeitig steigt die Zahl der Geheilten Abbildung 8.14. Die Trajektorie der endemischen Epidemie 4 x 10 4 R(t) 3 2 1 0 2500 2000 1500 10 9.5 1000 9 8.5 8 500 7.5 7 I(t) 0 6.5 6 S(t) 4 x 10 100 R(t). Die Parameter und der Anfangszustand sind hier gleich gewählt wie in Beispiel 8.8. Die dadurch erzeugte Trajektorie sehen wir in Abbildung 8.14. Tatsächlich ist die linke Kurve in Abbildung 8.11 nichts anderes als die Projektion der Trajektorie auf die S − I-Ebene. Wieder wissen wir nur auf Grund der Zeitplots, dass die immer enger werdende Spirale in Abbildung 8.14 rechts unten beginnt und ein im Zentrum liegendes endemisches Gleichgewicht im Gegenuhrzeigersinn umkreist. Es gibt also zwei fundamental unterschiedliche Möglichkeiten der graphischen Darstellung der zeitlichen Entwicklung eines dynamischen Systems: die Zeitplots der einzelnen Komponenten des Zustands und die Trajektorien des Zustands im Zustandsraum. Beide Darstellungen haben ihre Vor- und Nachteile; verwendet werden alle beide je nach Zweck und Anwendung. Als eine reduzierte Variante können wir auch nur einige der Komponenten der Trajektorie zeichnen. Dies ist bei mehr als drei Zustandsgrößen unumgänglich, kann aber auch einfach die Interpretation erleichtern (vgl. Abbildung 8.14 und Abbildung 8.11). Die geometrischen Merkmale der Trajektorien bringen besonders anschaulich qualitative Eigenschaften des Systems zum Ausdruck. Wenn das System sich etwa in einer Gleichgewichtslage befindet, sich also der Zustand nicht mit der Zeit ändert, dann ist die entsprechende Trajektorie ein einziger Punkt im Zustandsraum. Viele Differentialgleichungs-Modelle haben die Eigenschaft, dass die Lösung zu gegebenem Anfangswert eindeutig bestimmt ist. Dies bedeutet aber, dass sich zwei Trajektorien eines solchen Modells nicht überkreuzen können, sonst wäre der Schnittpunkt ein Anfangswert mit zwei möglichen Lösungen. Viele Differentialgleichungs-Modelle haben sogar die Eigenschaft, dass je zwei verschiedene Trajektorien gar keinen gemeinsamen Punkt haben können. Dann kann eine Trajektorie, die sich einer Gleichgewichtslage nähert, dies nur mit nach Null gehender Geschwindigkeit tun. Sie erreicht die Gleichgewichtslage nie ganz, sonst hätte sie mit dieser einen gemeinsamen Punkt. Zum Beispiel in unserem Stickoxid-Modell gibt es für beliebig lange Zeitintervalle noch Restkonzentrationen größer als Null. Im Epidemie-Modell wird das endemische oder auch das gesunde Gleichgewicht nie erreicht (vgl. Abbildung 8.11), obwohl die Trajektorie im Lauf der Zeit beliebig nahe herankommt. Dieses - streng genommen - unrealistische Verhalten der Modelle kommt durch die kontinuierliche und stetige Entwicklung der Modell-Trajektorien zustande. Für sehr kleine Konzentrationen müssten wir die Reaktionen einzelner Moleküle modellieren, denn irgendwann zerfällt das letzte Molekül Donor und oxidiert das letzte Molekül NO. Und in der Nähe des endemischen Gleichgewichts schwanken die Anzahlen von Individuen in den Klassen S, I, R ganzzahlig und unregelmäßig, bleiben aber in der Nähe des Gleichgewichts. Diese unstetigen Änderungen in den realen Systemen kann ein kontinuierliches Modell nicht nachahmen (ganzzahlige probabilistische Modelle werden wir später kennenlernen). Wie wir gesehen haben gibt es aber sehr wohl wichtige Aspekte der Entwicklungen in realen Systemen, die von Modellen mit Differentialgleichungen gut und effizient wiedergegeben werden. 8. SIMULATIONSDIAGRAMME 101 Zwischenbilanz und Ausblick: Hier endet der erste Teil des Zyklus Quantitative Systemwissenschaften. Dem Studienplan der Umweltsystemwissenschaften an der Universität Graz entsprechend wurde versucht, im ersten Teil schon die wichtigsten Elemente der mathematischen Modellbildung und Simulation unterzubringen. Didaktisch wurde ein flacher Einstieg gewählt, mit Themen, die schon in anderen Lehrveranstaltungen vorbereitet wurden. Im Laufe der Vorlesung wird die Dichte des Dargebotenen größer, am Ende werden wichtige Konzepte schon recht komprimiert dargestellt. Dies geschieht unter der Annahme, dass die HörerInnen sich gewöhnen an die Sprechweise in Modellen, Funktionen, Lösungen und Numerik. Es ist empfehlenswert die mathematisch ausformulierten Teile und die konkreten Programmierbeispiele nicht einfach zu überspringen. Lässt man sich einmal ernstlich darauf ein, wird man feststellen, dass es sich um nachvollziehbare Teile handelt, deren Verständnis viel zur Sicherheit gegenüber der zu erlernenden Materie beiträgt. Ein Charakteristikum dieser Vorlesung ist die Gleichzeitigkeit von Beispielen, allgemeinen Konzepten und konkreter Vorgangsweise. Dies birgt die Gefahr eines verwirrenden Durcheinanders, kann aber die mitunter spröde anmutenden mathematischen Techniken durch anwendungsorientierte Interessen motivieren. Versuchen Sie, die allgemeinen Konzepte nicht - vor lauter Beispielen und Details - aus den Augen zu verlieren. Der zweite Teil des Zyklus ist nach den gleichen Prinzipien entworfen. Unter anderem baut er auf den Modellen des ersten Teils auf, insbesondere wird qualitative Analyse an Hand des Epidemie-Modells demonstriert. Nach einem kleinen Ausflug in die nichtlineare Dynamik (Bifurkationen, Chaos) werden räumlich verteilte Systeme modelliert. Durch Grenzübergang gelangt man von einem Vielzellen-Modell zu partiellen Differentialgleichungen. Anhand der Schadstoffausbreitung in einer Flussströmung werden die wichtigsten Typen solcher Gleichungen plausibel gemacht. Die dazu notwendigen Vorkenntnisse entsprechen - selbstverständlich - dem Studienplan USW Bakkalaureat. An Hand der Matlab software Femlab wird demonstriert, wie partielle Differentialgleichungen zwar recht bequem numerisch simuliert werden können, aber auch, welche Fehler dabei auftreten. Dann werden zeit-diskrete Modelle behandelt. Ein klassisches Epidemie-Modell wird erstellt und qualitativ untersucht (Schwellenwert). Der Bezug zum SIR Modell erfolgt durch Grenzübergang. Als nächstes werden Zellularautomaten als räumlich verteilte diskrete Modelle erläutert. An Hand des legendären Game of Life wird sichtbar, wie komplex das Verhalten eines äusserst einfach definierten Modells sein kann. Hier beginnt die Beschäftigung mit Modellen - ich nenne sie Simulationsmodelle - die nicht versuchen ein real existierendes System mathematisch abzubilden. Vielmehr werden solche Modelle nur numerisch implementiert und qualitative Eigenschaften des Modell-Verhaltens in Simulationen zum Vorschein gebracht. Schließlich wenden wir uns stochastischen diskreten Modellen zu, und zwar zunächst dem Langzeitverhalten linearer Markov-Ketten. Dann betrachten wir ein ganzzahliges probabilistisches Epidemie-Modell: an Hand einer hoch nichtlinearen Markov-Kette wird 102 erläutert und demonstriert, wie man mit Monte-Carlo-Simulationen zu statistischen Prognosen kommt. Am Ende der Vorlesung mit immanenten Übungen steht ein probabilistischer Zellularautomat: Forest Fire. Dies ist ein Prototyp von Simulationsmodellen, die Systemeigenschaften wie Phasenübergang, Selbstorganisation oder Musterbildung veranschaulichen und verstehen helfen. Bücher zu den Vorlesungen Quantitative Systemwissenschaften 1 und 2: • P. Doucet and P.B. Sloep, Mathematical Modeling in the Life Sciences, Ellis Horwood 1992. Eine gut lesbare Einführung in die Methoden der mathematischen Modellbildung, der einige Ideen, die wesentlichen Konzepte zu erläutern, entnommen wurden. • MT. Hütt, Datenanalyse in der Biologie, Springer 2001. Eine kompakte und verständlich geschriebene Einführung in die nichtlineare Dynamik, fraktale Geometrie und Informationstheorie, der die Bifurkations-Beispiele und der Waldbrand-Automat entnommen wurden. • D. Kaplan and L. Glass, Understanding Nonlinear Dynamics, Springer 1995. Eine populäre, leicht verständliche, für Nicht-Mathematiker geschriebene Einführung in Chaos, Fraktale, Zellular-Automaten und nichtlineare Dynamik mit vielen realen Beispielen. • J.B. Snape, I.J. Dunn, J. Ingham and J.E. Prenosil, Dynamics of Environmental Bioprocesses, VCH 1995. Eine umfassende Sammlung von Grundlagen, Methoden und Beispielen der Modellbildung zu Umweltprozessen. • D.G. Luenberger, Introduction to Dynamic Systems, Wiley 1979. Klassische Einführung in die Mathematik linearer und nichtlinearer dynamischer Systeme, der die Darstellung der Markov-Ketten entnommen wurde. • F.C. Hoppensteadt and C.S. Peskin, Modeling and Simulation in Medicine and the Life Sciences, Springer 1992, 2002. Naturwissenschaftlich anspruchsvoll geschriebene Darstellung der Anwendung mathematischer Modelle in den Biowissenschaften, der die diskreten Infektionsmodelle entnommen wurden. • H. Bossel, Modellbildung und Simulation, Vieweg 1994. Eine lehrmeisterlich geschriebene Anleitung zur Bildung mathematischer Modelle und Simulation (inklusive Software), der das kleine Weltmodell entnommen wurde.
© Copyright 2025 ExpyDoc