レッツ本当、正方形、密行列も。とは対称です。しましょう
ハミルトニアン行列である。の行列指数を計算したい。行列とベクトルの積だけでなく、完全な行列指数が必要です。ハミルトニアン行列の指数を計算するために利用できる特別なアルゴリズムまたはライブラリはありますか?
レッツ本当、正方形、密行列も。とは対称です。しましょう
ハミルトニアン行列である。の行列指数を計算したい。行列とベクトルの積だけでなく、完全な行列指数が必要です。ハミルトニアン行列の指数を計算するために利用できる特別なアルゴリズムまたはライブラリはありますか?
回答:
非常に迅速な答え...
ハミルトニアン行列の指数はシンプレクティックであり、おそらく保持したいプロパティです。それ以外の場合は、単に構造を保持しない方法を使用します。確かに、構造化された方法を使用しても、速度を維持するための実際の利点はありません。
あなたの問題を解決するための可能な方法は次のとおりです。まず、ようなシンプレクティック行列を見つけますはハミルトニアンでブロック上三角行列で、は左半平面に固有値を持っています。たとえば、この行列を取得するには、。ここで、はに関連付けられたリカッチ方程式を解くか、または(直交であるためより安定して)シューア分解を並べ替えますのとLaubトリックの適用(つまり、単一Schur因子を)。ハミルトニアンが虚数軸に固有値を持つ場合、問題が発生する可能性がありますが、それは長い話であり、今のところ問題では発生しないと思います。
あなたが持ってたら、あなたが持っている、あなたが計算できます 特定のリヤプノフ方程式を解き、私のようなものと考えている (符号が間違っている可能性があります。およびブロックを展開して正しい方程式を取得します。参照については、「Schur-Parlettメソッド」を参照してくださいこのトリック)。
次に、3つの要素は正確にシンプレクティックです。それらを別々に使用してください:製品を計算しないでください。そうしないと、このプロパティが数値的に失われます。
階層行列(行列)とそれらをサポートするライブラリーの対応する機能を使用するオプションがあるかもしれません。
事実上、すべての行列、、およびが -matrix形式で効率よく表現されている場合、ブロックハミルトニアン行列は事実上、ブロック -matrixになります。階層形式での、、およびの表現に関する質問は、その起源に帰着します。それらの中に低ランクの構造が見つかった場合(行/列のインデックスの順列が適用される可能性がある場合)、このアプローチは実行可能です。もっともらしい例は、、、 それらの密な構造と圧縮の可能性を説明する積分方程式から得られます(カーネルによって異なります)。
この方法が機能するための正式な要件は、が -matrix形式で表現できる場合です。ただし、、、行列表現を作成することから直接始め、最高の状態を期待します。
行列の行列のべき乗への適用は、以下で詳しく説明されています。
行列をサポートするいくつかのライブラリがあります。私は古い Libが何らかの形式の行列のべき乗をサポートし、それを構築するために必要な部分を持っていたことを知っています。
このアプローチの欠点:
良い点: