Ich habe ein System gewöhnlicher Differentialgleichungen - 7 Gleichungen und ~ 30 Parameter, die ihr Verhalten als Teil eines mathematischen Modells der Krankheitsübertragung bestimmen. Ich würde gerne die stationären Zustände für diese Gleichungen Ändern finden , dx/dt = rest of the equation
um 0 = equation
für jede der Gleichungen macht es ein einfaches Algebra Problem. Dies könnte von Hand gemacht werden, aber ich bin lächerlich schlecht in dieser Art von Berechnung.
Ich habe versucht, Mathematica zu verwenden, das kleinere Versionen dieses Problems handhaben kann ( siehe hier ), aber Mathematica kommt bei diesem Problem zum Stillstand. Gibt es einen effizienteren / effektiveren Weg, dies zu erreichen? Ein effizienteres symbolisches Mathematiksystem? Andere Vorschläge?
Einige Updates (21. März):
- Das Ziel ist in der Tat, sie symbolisch zu lösen - die numerischen Antworten sind nett, aber im Moment ist das Endziel die symbolische Version.
- Es gibt mindestens ein Gleichgewicht. Ich habe mich nicht wirklich hingesetzt und dies bewiesen , aber es sollte von Natur aus mindestens eine triviale haben, bei der zu Beginn keine infiziert ist. Es kann nicht sein , etwas außer das, aber das würde mich so zufrieden wie alles andere machen.
- Nachfolgend finden Sie die tatsächlichen Gleichungen, über die gesprochen wird.
Zusammenfassend suche ich nach symbolischen Ausdrücken für die Lösungen eines Systems von 7 quadratischen Gleichungen in 7 Variablen.
Antworten:
Es sieht so aus, als ob die Gleichungen, mit denen Sie sich befassen, nach dem Löschen der Nenner alle polynomisch sind. Das ist eine gute Sache (transzendentale Funktionen sind oft etwas schwieriger algebraisch zu handhaben). Es ist jedoch keine Garantie dafür, dass Ihre Gleichungen eine geschlossene Lösung haben. Dies ist ein wesentlicher Punkt, den viele Menschen nicht wirklich "verstehen", auch wenn sie ihn theoretisch kennen. Daher gibt es einige einfache Systeme von Polynomgleichungen, für die es keine Möglichkeit gibt, die Lösungen in Bezug auf zu geben ( te) Wurzeln usw. Ein berühmtes Beispiel (in einer Variablen) ist x 5 - x + 1 = 0 . Siehe auch diese Wikipedia-Seite .n x5- x + 1 = 0
Having said that, natürlich gibt es auch Gleichungssysteme sind , die können gelöst werden, und es lohnt sich zu überprüfen , ob Ihr System eine von ihnen. Und selbst wenn Ihr System nicht gelöst werden kann, ist es möglicherweise möglich, eine Form für Ihr Gleichungssystem zu finden, die in gewissem Sinne einfacher ist. Finden Sie zum Beispiel eine Gleichung, die nur die erste Variable enthält (auch wenn sie nicht algebraisch gelöst werden kann), dann eine zweite Gleichung, die nur die erste und die zweite Variable enthält usw. Es gibt einige konkurrierende Theorien, wie solche "Normalformen" gefunden werden können. von Polynomsystemen; Am bekanntesten ist die Groebner-Basistheorie, und eine konkurrierende ist die Theorie der regulären Ketten.
Im Computeralgebrasystem Maple (vollständige Offenlegung: Ich arbeite für sie) sind beide implementiert. Der
solve
Befehl der Regel ruft die Gröbner Basis Methode, glaube ich, und dass mahlt schnell zum Erliegen auf meinem Laptop. Ich habe versucht, die reguläre Kettenberechnung auszuführen, und es dauert länger, als ich Geduld habe, aber es scheint nicht so schlimm zu sein, was das Gedächtnis betrifft. Falls Sie interessiert sind, dann ist die Hilfeseite für den Befehl habe ich hier , und hier ist der Code , den ich verwendet:quelle
Der professionelle Weg besteht darin, Ihre Gleichungen in einer Modellierungssprache wie AMPL oder GAMS zu schreiben und mit einem Löser wie IPOPT zu lösen.
AMPL ist ein kommerzielles System, aber eine kostenlose Studentenversion von AMPL kann Probleme mit bis zu 300 Gleichungen und Variablen verursachen.
Wenn Sie nur ein oder mehrere Probleme lösen möchten, können Sie es frei online lösen lassen, indem Sie den NEOS-Server zur Optimierung verwenden. Senden Sie einfach die AMPL-Beschreibung und warten Sie, bis die Antwort an Sie zurückgesandt wird.
Wenn Sie solche Systeme im Rahmen einer größeren Studie wiederholt lösen müssen (z. B. durch Variieren der Parameter), sollten Sie IPOPT (Software unter einer sehr liberalen Lizenz) herunterladen.
Bearbeiten: Beachten Sie, dass verständliche symbolische Lösungen normalerweise auf recht kleine Probleme beschränkt sind - normalerweise wächst die Größe einer Groebner-Basis explosionsartig mit der Anzahl der Variablen oder dem Grad der Polynome und der Zeit für die Verarbeitung noch mehr. Eine Wartezeit von einer Stunde oder mehr mit Mathematica ist daher ein Zeichen (wenn auch kein Beweis) dafür, dass Ihre symbolische Lösung völlig unverständlich wäre. Darüber hinaus ist die Auswertung eines so langen Ausdrucks wahrscheinlich numerisch instabil, sodass Sie eine hohe Präzision bei der Auswertung benötigen, um aussagekräftige Ergebnisse zu erzielen.
quelle
Es ist unmöglich, die gesamte Lösung aufzuschreiben. Aber hier sind einige Gleichungen, um das System ein wenig zu reduzieren:
Viel Glück!
quelle
Dies hängt von der Struktur Ihrer Gleichungen ab.
Wenn Sie nach allen stationären Zuständen Ihres Gleichungssystems suchen und diese, wie ErikP sagt, in Polynome umordnen können, können Sie Methoden aus der realen algebraischen Geometrie verwenden, um alle numerischen Lösungen mit hoher Genauigkeit zu berechnen. Bertini ist ein solches Paket, das ich kenne, aber es gibt noch andere. Ich war vor einigen Jahren auf einer Konferenz in Notre Dame, wo Bertini verwendet wurde, um stationäre Zustände von ODEs aus der chemischen Kinetik zu finden. Bertini wurde in Notre Dame entwickelt.
Eine andere Möglichkeit besteht darin, die in "Nicht glatter Ausschlusstest zum Auffinden aller Lösungen nichtlinearer Gleichungen" von MD Stuber, V. Kumar, und PI Barton, BIT Numerical Mathematics 50 (4), 885-917, DOI: DOI: 10.1007, vorgeschlagenen Methoden zu verwenden / s10543-010-0280-6 ; Diese Methoden erfordern nicht, dass das Gleichungssystem Polynome sind. Paul Barton ist mein Berater, und Matt Stuber ist ein Kollege von mir; Wenn Sie möchten, kann ich ihn nach der Software fragen und sie Ihnen senden. Das Papier verwendet Methoden aus der globalen Optimierung und Intervallarithmetik (es zitiert ArnoldNeumaiers Buch) sowie Newtons Methode. Der Vorteil dieser Methode ist, dass alle Lösungen lokalisiert werden sollten. Der Nachteil ist, dass es kompliziert ist.
quelle
Ich würde vorschlagen, eine Homotopie-Methode zu betrachten. Obwohl es nicht symbolisch ist, werden alle Lösungen Ihres Problems erstellt. Für eine einfache Bibliothek zum Auschecken:
http://homepages.math.uic.edu/~jan/PHCpack/phcpack.html
quelle