【发布时间】:2012-08-25 15:31:19
【问题描述】:
如何使用 fmincon() 施加约束,使您尝试优化的向量中的所有值都大于零?
根据文档,我需要一些参数 A 和 b,其中 A*x ≤ b,但我认为如果我将 A 设为 -1 和 b 0 的向量,那么我将针对 x 的总和进行优化> 0,而不是 x 的每个值都大于 0。
以防万一你需要它,这是我的代码。我正在尝试对向量 (x) 进行优化,以使 x 和矩阵(称为 multiplierMatrix)的(按分量)乘积形成一个矩阵,其列的总和为 x。
function [sse] = myfun(x) % this is a nested function
bigMatrix = repmat(x,1,120) .* multiplierMatrix;
answer = sum(bigMatrix,1)';
sse = sum((expectedAnswer - answer).^2);
end
xGuess = ones(1:120,1);
[sse xVals] = fmincon(@myfun,xGuess,???);
如果我需要更好地解释我的问题,请告诉我。提前感谢您的帮助!
【问题讨论】:
-
fmincon 有一个下限参数。阅读帮助。
标签: optimization matlab