How to minimize a self-defined function?

Uncategorized
Aug 2, 2019
W

I want to minimize a funcition that is defined by myself, how should I do?

M

You must follow all of CVX’s DCP rules. Please read http://cvxr.com/cvx/doc/advanced.html#adding-new-functions-to-the-atom-library .

W

thank you very much!
But why can’t the following example work?
cvx_begin
variable x;
minimize(fun(x));
cvx_end

function [z] = fun(x)
z = x^2;
end

doesn’t it follow the so called DCP rules?

M

Place fun in fun.m in your MATLAB path. Then it should work.

W
Replying to #4

oh, yes, thank you for your kind help.
And could you please just give some hint on how to deal with a function like this:
function [z]=fun(x)
if(x>=0)
z=x;
else
z=x^2;
end
end

Thanks.

M

pos(x) + square_pos(pos(-x))