簡體   English   中英

用於向量最小化的MATLAB代碼

[英]MATLAB code for Minimization of vectors

問:我應該在MatLab中使用哪種類型的優化函數來解決以下最小化矩陣問題?

我試圖找到行向量V,使得[[ ((f-transpose(V)* R) ]]受到最小化,這取決於:

轉置(V)* B = 0。

++++變量:

  • f是已知的標量。
  • R是已知的(8×1)行向量。
  • B是已知的(8x1)行向量。
  • V是未知的(8x1)行向量,我想找到它。

+++++更多條件:

  • 在行向量V(8x1)中找到的八個條目的值應在0和1之間。

  • 行向量V的所有八個條目的值之和(8x1)應該為1。

謝謝,馬特

您應該使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM