Construct optimisation constraints vector with anonymous function.
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I am using Opti tools to optimise a nonlinearly constrained function. According to the tutorial, non-linear constraints are declared through an anonymous function such as: nlcon = @(x) x(1).^3 + 2*x(2) It happens that my optimisation problem is quite big, so all my linear constraints were constructed using a basic 'for' routine. However, I failed doing the same with anonymous functions. How can I sequentially add new nonlinear constraints to nlcon?
Here is a simple example of what I woul like to do:
While i < k
nlnon(i) = @(x) x(1).^3 + 2*x(2)
if c >z
nlnon(i+1) = @(x) x(4).^9 + 2
else
nlnon(i+1) = @(x) x(4).^2 + 2
end
i = i+2;
k = k+1;
end
Thank you, Best Regards
0 comentarios
Respuestas (1)
blaat
el 18 de Ag. de 2015
Editada: blaat
el 18 de Ag. de 2015
You can also call functions within an anonymous function, e.g.,
param1 = 6;
param2 = 0.5;
nlcon = @(x)calculateconstraint(x, param1, param2);
So place the computation for your constraint in a function (e.g., calculateconstraint), and refer to it as above.
0 comentarios
Ver también
Categorías
Más información sobre Systems of Nonlinear Equations en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!