next up previous
Next: 解説 Up: 応用数理実験 連立 次方程式に対する CG Previous: 2 講義の内容の復習

3 本日すべきこと

「古典的」CG 法で連立 $1$ 次方程式を解くプログラムを使って 簡単な実験をしてもらう。

(1)
サンプル・プログラム cg.C を入手して、コンパイル&実行してみる (プログラムの内容について、ざっと解説する)。 実行を開始すると、c1,c2,N= と尋ねてくるが、c1, c2 は 行列 $A$

\begin{displaymath}
A=
\left(
\begin{array}{cc}
c_1 A' & O \\
O & c_2 A'
\end{array} \right)
\end{displaymath}

と表したときの $c_1$, $c_2$ を指す。 例えば、1 1 100 と入力すると、以下の (2-i) を解くことができ、 1 10 100 と入力すると、(2-ii) を $c=10$ で解くことができる。
(2)
対角線上の成分の値が $4$, その両隣りの成分が $1$ である $50$ 次の三 重対角行列を $A'$ とする:

\begin{displaymath}
A'=
\left(
\begin{array}{ccccc}
4& 1& & & \bigzerou \\
...
...\\
& & 1& 4& 1 \\
\bigzerol& & & 1& 4
\end{array}\right).
\end{displaymath}

さらに適当な解ベクトル $x^\ast \in\R^{100}$ を選んで、以下の実験をし て、その結果を分析する。
((2-i))

\begin{displaymath}
A^{(1)}\equiv
\left(
\begin{array}{cc}
A' & O \\
O & A'
\end{array} \right), \qquad
b^{(1)}\equiv A^{(1)}x^\ast
\end{displaymath}

として方程式 $A^{(1)}x=b^{(1)}$ を解け。
((2-ii))
(2-i) の方程式のうち、最初の 50 行を $c$ 倍($c=10$, あるいは $100$) した問題、すなわち

\begin{displaymath}
A^{(2)}\equiv
\left(
\begin{array}{cc}
cA' & O \\
O & A'
\end{array} \right), \qquad
b^{(2)}\equiv A^{(2)}x^\ast
\end{displaymath}

として作った方程式 $A^{(2)}x=b^{(2)}$ を解け。
((2-iii))
(2-i) の方程式のうち、すべての行を $c$ 倍($c=10,100$) した問題、すなわ ち

\begin{displaymath}
A^{(3)}\equiv
\left(
\begin{array}{cc}
cA' & O \\
O & cA'
\end{array} \right), \qquad
b^{(3)}\equiv A^{(3)}x^\ast
\end{displaymath}

として作った方程式 $A^{(3)}x=b^{(3)}$ を解け。




next up previous
Next: 解説 Up: 応用数理実験 連立 次方程式に対する CG Previous: 2 講義の内容の復習
Masashi Katsurada
平成16年11月28日