fminunc for upper and lower bound variable definition ?

18 visualizaciones (últimos 30 días)
HN
HN el 4 de Nov. de 2020
Editada: HN el 5 de Nov. de 2020
Isn't it possible to give upper and lower bound for the variables in the objective function while using fminunc ?
Thank you.

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 4 de Nov. de 2020
No, fminunc() is for unconstrained optimization. If you want to do constrained optimization, then use fmincon().
  2 comentarios
Walter Roberson
Walter Roberson el 4 de Nov. de 2020
right, fminunc is UNConstrained
HN
HN el 4 de Nov. de 2020
Is fmincon() quasi-newton as well ?
Thank

Iniciar sesión para comentar.

Más respuestas (1)

Bruno Luong
Bruno Luong el 4 de Nov. de 2020
Editada: Bruno Luong el 4 de Nov. de 2020
You could transform variables, x will be opened bounded by lo/hi
xfun = @(y) lo + (hi-lo).*sin(y).^2
...
y = fminunc(obj(xfun(y)), ...)
x = xfun(y)
Honestly I don't like those kind of transformation.
Use the right tool: fmincon as others have suggested.
  9 comentarios
Walter Roberson
Walter Roberson el 5 de Nov. de 2020
fun = @(x)[x1L;x2L;x3L]+([x1U;x2U;x3U]-[x1L;x2L;x3L]).*PRSopt_QN1(x(1,:),x(2,:),x(3,:))
Unless two of x1L, x2L, x3L are empty and the third is a scalar, then you can be sure that function is going to return something that is not a scalar. You do not take the mean() there.
HN
HN el 5 de Nov. de 2020
Editada: HN el 5 de Nov. de 2020
Thank you Walter Roberson,
I correct it like this. But it only gives some of the output arguments . Moreover, How can I define the option without defined Hessian ? Thanks
A = [];
b = [];
Aeq = [];
beq = [];
%%
LB = [deg2rad(120),deg2rad(-150)];
UB= [deg2rad(150),deg2rad(-120)]
x=[1;deg2rad(130);deg2rad(-130)];
fun = @(x)PRSopt_QN(x(1),x(2))
% [V,fval] = fmincon(fun,x)
[V,fval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x,A,b,Aeq,beq,LB,UB)
AverageF=PRSopt_QN(x(1,:),x(2,:));

Iniciar sesión para comentar.

Categorías

Más información sobre Get Started with Optimization Toolbox en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by