メニューに戻る
連立方程式の共役勾配法による解法
Start
変数,配列変数の宣言と初期化
\(A\)の初期化
(n=5の場合F7~J11)
\( s_k = A p_k \)
\( x_k \)の初期化
(n=5の場合K7~K11)
Rk1 \( = \left( r_k, r_k \right) \)
\( b \)の初期化
(n=5の場合L7~L11)
Rk1 \( = \left( r_k, r_k \right) \)
\( r_k = b - A x_k \)
\( \alpha_k = \delta \times \displaystyle \frac{R_{k1}}{\left( p_k, s_k \right)} \)
\( p_k = r_k \)
\( x_k = x_k + \alpha_k p_k \)
Rk2 ≧ \( \epsilon \) かつ
k < kmax の間
\( r_k = r_k - \alpha_k s_k \)
\(x_k\)の表示(n=5の場合K7~K11)
\( R_{k2} = \left( r_k, r_k \right) \)
kの表示(N7セル)
\( \beta_k = \displaystyle \frac{R_{k2}}{R_{k1}} \)
Rk2の表示(M7セル)
\( p_k = r_k + \beta_k p_k \)
End
k = k + 1

PAD展開【連立方程式の共役勾配法による解法】
Start
Long型変数で
元数 n の宣言と初期化(H3セル)
Double型配列変数で\(A\)の宣言
要素番号1~nの2次元配列
Double型配列変数で\(x_k\)の宣言
要素番号1~nの1次元配列
Double型配列変数で\(b\)の宣言
要素番号1~nの1次元配列
Double型配列変数で\(r_k\)の宣言
要素番号1~nの1次元配列
Double型配列変数で\(p_k\)の宣言
要素番号1~nの1次元配列
Double型配列変数で\(s_k\)の宣言
要素番号1~nの1次元配列
Long型変数でkの宣言と
初期化(0)
Long型変数でkmaxの宣言と
初期化(1000)
Double型変数でRk1, Rk2の宣言
Double型変数で\( \alpha_k, \beta_k \)の宣言
Double型変数で\( \delta \)の宣言と
初期化(0.9)
Double型変数で\( \epsilon \)の宣言と
初期化(0.00001)
j = 1, n, 1
i = 1, n, 1
A(j,i) = Cells(6+j,5+i)
\(A\)の初期化
(n=5の場合F7~J11)
j = 1, n, 1
xk(j) = Cells(6+j,11)
\(x_k\)の初期化
(n=5の場合K7~K11)
\( s_k = A p_k \)
j = 1, n, 1
b(j) = Cells(6+j,12)
\( b \)の初期化
(n=5の場合L7~L11)
Rk1 \( = \left( r_k, r_k \right) \)
\( r_k = b - A x_k \)
\( \alpha_k = \delta \times \displaystyle \frac{R_{k1}}{\left( p_k, s_k \right)} \)
\( p_k = r_k \)
\( x_k = x_k + \alpha_k p_k \)
Rk2 ≧ \( \epsilon \) かつ
k < kmax の間
\( r_k = r_k - \alpha_k s_k \)
j = 1, n, 1
Cells(6+j,11) = xk(j)
\(x_k\)の表示(n=5の場合K7~K11)
\( R_{k2} = \left( r_k, r_k \right) \)
kの表示(N7セル)
\( \beta_k = \displaystyle \frac{R_{k2}}{R_{k1}} \)
Rk2の表示(M7セル)
\( p_k = r_k + \beta_k p_k \)
End
k = k + 1