如何在Matlab

时间:2015-11-04 01:10:31

标签: matlab optimization

我对k > 1参数x_1x_2,...,x_k的序数关系存在优化问题。也就是x_1 < x_2 < ... < x_k,我希望最小化费用函数f: (x_1, ... , x_k) -> c

是否有Matlab优化算法可以有效地适应这个问题?

1 个答案:

答案 0 :(得分:3)

为什么不使用fmincon()?看一下第一个例子here:使用以下略微修改的约束(这里为了简单k = 3):

x(1) <= x(2) -> x(1) - x(2) < 0
x(2) <= x(3) -> x(2) - x(3) < 0 
根据上述公式,

Ab可能如下所示:

A = [1, -1, 0; 
     0, 1, -1;
     0, 0, 0];

b = 0;

但请注意,这些并不比关系严格小,因为fmincon的作用更小或相等。为了逼近小于的实数,你可以引入一个非常小的数字,比如上面的方程中的e,例如

x(1) + e <= x(2) 

如果你做小,它应该是一个好的近似值。