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%);~ }~