Search code examples
matlabmathematical-optimizationconvex-optimization

What is the solution of the following optimization problem?


max g(x,y)= x*k+(1-x)*log(1+((x*y)*l)/(1-x))
s.t: 0<=x<=1,0<=y<=1,
where k,l>0. 

Keeping one constraint fixed the function g(x)/g(y) is a concave function. It is also checked by Matlab simulations by various k and l. The simulation result of g(x,y) also gives concave function. What is the maximum value of g(x,y) when two constraints are present?


Solution

  • Maybe you can try fmincon like below

    fn = @(v) -(v(1)*k+(1-v(1))*log(1+((v(1)*v(2))*l)/(1-v(1))));
    Xopt = fmincon(fn,[0.5,0.5],[],[],[],[],[0;0]+eps,[1;1]-eps);
    

    Example

    k = 5;
    l = 2;
    fn = @(v) -(v(1)*k+(1-v(1))*log(1+((v(1)*v(2))*l)/(1-v(1))));
    Xopt = fmincon(fn,[0.5,0.5],[],[],[],[],[0;0]+eps,[1;1]-eps);
    

    such that

    >> Xopt
    Xopt =
    
       0.99800
       0.54714