Constrained Optimization, a function that returns a vector?

5 次查看(过去 30 天)
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.

采纳的回答

Alan Weiss
Alan Weiss 2017-7-14
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

更多回答(1 个)

jaskier222
jaskier222 2017-7-14
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 个评论
Alan Weiss
Alan Weiss 2017-7-14
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 2017-7-16
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Get Started with Optimization Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by