dポイントプレゼントキャンペーン実施中!

次のような問題の最適解(目的関数の値とそのそきのxの値)をラグランジュの未定乗数法で求めたいのですが、どうやってやればよいのでしょうか???主成分分析で用いる手法とのことですが。。。

問題は以下のような問題です

max x^T*Ax     ただし、 x:n次列ベクトル
s.t.  x^T*x=1   A:n*n正定対称行列(固有値が正)

A 回答 (3件)

f(x)=x^T*Ax、


g(x)=x^T*x-1
と置きます。

ラグランジュ未定乗数法から、
g(x)=0の条件の下でf(x)が極値をとるのは、

F(x,λ)=f(x)-λg(x)

と置き、

∇F(x,λ)=0 かつ g(x)=0

を満たすときです。
ここで∇は、xのそれぞれの成分についての偏微分を表します。
成分で書くと、

∂F(x,λ)/∂x_i
=∂{ΣΣx_k・A_kj・x_j-λ(Σx_j^2-1)}/∂x_i
=2(ΣA_ij・x_j-λx_i)

です。すなわち、

∇F(x,λ)=2(A-λ)x

です。これが0より、

Ax=λx 

よって、xがAの固有ベクトル、λが固有値のときf(x)が極値をとります。
g(x)=0より、xは規格化されている必要があります。

また、このとき、f(x)=λx^T*x=λ
となります。

よって、f(x)が最大になるのは、λが最大の固有値の時です。

この回答への補足

少し疑問に思ったところがありましたので
補足して質問させてください

2行目のg(x)=x^T*x-1 なのですが
T*(x-1)ではなく(T*x)-1 ということでよろしいのでしょうか?

補足日時:2004/07/30 22:51
    • good
    • 0
この回答へのお礼

詳しい回答をありがとうございます
よく理解することができました
今後ともよろしくお願いいたします

お礼日時:2004/07/30 22:37

>2行目のg(x)=x^T*x-1 なのですが


>T*(x-1)ではなく(T*x)-1 ということでよろしいのでしょうか?

そうです。
x^T*x=1 という条件を、
(x^T*x)-1=0 という形(g(x)=0)に書き直しただけです。
    • good
    • 0
この回答へのお礼

親切な回答をありがとうございました
大変勉強になりました
今後ともよろしくお願いいたします

お礼日時:2004/07/31 23:45

下記URLは参考になりませんか?(googleで「未定乗数法」と入力して1番目にヒットしたもの)



これに忠実に作業すれば、「(A+A^T)の固有ベクトル」が答えとして有力そうです。(計算は自身なしです)

参考URL:http://www.neuro.sfc.keio.ac.jp/~masato/study/SV …
    • good
    • 0
この回答へのお礼

適切なサイトを教えていただきましてありがとうございます
今後ともよろしくお願いいたします

お礼日時:2004/07/30 22:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!