FOMからDIOMを導き出したときと同様にDirect版のLanczos法を考える.
Lanczos法による&ref(ls_lanzcos3_direct.eq1.gif,nolink,70%);は三重対角行列なので,DIOMにおけるk=2の場合(値がある部分の幅が3)と考えられる.
m=5のとき,&ref(ls_lanzcos3_direct.eq1.gif,nolink,70%);のLU分解は以下のようになる.
#ref(ls_lanzcos3_direct.eq2.gif,nolink,70%)

DIOMと同様に,&ref(ls_lanzcos3_direct.eq3.gif,nolink,70%);とおくと,
#ref(ls_lanzcos3_direct.eq4.gif,nolink,70%)

となる.

-&ref(ls_lanzcos3_direct.eq5.gif,nolink,70%);に関して~
DIOMの&ref(ls_lanzcos3_direct.eq5.gif,nolink,70%);の最後の列&ref(ls_lanzcos3_direct.eq6.gif,nolink,70%);に関する式,
#ref(ls_lanzcos3_direct.eq7.gif,nolink,70%)
において,k=2なので,i=m-1のときだけ考えればよい.つまり,
#ref(ls_lanzcos3_direct.eq8.gif,nolink,70%)
-&ref(ls_lanzcos3_direct.eq9.gif,nolink,70%);に関して
#ref(ls_lanzcos3_direct.eq10.gif,nolink,70%)
となるので,
#ref(ls_lanzcos3_direct.eq11.gif,nolink,70%)
とする.


最終的にDIOMと同様に&ref(ls_lanzcos3_direct.eq13.gif,nolink,70%);から&ref(ls_lanzcos3_direct.eq14.gif,nolink,70%);を求める.
#ref(ls_lanzcos3_direct.eq15.gif,nolink,70%)

この式により&ref(ls_lanzcos3_direct.eq14.gif,nolink,70%);を更新していくのがDirect版のLanczos法である.

Direct版での&ref(ls_lanzcos3_direct.eq16.gif,nolink,70%);はガウス消去法のステップから,
#ref(ls_lanzcos3_direct.eq17.gif,nolink,70%)

により求めることができる.


>
&ref(ls_lanzcos3_direct.eq18.gif,nolink,70%);を計算~
&ref(ls_lanzcos3_direct.eq19.gif,nolink,70%);を設定~
for(j = 1,2,...){~
  &ref(ls_lanzcos3_direct.eq20.gif,nolink,70%);~
  &ref(ls_lanzcos3_direct.eq21.gif,nolink,70%);~
  if(&ref(ls_lanzcos3_direct.eq22.gif,nolink,70%);) &ref(ls_lanzcos3_direct.eq23.gif,nolink,70%);~
  &ref(ls_lanzcos3_direct.eq24.gif,nolink,70%);~
  &ref(ls_lanzcos3_direct.eq25.gif,nolink,70%);~
  &ref(ls_lanzcos3_direct.eq26.gif,nolink,70%);~
  if(収束判定) 反復終了~
  &ref(ls_lanzcos3_direct.eq27.gif,nolink,70%);~
  &ref(ls_lanzcos3_direct.eq28.gif,nolink,70%);~
  &ref(ls_lanzcos3_direct.eq29.gif,nolink,70%);~
}~

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS