我刚刚开始使用Matlab,并且在约束条件下优化函数时遇到了麻烦。
这是函数,其中lord
只是iid
个随机变量集。
F = @(l) 1/size(Lord,1)*sum(Lord<=l)
所以我试图以F(l)>=alpha
的条件最小化这个。
我正在思考
[xmin fmin] = fminbnd(F,-1,1)
但我不确定如何包括这个条件。
答案 0 :(得分:0)
所以你想知道l
其中&#39; F(l)&#39;是最小的但是大于&#39; alpha&#39 ;?最简单的可能是alpha
以下值的巨大惩罚。
function y = F(l)
y = 1/size(Lord,1)*sum(Lord<=l);
y = y + (y > alpha) * 1e9; % the penalty term
end
在最小化之前直接将其作为函数,因为Lord和alpha必须在范围内。