Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

Updating bounds in fmincon

조회 수: 1(최근 30일)
Michelle
Michelle 2013년 8월 13일
마감: MATLAB Answer Bot 2021년 8월 20일
Hello,
I am trying to update bounds on a parameter I am optimizing. I have two parameters, b and psi. psi's bounds are a function of b so they need to be updated. How do I keep changing the bounds while also optimizing for both b and psi?
This is the inequality I need to define:
π-2tan^(-1)(2r/b)<Ψ<3π/2-2tan^(-1)(2r/b)

답변(1개)

Matt Kindig
Matt Kindig 2013년 8월 13일
편집: Matt Kindig 2013년 8월 13일
You can implement the constraints on psi as a linear inequality constraint. If you check the documentation for your solver (e.g., doc fmincon), you should see the definitions of the A, Aeq, B, Beq matrices, which you can use to implement the constraint. For example, if your constraint is that
psi < b
You can convert this constraint to an inequality:
psi - b < 0
implement this as:
A = [1 -1]; B = 0;
%assuming your variables are in the order [psi; b].
Similarly, for psi > b:
A = [1 -1]; B = 0;
Note that you will need to pad out A and B with zeros if you have additional parameters to optimize.
  댓글 수: 1
Matt Kindig
Matt Kindig 2013년 8월 13일
Now that you've edited the question, I see that your constraints are nonlinear. Thus, instead of using the linear inequality method I've described below, you will need to implement this using a custom nonlinear constraint function, with two inequality expressions. See the documentation for fmincon for details.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by