• ベストアンサー

最急降下法での求め方教えてください。

前回の質問の問題が間違っていましたので書き直します。 x=(x_1、x_2)^Tとして 最小化:f(x)=x_1^2+2x_2^2+4x_1+4x_2 を 初期点x_0=(0,0)^Tで最急降下法を使って解くとき、 (1)帰納法でx_k+1=[(2/3)^k-2  (-1/3)^k-1]であることを示す方法を教えてください。 (2)f(x)の最小解の求め方を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • FT56F001
  • ベストアンサー率59% (355/599)
回答No.1

(2)が簡単なので,先に答えます。 fをx1で偏微分して0とおく。 2*x1+4=0 fをx2で偏微分して0とおく。 4*x2+4=0 これより,x1=-2,x2=-1が最小点で,最小値はf=-6 (1)は,計算が面倒そうです ..(涙)。

その他の回答 (1)

  • FT56F001
  • ベストアンサー率59% (355/599)
回答No.2

(1) 計算の便宜上,最小点が(0,0)になるよう平行移動します。 すなわち, x_1= u-2, x_2=v-1とおきかえて(u,v)の式にします。 初期値u0=-2, v0=-1から初めて, 目的関数 f=u^2 + 2*v^2 -6 を最小化する問題に帰着します。 示すべき解は, u_k= (2/3)^k v_k= (-1/3)^k ところが,k=0とおくと,答えが合いませんね。 示すべき式を u_k= 2/(3^k) v_k= (-1/3)^k と修正します。 元の(x_1,x_2)で, x_1[k]= (2/(3^k))-2 x_2[k]= ((-1/3)^k)-1 (k=0,1,2,3,・・・) とした式です。 [最急降下法] 点(u,v)にて,勾配ベクトルを決めます。 fをuで偏微分して,Fu=2*u fをvで偏微分して,Fv=4*v 勾配ベクトル(Fu,Fv)の-a倍,進むことにします。 u_new= u - a*Fu = u*(1-2*a) v_new= v - a*Fv = v*(1-4*a) 一次元探索をしてaを決めます。 すなわち,aを変えてfを最小化します。 f= u^2*(1-2*a)^2 + 2*v^2*(1-4*a)^2 -6 aで偏微分して0とおくと, a= (u^2+4*v^2)/(2*u^2 + 16*v^2) となります。 これより, u_new= u*(1-2*a) = 4*u*v^2/(u^2+8*v^2) v_new= v*(1-4*a) = -v*u^2/(u^2+8*v^2) これで,点(u,v)から 次の点(u_new,v_new)を作る 漸化式が得られました。 あとは,数学的帰納法のやり方にのっとって, u_k= 2*((1/3)^k) v_k= (-1/3)^k が (1) k=0のとき初期点(u0,v0)=(2,1)にいる。 (2) kのとき成り立つとして,k+1の時も成り立つ。 を示せばよいわけです。 u= 2*((1/3)^k) v= (-1/3)^k とおくと,u^2+8*v^2=4/(3^(2*k-1))となり, u_new= 4*u*v^2/(u^2+8*v^2) =4*2*((1/3)^k)*(-1/3)^(2*k)/(4/3^(2*k-1)) =2/(3^(k+1)) v_new=-v*u^2/(u^2+8*v^2) =-(-1/3)^k * 4/3^(2*k) /(4/3^(2*k-1)) =(-1/3)^(k+1) となるので,k+1のとき成立しました。 [証明終]

tyu_take11
質問者

お礼

本当にありがとうございました。 とても感謝しています。

関連するQ&A