Subsections

例題

\begin{eqnarray*}
2x_0+3x_1-x_2 &=& 5\\
4x_0+4x_1-3x_2&=& 3\\
2x_0-3x_1+x_2 &=& -1
\end{eqnarray*}


\begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
2& 3& -1& 5\\
4& 4& -3& 3\\
2&-3& 1& -1
\end{array} \right]
\end{eqnarray*}


  1. 前進消去法

    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 3/2& -1/2& 5/2\\
4& 4& -3& 3\\
2&-3& 1& -1
\end{array} \right]
\end{eqnarray*}


    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 3/2& -1/2& 5/2\\
0& 1& 1/2& 7/2\\
0& -6& 2& -6
\end{array} \right]
\end{eqnarray*}


    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 3/2& -1/2& 5/2\\
0& 1& 1/2& 7/2\\
0& 0& 1& 3
\end{array} \right]
\end{eqnarray*}


    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 3/2& -1/2& 5/2\\
0& -2& -1& -7\\
0& -6& 2& -6
\end{array} \right]
\end{eqnarray*}


    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 3/2& -1/2& 5/2\\
0& 1& 1/2& 7/2\\
0& 0& 5& 15
\end{array} \right]
\end{eqnarray*}


  2. 後退代入法

    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 3/2& 0& 8/2\\
0& 1& 0& 2\\
0& 0& 1& 3
\end{array} \right]
\end{eqnarray*}


    \begin{eqnarray*}
\left[
\begin{array}{ccc@{\hspace{2ex}:\ }c}
1& 0& 0& 1\\
0& 1& 0& 2\\
0& 0& 1& 3
\end{array} \right]
\end{eqnarray*}


計算例

$-1$から$+1$の範囲で乱数を発生させ,$A=[a_{i,j}]$, $\vec{x}=[x_i]$ に代入して,

\begin{eqnarray*}
\vec{b}=A\vec{x}
\end{eqnarray*}


により,$\vec{b}$を求める. 計算には倍精度を使用し,単精度に丸めて$\vec{b}$に代入する.

次に,連立方程式

\begin{eqnarray*}
A\vec{y}=\vec{b}
\end{eqnarray*}


をガウスの消去法により解く(単精度).

連立方程式を解く過程で誤差が発生するので, $\vec{y}$$\vec{x}$と完全には一致しない.

\begin{eqnarray*}
\mbox{error}=\left\vert x_i - y_i\right\vert _{\mbox{max}}
\end{eqnarray*}


を評価基準としてガウスの消去法で発生する誤差を調べる.

以下,1000回の試行により得られた結果を示す. 縦軸は対数目盛( $\log_{10}(\mbox{error})$).

以上

T.Kinoshita
平成20年2月4日