2022年度プログラミング演習A・B

第12回レポート課題の解説

演習1

前回扱ったべき乗法のアルゴリズムを参考にして逆べき乗法のアルゴリズムを実現するコードを書き、

$$ A= \begin{pmatrix} 2 & -1 & 0 & 0 & 0\\ -1 & 2 & -1 & 0 & 0\\ 0 & -1 & 2 & -1 & 0\\ 0 & 0 & -1 & 2 & -1\\ 0 & 0 & 0 & -1 & 2 \end{pmatrix} $$

の絶対値最小固有値および対応する固有ベクトルの近似値を求めてください。ただし、

$$ x^{(0)}= \begin{pmatrix} 1\\ 0\\ 0\\ 0\\ 0 \end{pmatrix} ,\quad EPS=10^{-2},\quad K=100 $$

とします。逆行列 $A^{-1}$ の計算には、関数invを使用すること。

演習2(オプション)

ガウスの消去法の前進消去によるLU分解と前進代入・後退代入を利用した逆べき乗法によって、演習1と同じく

$$ A= \begin{pmatrix} 2 & -1 & 0 & 0 & 0\\ -1 & 2 & -1 & 0 & 0\\ 0 & -1 & 2 & -1 & 0\\ 0 & 0 & -1 & 2 & -1\\ 0 & 0 & 0 & -1 & 2 \end{pmatrix} $$

の絶対値最小固有値および対応する固有ベクトルの近似値を求めてください。ただし、

$$ x^{(0)}= \begin{pmatrix} 1\\ 0\\ 0\\ 0\\ 0 \end{pmatrix} ,\quad EPS=10^{-2},\quad K=100 $$

とします。

次のコードでは、理解の手助けとなるよう、ひとまず連立一次方程式を演算子\で解くことによる逆べき乗法を実装している。

ガウスの消去法の前進消去による $A$ のLU分解を行っておき、y = A\xの代わりに前進代入と後退代入で連立一次方程式を解けばよいので、解答のコードは次のようになる。

演習3

逆べき乗法を利用して、

$$ A= \begin{pmatrix} 2 & -1 & 0 & 0 & 0\\ -1 & 2 & -1 & 0 & 0\\ 0 & -1 & 2 & -1 & 0\\ 0 & 0 & -1 & 2 & -1\\ 0 & 0 & 0 & -1 & 2 \end{pmatrix} $$

の $\mu=2.3$ に最も近い固有値および対応する固有ベクトルの近似値を求めてください。ただし、

$$ x^{(0)}= \begin{pmatrix} 1\\ 0\\ 0\\ 0\\ 0 \end{pmatrix} ,\quad EPS=10^{-2},\quad K=100 $$

とします。関数invを使用して逆行列の計算を行ってもよいです。