Arnoldi法
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
アーノルディ法(Arnoldi's Method)は非対称行列のKrylov部分...
ちなみに対称行列に限定したLanczos法もある.
Arnoldi法のアルゴリズムを以下に示す.
>
任意のベクトル&ref(ls_arnoldi.eq1.gif,nolink,70%);を設定(...
for(&ref(ls_arnoldi.eq3.gif,nolink,70%);){~
&ref(ls_arnoldi.eq4.gif,nolink,70%);~
&ref(ls_arnoldi.eq5.gif,nolink,70%);~
&ref(ls_arnoldi.eq6.gif,nolink,70%);~
もし,&ref(ls_arnoldi.eq7.gif,nolink,70%);なら反復終了~
&ref(ls_arnoldi.eq8.gif,nolink,70%);~
}~
ここでAは対象となる非対称行列である.
wの計算手順をまとめて書くと,
#ref(ls_arnoldi.eq9.gif,nolink,70%)
となり,&ref(ls_arnoldi.eq10.gif,nolink,70%);なので,
&ref(ls_arnoldi.eq11.gif,nolink,70%);は[[グラム・シュミッ...
直交するベクトルを求めていることになる.
そのため,
Arnoldi法でj=mまで計算された場合,
&ref(ls_arnoldi.eq14.gif,nolink,70%);はKrylov部分空間の正...
#ref(ls_arnoldi.eq15.gif,nolink,70%)
を構成する.
さて,アルゴリズムより,
#ref(ls_arnoldi.eq16.gif,nolink,70%)
であり,これを変形すると,
#ref(ls_arnoldi.eq17.gif,nolink,70%)
ここで&ref(ls_arnoldi.eq18.gif,nolink,70%);である.
この式がどのような形になっているのかを確かめるために,
m=3の場合で,&ref(ls_arnoldi.eq19.gif,nolink,70%);を列と...
#ref(ls_arnoldi.eq20.gif,nolink,70%)
上記の式はこのように書ける.これをm次元に一般化する.
&ref(ls_arnoldi.eq21.gif,nolink,70%);の行列&ref(ls_arnold...
#ref(ls_arnoldi.eq23.gif,nolink,70%)
&ref(ls_arnoldi.eq24.gif,nolink,70%);は基本ベクトルである.
&ref(ls_arnoldi.eq25.gif,nolink,70%);はヘッセンベルグ標準...
行列AをKrylov部分空間に射影した行列となっている.
&ref(ls_arnoldi.eq26.gif,nolink,70%);は直交行列なので,こ...
#ref(ls_arnoldi.eq28.gif,nolink,70%)
となる.
ちなみに,Aと&ref(ls_arnoldi.eq25.gif,nolink,70%);の固有...
この方法は固有値計算にも用いられる.
**修正グラム・シュミット法を用いたArnoldi法 [#a76b0fa1]
修正グラムシュミット法([[グラム・シュミットの直交化法]]参...
>
任意のベクトル&ref(ls_arnoldi.eq1.gif,nolink,70%);を設定(...
for(j = 1,2,...,m){~
&ref(ls_arnoldi.eq29.gif,nolink,70%);~
for(i = 1,2,...,j){~
&ref(ls_arnoldi.eq30.gif,nolink,70%);~
&ref(ls_arnoldi.eq31.gif,nolink,70%);~
}~
&ref(ls_arnoldi.eq32.gif,nolink,70%);~
if(&ref(ls_arnoldi.eq33.gif,nolink,70%);) 反復終了~
&ref(ls_arnoldi.eq8.gif,nolink,70%);~
}
丸め誤差がなければ通常のArnoldi法と結果は同じとなる.
終了行:
アーノルディ法(Arnoldi's Method)は非対称行列のKrylov部分...
ちなみに対称行列に限定したLanczos法もある.
Arnoldi法のアルゴリズムを以下に示す.
>
任意のベクトル&ref(ls_arnoldi.eq1.gif,nolink,70%);を設定(...
for(&ref(ls_arnoldi.eq3.gif,nolink,70%);){~
&ref(ls_arnoldi.eq4.gif,nolink,70%);~
&ref(ls_arnoldi.eq5.gif,nolink,70%);~
&ref(ls_arnoldi.eq6.gif,nolink,70%);~
もし,&ref(ls_arnoldi.eq7.gif,nolink,70%);なら反復終了~
&ref(ls_arnoldi.eq8.gif,nolink,70%);~
}~
ここでAは対象となる非対称行列である.
wの計算手順をまとめて書くと,
#ref(ls_arnoldi.eq9.gif,nolink,70%)
となり,&ref(ls_arnoldi.eq10.gif,nolink,70%);なので,
&ref(ls_arnoldi.eq11.gif,nolink,70%);は[[グラム・シュミッ...
直交するベクトルを求めていることになる.
そのため,
Arnoldi法でj=mまで計算された場合,
&ref(ls_arnoldi.eq14.gif,nolink,70%);はKrylov部分空間の正...
#ref(ls_arnoldi.eq15.gif,nolink,70%)
を構成する.
さて,アルゴリズムより,
#ref(ls_arnoldi.eq16.gif,nolink,70%)
であり,これを変形すると,
#ref(ls_arnoldi.eq17.gif,nolink,70%)
ここで&ref(ls_arnoldi.eq18.gif,nolink,70%);である.
この式がどのような形になっているのかを確かめるために,
m=3の場合で,&ref(ls_arnoldi.eq19.gif,nolink,70%);を列と...
#ref(ls_arnoldi.eq20.gif,nolink,70%)
上記の式はこのように書ける.これをm次元に一般化する.
&ref(ls_arnoldi.eq21.gif,nolink,70%);の行列&ref(ls_arnold...
#ref(ls_arnoldi.eq23.gif,nolink,70%)
&ref(ls_arnoldi.eq24.gif,nolink,70%);は基本ベクトルである.
&ref(ls_arnoldi.eq25.gif,nolink,70%);はヘッセンベルグ標準...
行列AをKrylov部分空間に射影した行列となっている.
&ref(ls_arnoldi.eq26.gif,nolink,70%);は直交行列なので,こ...
#ref(ls_arnoldi.eq28.gif,nolink,70%)
となる.
ちなみに,Aと&ref(ls_arnoldi.eq25.gif,nolink,70%);の固有...
この方法は固有値計算にも用いられる.
**修正グラム・シュミット法を用いたArnoldi法 [#a76b0fa1]
修正グラムシュミット法([[グラム・シュミットの直交化法]]参...
>
任意のベクトル&ref(ls_arnoldi.eq1.gif,nolink,70%);を設定(...
for(j = 1,2,...,m){~
&ref(ls_arnoldi.eq29.gif,nolink,70%);~
for(i = 1,2,...,j){~
&ref(ls_arnoldi.eq30.gif,nolink,70%);~
&ref(ls_arnoldi.eq31.gif,nolink,70%);~
}~
&ref(ls_arnoldi.eq32.gif,nolink,70%);~
if(&ref(ls_arnoldi.eq33.gif,nolink,70%);) 反復終了~
&ref(ls_arnoldi.eq8.gif,nolink,70%);~
}
丸め誤差がなければ通常のArnoldi法と結果は同じとなる.
ページ名: