2017-04-25 3 views
0

質問:次の最小化行列の問題を解決するためにMatLabのどのような最適化関数を使用しますか?ベクトルの最小化のためのMATLABコード

Iは、行ベクトルVを見つけることを試みているように[[(F - 転置(V)* R)]に従う最小化される。

転置(V)* B = 0

++++変数:

  • fが知られているスカラーです。
  • Rは既知の(8×1)行ベクトルです。
  • Bは既知の(8×1)行ベクトルである。
  • Vは未知の(8x1)行ベクトルで、私はそれを見つけたいと思います。

+++++複数の条件:

  • 行ベクトルV(8×)で8つの見つかったエントリの値があるべき 和

  • 0と1との間行ベクトルV(8×1) の8つの全エントリの値の和は1でなければならない。

おかげで、 マット

+1

が、これは宿題の質問のいくつかの種類ですか?あなたはその解決法について考えていますか?宿題に関するいくつかのガイドラインについては、[this](https://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions)を参照してください。 – ventiseis

答えて

0

あなたはfminconを使用する必要があります。

% random inputs f, R, B 
f = rand; 
R = 2*rand(8,1) - 1; 
B = 2*rand(8,1) - 1; 
% minimization term 
fun = @(V) abs(f - V'*R); 
% constrains: transpose(V)*B = 0 and sum(V) = 1 
Aeq = [B';ones(1,8)]; 
beq = [0;1]; 
% lower (0) and upper (1) bounds 
lb = zeros(8,1); 
ub = ones(8,1); 
% initial guess 
V0 = rand(8,1);V0 = V0/sum(V0); 
% constrained minimization 
V = fmincon(fun,V0,[],[],Aeq,beq,lb,ub); 
% check result 
sum(V) % should be 1 
V'*B % sould be 0 
[min(V) max(V)] % should be between 0 to 1 
関連する問題