edit
Arnoldi法では非対称行列を扱ったが,Aが対称行列だった場合, アルゴリズムを簡素化できる. これがランチョス(Lanczos)法である.
まず,Arnoldi法でAが実対称行列だったとき, も対称行列になる. さらにはヘッセンベルグ行列であり,,ただし i > j+1 である. よって,が対称行列ならば,i < j-1 でもとなる. つまり,以下のような三重対角行列(対角成分とその左右のみに値がある行列)となる.
ここで,とした.
の代わりにを使って, Arnoldi法(修正グラム・シュミットを用いたもの)を書き換える.
今,i < j-1でが0となることから,i=j-1,jについてのみ考えればよい. i=j-1では,なので,と置き換えることができる. ただし,と置いておく. 次に,i=jでは,なので,と置き換えることができる. 最後にと置き換え,は次の反復においてとして用いられる. これらのことを適用するとアルゴリズムは以下のようになる.
任意のベクトルを設定(ただし) を設定 for(j = 1,2,...,m){ if() 反復終了 }
これがLanczos法である.