Hello, I'm trying to maximize an objective function with 2 unknown variables subject to lower/upper bound constraints on the unknowns. The objective function is:
function F = v_optimal2(v)%br: function has two optimal speed params
F = (13597150/(1+.000273)^((2781.4+6278.5)/(24*v(1))- (34993*(2781.4+6278.5)/(24*v(1))+ ...600*55*((v(1)/16)^3)*(2781.4+6278.5)/24*v(1))/(1+.000273)^((2781.4)/24*v(1)- 34993*(2781.4+6278.5)/(24*v(2))+ ...600*55*((v(1)/v(2))^3)*(2781.4+6278.5)/24*v(2))));end
To solve, I run:
x0 = [13.5; 8]; %Make a starting guess at the solution
[x,fval] = fminimax(@v_optimal2,x0,[],[],[],[],8,16); %Call solver
>> solveOptimalSpeedLocal minimum possible. Constraints satisfied.fminimax stopped because the size of the current search direction is less thantwice the default value of the step size tolerance and constraints are satisfied to within the default value of the constraint tolerance.<stopping criteria details> Optimization stopped because the norm of the current search direction, 0.000000e+00,is less than 2*options.TolX = 1.000000e-06, and the maximum constraint violation, 0.000000e+00, is less than options.TolCon = 1.000000e-06.Optimization Metric Optionsnorm(search direction) = 0.00e+00 TolX = 1e-06 (default)max(constraint violation) = 0.00e+00 TolCon = 1e-06 (default)
So my questions are:
1. Before I get really into depth on the stopping criteria, is this the correct Matlab function to use?
2. If minimax is okay, why isn't it solving and how do I get the max instead of min (doing -@voptimal2 did not work)
Best Answer