Global optimization with non linearly linked parameters

조회 수: 1 (최근 30일)
Zine
Zine 2016년 4월 26일
댓글: Zine 2016년 5월 5일
I need help on how to do this kind of optimization; I have experimental data to fit to a model in the form of M = (2*A*x-B)/(C*x-exp(A^2+B^2)); C = f(ci), my problem is how to express A and B in the optimization problem since they are done with : A^2-B^2 = f(ai,bi) and 2*A*B = f(ai,bi), [C, A, B are arrays, ci,ai,bi are scalars and of course M is an array];

채택된 답변

Alan Weiss
Alan Weiss 2016년 4월 26일
I do not understand which are your control variables (ones that you want the solver to change in order to reach a minimum) and which, if any, are extra constant parameters or data.
You need to have all of your control variables in one vector variable that is usually called x. For example, if your control variables are A and B (matrices), then set
x = [A(:);B(:)];
This means make a vector out of the columns of A, and append to it a vector made out of the columns of B.
Then use one of the Passing Extra Parameters techniques for passing your other parameters.
For examples of what I mean, see this example or, for a more complex example, see this one.
After you know exactly which are your control variables, you should be able to write your objective function and, if necessary, nonlinear constraint functions.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
  댓글 수: 2
Zine
Zine 2016년 4월 26일
Thanks Alan for your answer, my control variables are the small ai, bi, and ci; the experimental data are X and Y,
Y = f(X),
and for the model
M = (2*A*x-B)/(C*x-exp(A^2+B^2))
we have
C = c1*X-exp(c2/X^2)
A^2 -B^2 = a1 - (b1*a1*X/(b2+a2*X^2))
2*A*B = a1*exp(2*b1/(a2*X-b2))
so I need to find a1,a2,b1,b2,c1,c2, my problem is that A and B are inter-related and they don't have dependence in only one direction
Zine
Zine 2016년 5월 5일
Thanks Alan, links are very helpful, solved.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Genetic Algorithm에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by