Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
Liebe Liste, vor Jahren hatte ich das Problem einer Beschreibung der Reaktion eines Methylierungsmittels mit einer Trihydroxyverbindung. Allgemein setzt man das Methylierungsagens M mit einem Molekül A, das drei reaktive Zentren hat, um, und es entsteht bzw. es können entstehen die Monomethylprodukte A1, A2 und A3, die disubstituierten A12, A13 und A23 und das trimethylierte A123. Der Reaktionsverlauf kann beschrieben werden durch ein System gekoppelter nichtlinearer Differentialgleichungen ? siehe notebooks. Die auftretenden Größen Ap ( lies Apunkt ) etc. sind Ableitungen nach der Zeit. Gefragt war nach der Verteilung der Reaktionsprodukte nach Ende der Reaktion bei verschiedenen Einsatzmengen von M. Das ging einfach. Das System wird für hinreichend lange Zeiten mit NDSolve gelöst und die entsprechenden Produktmengen berechnet. Allerdings wollte ich aus verschiedenen Gründen NDSolve umgehen. Prof. Pesch, Bayreuth, wies darauf hin, dass man wegen der Form von Ap die Zeit eliminieren und alles in einfachere (entkoppelte, M fällt heraus) Differentialgleichungen in der Variablen A umschreiben kann. Wenn man noch beachtet, dass M am Ende der Reaktion verschwindet (jedenfalls wenn es im Unterschuss vorliegt), kann man aus der Bilanzgleichung von M auch alle gesuchten Größen berechnen. Das funktioniert gut, wie am Beispiel einer Substanz mit zwei Substitutionsstellen ausgeführt (siehe Disubstitution.nb). Erweitert man ohne Nachdenken auf drei Substitutionsstellen (Disubstitution_erw.nb. Müsste eigentlich Trisubstitution heißen) hält das Programm auf meinem Laptop (und auch auf mindestens einem anderen) wegen Memory-Overflow an. Auf meinem PC wird auch nach acht (!) Stunden Rechenzeit kein Ergebnis erhalten. Der Taskmanager sagt, dass über 97% des Speichers (4 GB) benutzt werden. Allerdings enthält die Gleichung A123p, wie Prof. Pesch anmerkte, die Funktion A123 nicht, so dass man direkt integrieren kann (Disubstitution_erw1a.nb). Diese Integration funktioniert auch, wobei ich die Berücksichtigung von Bedingungen unterdrückt habe. Das Ergebnis ist umfangreich, und so stürzte mein Rechner beim Versuch FullSimplify oder auch nur Simplify auf das Resultat anzuwenden schlicht ab ? es ging nichts mehr. Zuwenig Memory?! Vermutlich ist es für die Praxis eh geschickter, von Anfang an numerisch zu arbeiten. Habe ich auch gemacht (Disubstitution_erw2.nb), aber hier traten in etlichen Rechnungen je nach Wahl der Geschwindigkeitskonstanten k Probleme auf (Overflow, Underflow, PrecisionGoal etc. ) , so dass eigentlich schon eine allgemeine Lösung, in die die k?s dann eingesetzt werden können, wünschenswert ist. Am elegantesten ist vermutlich, aber das habe ich noch nicht ausgeführt, die Berechnung von A123 zu umgehen und diese Größe direkt durch die A ? Bilanz auszudrücken und in die M ? Bilanz einzusetzen. Aber die eigentliche Frage ist, wie laufen Disubstitution_erw. bzw Disubstitution_erw_1a auf größeren, schnelleren Rechnern bzw. unter neueren Versionen von Mma (ich habe Version 7)? Mit freundlichen Grüßen Hans Dolhaine
Disubstitution.nb
Description: Mathematica Notebook document
Disubstitution_erw.nb
Description: Mathematica Notebook document
Disubstitution_erw_1a.nb
Description: Mathematica Notebook document
Disubstitution_erw_2.nb
Description: Mathematica Notebook document
Frühere | Chronologischer Index | Spätere | ||
Vorherige | Thematischer Index | Nächste |
DMUG-Archiv, http://www.mathematica.ch/archiv.html