行列指数関数とベクトルとの積を高速に計算する方法について。
以下の行列指数関数とベクトルとの積を計算する。
多くの応用で、複数の
そのため、あえて
そのため、
行列指数関数は以下の Taylor 展開で定義される。
これは以下の通常指数関数の Taylor 展開に由来する。
両者は引数の型をのぞいて全く同じ構造である。
結果は Taylor 展開の
ただし、
二つの手法があり、それぞれ長所と短所がある。
少数の
それぞれの手法と処理部分の時間計算量は以下の通り。
本処理 | 前処理 | |
---|---|---|
手法 A |
|
|
手法 B |
|
|
ただし、行列
計算には Taylor 展開が含まれるため、有限級数近似を行う。
ここで、計算順序を少し工夫するだけで、計算量を改善できる。
行列指数関数の Taylor 展開の計算後に、ベクトルとの積を行う。
計算量は密行列でも疎行列でも
ちなみに、行列指数関数の計算には Pade 近似など他の方法もある (詳細は割愛)。これらはより少ない級数で近似できるなど効率的ではあるが、影響は高々定数倍である。
行列指数関数の Taylor 展開にベクトルとの積を混ぜる。
計算量は疎行列で
部分空間を定義し、そこに対象を圧縮してから計算する。
上述の近似式は
これらのベクトルで張られる部分空間は Krylov 部分空間と呼ばれる。
この空間の次元数は
そのため、計算前に座標変換して計算後に戻せば、計算が楽になる。
座標変換を挟んだ近似計算は次式で表せる。
ここで、新しく以下の概念を導入している。
ただし、
なお、
まず、前処理は Arnordi 法の計算量になる。
次に、本処理は以下の計算なので
なぜなら、
Arnordi 法は Krylov 部分空間の正規直交基底を求めるアルゴリズムである。
以下の疑似コードの手順で計算する。
v 1
:=
𝐛 /
|
𝐛
|
for
i := 1
to
m - 1 {
𝒘
:=
𝐀 𝐯 i
for
j := 1
to
i {
h j , i
:=
⟨
𝒘
,
𝐯 j
⟩
𝒘
:=
𝒘
-
h j , i
𝐯 j
}
𝐯
i + 1
:=
𝒘
/
|
𝒘
|
h
i + 1 , j
:=
|
𝒘
|
}
正規直交化の基本的な考え方は、Gram-Schmidt 法と同じである。なお、やや非効率だが、目的の計算は Gram-Schmidt 法でもできる。最初に
後述する『部分空間の別表現』と『基底変換行列』から、以下の性質を利用する。
これらにより、対象の部分空間を
なお、
以下の各行はどれも同じ部分空間の別表現である。
一行目は
二行目は
三行目を補題
数学的帰納法の導入部:
数学的帰納法の連鎖部:
まず、
また、
これをなるべく
以上より、次が成り立ち、
なぜなら、両辺の左側から