Constrained Optimization, a function that returns a vector?

5 vues (au cours des 30 derniers jours)
jaskier222
jaskier222 le 14 Juil 2017
Commenté : Alan Weiss le 16 Juil 2017
Hello! I looking for some matlab function (Constrained Optimization) which one returns a vector. The function what I try minimalize is in the attachment. It is MPC problem. I try to solve some problem like:
A = [];
b = [];
x0 = [0,0,0]
fun = @(x)(([3;3;3]-[3;3;3])'*([3;3;3]-[3;3;3])+parameter*(x-[1;1;1])'*(x-[1;1;1]))
[x,fval] = optimalization_function(fun,x0,A,b)
Matrices like [3;3;3] is just example.
I tried 'fmincon' but it works only for function that returns scalar.

Réponse acceptée

Alan Weiss
Alan Weiss le 14 Juil 2017
What does minimizing a vector mean? it doesn't mean anything mathematically. You cannot minimize a vector.
The equation in your attached image minimizes the NORM of a vector. That is a scalar, and makes sense to minimize. If you as fmincon to minimize the norm of a vector function, it will happily attempt to do so.
Alan Weiss
MATLAB mathematical toolbox documentation

Plus de réponses (1)

jaskier222
jaskier222 le 14 Juil 2017
Hmm, I used:
x0=[0,0,0]
A=[]
b=[]
[x,fval] = fmincon(fun,x0,A,b)
fun = @(x)((y_zad_k-y_k)'*(y_zad_k-y_k)+parameter*(x-u_k_1)'*(x-u_k_1))
where
N = 6;
N_u = 3;
y_zad is matrix [Nx1]
y_k is matrix [Nx1]
u_k_1 is matrix [N_ux1]
matlab gave me this: "Supplied objective function must return a scalar value." All I placed id 2-level matlab function.
  2 commentaires
Alan Weiss
Alan Weiss le 14 Juil 2017
Evaluate fun(x0). If you don't get a scalar, then your function is not scalar-valued. If you do get a scalar, then please ask again.
Alan Weiss
MATLAB mathematical toolbox documentation
Alan Weiss
Alan Weiss le 16 Juil 2017
I just had another idea. Try
x0 = zeros(3,1);
I think that your original x0 is a row vector, but should be a column vector.
Alan Weiss
MATLAB mathematical toolbox documentation

Connectez-vous pour commenter.

Catégories

En savoir plus sur Get Started with Optimization Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by