Construct optimisation constraints vector with anonymous function.

조회 수: 2 (최근 30일)
Afonso Silva
Afonso Silva 2015년 8월 18일
편집: blaat 2015년 8월 18일
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

답변 (1개)

blaat
blaat 2015년 8월 18일
편집: blaat 2015년 8월 18일
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.

카테고리

Help CenterFile Exchange에서 Time Series에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by