* 共役勾配法 (conjugate gradient method) [#m4f618ad]

//ここには %項目の説明を書いてください.よろしければ署名しておいてください.

最急勾配法と同様の,関数の極小(大)値を求める方法.
最急勾配法では,最適な点に向かって直線的に向かわず,ジグザグに向かうので収束が遅い.そこで,今まで進んできた方向も考慮して,最適な点に向かって進むように工夫している.

次の2次形式の関数を考える
\[f(\mathbf{x})=\frac{1}{2}\mathbf{x}^\top A\mathbf{x}-\mathbf{b}^\top\mathbf{x}\]
適当な初期値 \(\mathbf{x}_0\) をきめ,\(\mathbf{d}_0=-\nabla f(\mathbf{x}_0)\) とし,\(\nabla f(\mathbf{x}_n)=0\) となるまで次のステップを反復して極小値を求める.
- 探索方向の更新
\[\mathbf{d}_n=-\nabla f(\mathbf{x}_n)+\frac{(\nabla f(\mathbf{x}_n))^\top\nabla f(\mathbf{x}_n)}{(\nabla f(\mathbf{x}_{n-1}))^\top\nabla f(\mathbf{x}_{n-1})}\mathbf{d}_{n-1}\]
- \(t_n\) を次式で求め \(\mathbf{x}_{n+1}=\mathbf{x}_n+t_n\mathbf{d}_n\)に更新.
\(n\) を一つ増やす.
\[t_n=-\frac{\mathbf{d}_n^\top\nabla f(\mathbf{x}_n)}{\mathbf{d}_n^\top A\mathbf{d}_n}\]

> -- しましま

目的関数が2次関数のときは n ステップで終了する(n は次元数).--あかほ

**関連項目 [#d43435d8]

//英語や同義語のあとに,#brで区切って関連する項目をリストしてください.

-[[conjugate gradient method]]
#br
-[[最急勾配法]]
-[[最適化]]
#br
-[[検索:共役勾配法]]

**リンク集 [#b8c37e4e]

//関連するWWW資源があればリンクしてください.

-[[Conjugate Gradient Method>http://www.cse.uiuc.edu/iem/optimization/ConjugateGradient/]] @ Scientific Computing
#br
-[[Wikipedia:Conjugate_gradient_method]]
-[[PlanetMath:ConjugateGradientAlgorithm]]
-[[NumericalRecipes:c10-6]] Conjugate Gradient Methods in Multidimensions

**関連文献 [#e75f4996]

//この%項目%に関連する書籍や論文を紹介してください.

-[[Book/最適化の手法]] 4.5章
-[[Book/Neural Networks for Pattern Recognition]] 7.7章

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS