Bibliotheken zur Lösung der Lyapunov-Gleichung


11

Die folgende Matrixgleichung in Σ - für gegebene B- und C- Matrizen - erscheint in meiner Arbeit als Charakterisierung einer Kovarianzmatrix. Ich habe gelernt, dass diese Gleichung, insbesondere in der Theorie der kontinuierlichen Zeitsteuerung, als Lyapunov-Gleichung bekannt ist und dass es verschiedene bekannte Algorithmen zu ihrer Lösung gibt, die die Besonderheit dieser linearen Gleichung ausnutzen.

BΣ+ΣBT+C=0
Σ BC

Durch Googeln habe ich auch erfahren, dass es Matlab- und Fortran-Implementierungen gibt. Ich habe SLICOT und RECSY gefunden. Aufgrund von Lizenzproblemen wurde der Zugriff auf die SLICOT-Quelle jedoch gestoppt.

Der Großteil meiner Arbeit ist in R implementiert, und da ich keine R-Schnittstelle zu einem Solver finden konnte, denke ich darüber nach, selbst eine zu schreiben. Meine Frage ist dann, ob SLICOT die beste verfügbare Fortran (oder C) -Bibliothek mit einer Implementierung eines Lösers der Lyapunov-Gleichung ist. Ich interessiere mich auch für Implementierungen, die große, spärliche Matrizen verarbeiten können. B


1
Wie groß und wie spärlich? Möglicherweise müssen Sie sich von R entfernen, um die größeren Probleme in angemessener Zeit zu lösen.
Bill Barth

5
Ich sollte das wahrscheinlich nicht sagen, aber SLICOT ist hier erhältlich .
Victor Liu

CB

Antworten:


5

SLICOT ist das Werkzeug für dichte Probleme.

Für große, aber spärliche Systeme gibt es die Lyapack- Toolbox für MATLAB.

ZnZnHZnΣΣ

Am Max-Planck-Institut in Magdeburg wird derzeit intensiv an spärlichen Lyapunov-Gleichungen geforscht. Die Ankündigung der bevorstehenden Veröffentlichung des Nachfolgers von Lyapack - MESS - ist jedoch einige Jahre alt. Dennoch lohnt es sich, von Zeit zu Zeit die MESS- Webseite und die Veröffentlichungen der mitwirkenden Autoren zu überprüfen .

Haftungsausschluss: Mein Betreuer für Abschlussarbeiten leistet einen wichtigen Beitrag sowohl zu SLICOT als auch zu Lyapack und ich stehe in regelmäßigem Kontakt mit den Entwicklern von MESS.


Können Sie sich bei chat.stackexchange.com/rooms/9031/lyapunov anmelden , haben Sie einige verwandte Fragen.
Milind R

3

Sie könnten zu MATLAB verbinden diese .

Ihre Matrizen sind nicht zu groß: Die Handcodierung der Algorithmen sollte nicht zu viel Zeitverlust verursachen, möglicherweise läuft sie 1 Stunde lang. Es kann abhängig von verschiedenen Faktoren zu lang sein oder auch nicht.

Es ist jedoch möglicherweise gar nicht so einfach, es selbst zu codieren. Ich glaube nicht, dass ich das kann, und ich habe mich in den letzten Monaten damit befasst. Aber der SLICOT-Algorithmus selbst ist hier .


3

Der SLICOT-Algorithmus ist nicht so kompliziert, sondern eine Reduktion auf die Schur-Form + eine gewisse Rücksubstitution. Sie können das Bartels-Stewart-Papier http://dl.acm.org/citation.cfm?id=361582 lesen, das einigermaßen lesbar ist und erklärt, wie es funktioniert. Das Papier handelt von dem unsymmetrischen Fall, aber es sollte nicht schwierig sein, ihn an den symmetrischen anzupassen - Sie benötigen nur eine Schur-Form anstelle von zwei.

Sie können es wahrscheinlich auch selbst in R codieren, wenn es bereits eine Routine für das Schur-Formular enthält (ich würde mich selbst überprüfen, aber es ist immer ein Chaos, aussagekräftige Ergebnisse über R von Google zu erhalten, da aufgrund der unglücklichen Namenswahl).

Dies könnte den dichten Fall lösen. Der große und spärliche ist technischer.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.