I have differnt coodinate after use fmincon

1 visualizzazione (ultimi 30 giorni)
i want to get a coordinate for maximum distance which form is distance =10.361+0.40125.*a-0.34875.*c-0.78375.*a.*c i plot this surface, and i have (1,-1) is the best coordinate and the maximum is 11.8947 but when i do this for fmincon, x0=[0 0]; lowerbound=[-1 -1]; upperbound =[1 1]; function f = distance(x) A=x(1); C=x(2); f= (-1).*(10.361+0.40125.*A-0.34875.*C-0.78375.*A.*C); end function [c ceq]=const(x) A=x(1); C=x(2); c=A+C-2; ceq=[]; end the answer is x=1 y=1 , not a x=1 y=-1!!!!!! plz help me
  5 Commenti
jong eun kim
jong eun kim il 4 Dic 2022
nono i mistake the question i set lower=[-1 -1] upper=[1 1]
Torsten
Torsten il 4 Dic 2022
Both Matt J and I already changed the settings.
And the result is as you expect: A = 1 and C = -1.

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 4 Dic 2022
x0=[0 0]; lb=[-1 -1]; ub =-lb;
fmincon(@distance,x0,[1,1],2,[],[],lb,ub)
Local minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
ans = 1×2
1.0000 -1.0000
function f = distance(x)
A=x(1); C=x(2); f= (-1).*(10.361+0.40125.*A-0.34875.*C-0.78375.*A.*C);
end
  4 Commenti
jong eun kim
jong eun kim il 4 Dic 2022
i reupload my question by more specificly. i think u dont understand my question. but thank you for your help
jong eun kim
jong eun kim il 4 Dic 2022
plz check my new question sir

Accedi per commentare.

Più risposte (1)

Torsten
Torsten il 4 Dic 2022
Modificato: Torsten il 4 Dic 2022
x0=[0 0];
lowerbound =[-1 -1];
upperbound = [1 1];
sol = fmincon(@distance,x0,[1 1],2,[],[],lowerbound,upperbound)
Local minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
sol = 1×2
1.0000 -1.0000
function f = distance(x);
A=x(1);
C=x(2);
f= (-1).*(10.361+0.40125.*A-0.34875.*C-0.78375.*A.*C);
end

Prodotti


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by