我在 Matlab 中构造了一个凸函数和递增函数(定性类似于指数函数,但我希望避免 exp 的逐次逼近要求)。在我对函数的说明中,我至少采用了两个凸函数,当然这通常不会导致凸函数;但是对于我正在使用的函数,结果是凸的。我的功能是
function y = cost( x )
y = min( inv_pos( -x ), max( square_pos( x + 3 )/4, 1 ) );
对于那些不熟悉 CVX 语法的人,函数是 min( 1/max(-x,0), max(max(x+3,0)^2/4, 1) )。CVX 抛出错误:
Disciplined convex programming error:
Cannot perform the operation min( {convex}, {convex} )
有什么方法可以让 CVX 相信我的函数确实是凸函数?与它交谈一直没有用。
谢谢