Parameter optimization for a model that relates two datasets

조회 수: 13 (최근 30일)
Andrew Johnson
Andrew Johnson 2014년 10월 2일
댓글: Andrew Johnson 2014년 10월 8일
Hello! This is a seemingly simple problem I have been stuck on for some time now. I would greatly appreciate any ideas or help!
I have a model of the form:
Y = A*X^-1 + B*X^4*F(X)
-----------
A and B are unknown parameters.
Y is a measured frequency distribution dataset of the form (Y(i), f(Y(i))).
X is another measured frequency distribution dataset (X(i), g(X(i))).
F is a known (albeit complicated) function of X.
-----------
I would like to find values for A and B such that the right hand side of the function transforms the frequency distribution (X,g(X)) into something that looks very nearly like the measured (Y,f(Y)).
I have tried a nested for-loop "brute-force" method which tests all combinations of A and B within reasonable bounds, but it has proven too sensitive to the discretization scale chosen for A and B. Is there any matlab solution to this sort of problem? Thank you in advance!
Andrew

채택된 답변

Jeremy Kemmerer
Jeremy Kemmerer 2014년 10월 2일
Do you know for certain that the parameters A and B exist? It sounds like you may have an underdetermined system.
One quick thing to try is to form a matrix Z with three columns: Y, X^-1, and X^4*F(X) and check the rank of the matrix using the function “ rank ”.
If Z is full rank (rank is equal to 3 in this case), this tells you that the columns are not linearly dependent, and hence the parameters you are looking for won’t exist.
For more information on the command “ rank ”, please see the documentation pages: http://www.mathworks.com/help/matlab/ref/rank.html
  댓글 수: 1
Andrew Johnson
Andrew Johnson 2014년 10월 8일
Thank you, Jeremy. I had suspected this might be the case. I appreciate your answer!
Best, Andrew

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

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by