最適勾配法

今回は最適勾配法(Optimal gradient method)のお話です
これは前回の最急降下法をちょっと賢くしたアルゴリズムとなります


前回と同じ2変数の簡単な最小化問題を考えます
optimul gradient.wxm

x, y : 設計変数
obj : 評価関数(%o2)
J : 勾配ベクトル(%o3)



n : step数
設計変数の初期値も前回と同じ(0, 0)とします


※次のブロックは最適解に収束するまでひたすら繰り返します・゚・(ノД`)

繰り返すこと18回(%o110)
勾配ベクトルJとパラメータαを用いて更新した設計変数を%o111式に示します
objを停留させるαをfind_root関数を用いて一次探索します(%o112)
この結果から定まった設計変数を%o113式に示します
評価関数の値を%o115式に示します


http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryooji_f/20111203/20111203072042.png
設計変数の収束の様子を横軸にx, 縦軸にyとして%t116にプロットします
前回の最急降下法に比べて収束性がかなり向上しているのが解ります