リアプノフの方程式を解くためのライブラリ


11

以下の行列方程式 におけるΣ -所与のためのBおよびC行列-共分散行列の特性として仕事に現れます。この方程式は、特に連続時間制御理論では、リアプノフの方程式として知られていること、およびこの線形方程式の特殊な性質を活用する、それを解くためのさまざまな既知のアルゴリズムがあることを学びました。

BΣ+ΣBT+C=0
Σ BC

グーグルから、MatlabとFortranの実装が存在することも学びました。SLICOTとRECSYを見つけました。ただし、ライセンスの問題により、SLICOTソースへのアクセスは停止されました。

私の仕事のほとんどはRで実装されており、ソルバーへのRインターフェイスを見つけることができなかったため、自分で作成することを検討しています。私の質問は、SLICOTが、リアプノフの方程式のソルバーを実装したFortran(またはC)の最高のライブラリであるかどうかです。また、大きなスパース行列を処理できる実装にも興味があります。 B


1
どれくらいの大きさで、どのくらいまばらですか?妥当な時間内に大きな問題に対処するために、Rから離れなければならない場合があります。
ビル・バルト

5
私はおそらくこれを言うべきではありませんが、SLICOTはここから入手できます
ビクター

@ BillBarth、1000程度の次元、対角線、B非構造化ですが、潜在的に非常にまばらで、1%の非ゼロエントリなど。CB
-NRH

回答:


5

SLICOTは、密な問題に使用するツールです。

大規模ではあるがスパースシステムの場合、MATLAB用のlyapackツールボックスがあります。

ZnZnHZnΣΣ

ドイツのマクデブルクにあるマックスプランク研究所では、スパースリアプノフ方程式に関する鮮やかな進行中の研究があります。しかし、lyapackの後継者であるMESSの次期リリースの発表は、かなり前のことです。それでも、MESSのWebページと寄稿者の出版物を時々確認する価値があります。

免責事項:私の論文スーパーバイザーは、SLICOTとlyapackの両方の主要な貢献者であり、MESSの開発者と定期的に連絡を取り合っています。


chat.stackexchange.com/rooms/9031/lyapunovに参加して、関連する質問をしてください。
Milind R

3

これを使用してMATLABに接続できます。

マトリックスは大きすぎません:アルゴリズムを手作業でコーディングしても、時間の損失はあまりありません。1時間実行される可能性があります。さまざまな要因に応じて、長すぎる場合とそうでない場合があります。

ただし、自分でコーディングするのは簡単ではないかもしれません。私はできるとは思わない、私は過去数ヶ月間これに対処してきました。しかし、SLICOTアルゴリズム自体はここにあります


3

SLICOTのアルゴリズムはそれほど複雑ではなく、Schur形式+いくらかの後方置換への還元です。Bartels-Stewartのペーパーhttp://dl.acm.org/citation.cfm?id=361582を確認してください。これは、合理的に読みやすく、その仕組みについて説明しています。この論文は非対称のケースについてですが、対称のケースに適応するのは難しくありません--- 2つではなく1つのSchur形式が必要です。

Schurフォーム用のルーチンが既にある場合は、おそらくRで自分でコーディングすることもできます(自分で確認しますが、不幸な名前の選択のために、Rについて意味のある結果をGoogleから得るのは常に混乱です)。

これにより、密集したケースを解決できます。大きくてまばらなものは、より技術的です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.