exponentialCurveFit; cvx_begin variable x1 variable x2 variable x3 variable x4 variable x5 variable x6 variable x7 %maximize ((1-(1/C(1))*exp(-C(1)*x1))+(1-(1/C(2))*exp(-C(2)*x2))+(1-(1/C(3))*exp(-C(3)*x3))+(1-(1/C(4))*exp(-C(4)*x4))+(1-(1/C(5))*exp(-C(5)*x5))+(1-(1/C(6))*exp(-C(6)*x6))+(1-(1/C(7))*exp(-C(7)*x7))); maximize (-(1/C(1))*exp(-C(1)*x1)-(1/C(2))*exp(-C(2)*x2)-(1/C(3))*exp(-C(3)*x3)-(1/C(4))*exp(-C(4)*x4)-(1/C(5))*exp(-C(5)*x5)-(1/C(6))*exp(-C(6)*x6)-(1/C(7))*exp(-C(7)*x7)) subject to % x1 + x2 + x3 + x4 + x5 + x6 + x7 <= 10 % x1 <= 1 % x2 <= 5 % x3 >= 2 % x4 <= 3 % x5 <= 5 % x6 <= 5 % x7 <= 5 cvx_end obj = -(1/C(1))*exp(-C(1)*x1)-(1/C(2))*exp(-C(2)*x2)-(1/C(3))*exp(-C(3)*x3)-(1/C(4))*exp(-C(4)*x4)-(1/C(5))*exp(-C(5)*x5)-(1/C(6))*exp(-C(6)*x6)-(1/C(7))*exp(-C(7)*x7); sprintf('Obj.= %3.3f',obj) sprintf('x1 = %3.3f, x2 = %3.3f',x1,x2) x1 = 0:0.02:1; x2 = 0:0.02:1; hold off %[x1,x2] = meshgrid(x1,x2); obj = -(1/C(1))*exp(-C(1)*x1)-(1/C(2))*exp(-C(2)*x2)-(1/C(3))*exp(-C(3)*x3)-(1/C(4))*exp(-C(4)*x4)-(1/C(5))*exp(-C(5)*x5)-(1/C(6))*exp(-C(6)*x6)-(1/C(7))*exp(-C(7)*x7); %surf(x1,x2,obj) plot(x1,obj) axis square