solve constraint optimization problem

17 visualizzazioni (ultimi 30 giorni)
Hajar Alshaikh
Hajar Alshaikh il 28 Feb 2023
Commentato: Torsten il 28 Feb 2023
I want to solve constraint optimization problem :
min||M||^2 , where the norm is the frobinus norm and M is 2×2 matrix =[1 x;x 1+2x]
i wrote like that but i got error
x = optimvar('x');
prob = optimproblem;
M=[1 x;x 1+2*x]
prob.Objective = norm(M,'fro')^2;
prob.Constraints.cons1 = x^2-2*x <=1
prob.Constraints.cons2 = x >=- 1/2;
sol = solve(prob,x)

Risposta accettata

Torsten
Torsten il 28 Feb 2023
x = optimvar('x');
prob = optimproblem;
M=[1 x;x 1+2*x];
prob.Objective = norm(M,'fro')^2;
prob.Constraints.cons1 = x^2-2*x <=1;
prob.Constraints.cons2 = x >=- 1/2;
x0.x = 1;
sol = 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: -0.3333
  2 Commenti
Hajar Alshaikh
Hajar Alshaikh il 28 Feb 2023
Modificato: Hajar Alshaikh il 28 Feb 2023
I copied your code and got this message :
Unable to perform assignment because dot indexing is not supported for variables of this type.
Torsten
Torsten il 28 Feb 2023
Then you use an older MATLAB version.
Take a look at your older documentation on how to supply initial values for the solution variables.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by