Solving the Maximum and Minimum Problems of Multivariate Functions

1 vue (au cours des 30 derniers jours)
xu
xu le 30 Mai 2023
Commenté : Torsten le 30 Mai 2023
max y and min y
y=0.0435*x1-0.266*x2+4.2*x3+0.019*x1*x2-0.3 x1*x3-0.2485
10<x1<20, 0<x2<5, 30<x3<35
  4 commentaires
xu
xu le 30 Mai 2023
is this true?
Torsten
Torsten le 30 Mai 2023
Yes, it's true. And the second call to fmincon with -f instead of f is the call to maximize f.
fun = @(x)0.0435*x(1)-0.266*x(2)+4.2*x(3)+0.019*x(1)*x(2)-0.3*x(1)*x(3)-0.2485;
lb=[10;0;30];
ub=[20;5;35];
A = [];
b = [];
Aeq = [];
beq = [];
x0 = [10,0,30];
[x,fval] = fmincon(fun,x0,A,b,Aeq,beq,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.
xmin = x
xmin = 1×3
20.0000 0.0000 35.0000
fval_min = fval
fval_min = -62.3785
[x,fval] = fmincon(@(x)-fun(x),x0,A,b,Aeq,beq,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.
xmax = x
xmax = 1×3
10.0000 0.0000 35.0000
fval_max = -fval
fval_max = 42.1865

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
Walter Roberson le 30 Mai 2023
Déplacé(e) : Walter Roberson le 30 Mai 2023
No. You have coded finite lower bounds and upper bounds for x3, and you have coded a single region for x1. However your problem as stated has no bounds on x3, and gives two disconnected regions for x1.
fmincon and similar routines cannot handle two disconnected regions for a single variable. You will need to use ga with x1 defined over 10 to 35, and you will need to use nonlinear constraints to reject x1 that are not in either of the two regions.
  7 commentaires
xu
xu le 30 Mai 2023
So the solution I used is correct?
xu
xu le 30 Mai 2023
I see. Thank you!

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by