Display information about optimization object
Examine the various stages of problem construction for optimizing the Rosenbrock function confined to the unit disk (see Solve a Constrained Nonlinear Problem, Problem-Based).
Create a 2-D optimization variable x
. Show the variable.
x = optimvar('x',2);
show(x)
[ x(1) ] [ x(2) ]
Create an expression for the objective function. Show the expression.
obj = 100*(x(2) - x(1)^2)^2 + (1 - x(1))^2; show(obj)
((100 .* (x(2) - x(1).^2).^2) + (1 - x(1)).^2)
Create an expression for the constraint. Show the constraint.
cons = x(1)^2 + x(2)^2 <= 1; show(cons)
(x(1).^2 + x(2).^2) <= 1
Create an optimization problem that has obj
as the objective function and cons
as the constraint. Show the problem.
prob = optimproblem("Objective",obj,"Constraints",cons); show(prob)
OptimizationProblem : Solve for: x minimize : ((100 .* (x(2) - x(1).^2).^2) + (1 - x(1)).^2) subject to : (x(1).^2 + x(2).^2) <= 1
Finally, create an initial point [0 0]
and solve the problem starting at the initial point.
x0.x = [0 0]; [sol,fval,exitflag] = solve(prob,x0)
Solving problem using fmincon. 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 = struct with fields:
x: [2x1 double]
fval = 0.0457
exitflag = OptimalSolution
Examine the solution point.
sol.x
ans = 2×1
0.7864
0.6177
obj
— Optimization objectOptimizationProblem
object | EquationProblem
object | OptimizationExpression
object | OptimizationVariable
object | OptimizationConstraint
object | OptimizationEquality
object | OptimizationInequality
objectOptimization object, specified as one of the following:
OptimizationProblem
object — show(obj)
displays the
variables for the solution, objective function, constraints, and variable
bounds.
EquationProblem
object — show(obj)
displays the
variables for the solution, equations for the solution, and variable bounds.
OptimizationExpression
object — show(obj)
displays
the optimization expression.
OptimizationVariable
object — show(obj)
displays the
optimization variables. This display does not indicate variable types or bounds; it
shows only the variable dimensions and index names (if any).
OptimizationConstraint
object — show(obj)
displays
the constraint expression.
OptimizationEquality
object — show(obj)
displays the
equality expression.
OptimizationInequality
object — show(obj)
displays
the inequality expression.
You have a modified version of this example. Do you want to open this example with your edits?