Optimize objective function with a random value?

4 次查看(过去 30 天)
Hi, I am solving an optimization problem using Optimizaiton Toolbox.
I have six parameters which are the rate constants of a model that conforms to the Markov chain. After calculation, I get a matrix, A, containing different states in this model. Then I plot the data in A and fit it in order to get three results I want, suppose they are a, b, c. In order to match the three results of my model with the experimental data, I try to minimize chi-square, which defined to be the squared difference between experimental and model results divided by the experimental results.
In short, I want to find optimal rate constants to minimize chi-square function.
I have tried two different solvers (fminunc, lsqnonlin) with different algorithms, but it didn't seem to work. After running the optimization two hours, these rates only change about 0.003. Is it because of the random values of a, b, c? If so, how can I solve this problem?

采纳的回答

Star Strider
Star Strider 2019-2-22
It seems that you are doing a nonlinear parameter estimation problem, fitting your model to data, rather than an actual optimization problem. (They are similar, although not the same.) The success of nonlinear parameter estimation is significantly dependent on the iniitial parameter estimates. You could easily end up in a local minimum, far from the actual solution to your problem, rather than the global minimum that is the best solution to your problem. You can guess randomly at the best initial estimates, or let the Global Optimizationm Toolboox functions do the guessing for you.
And you actually want to minimize the norm of the difference between your data and the model solution. That will result in the most reliable estimated parameters.
  2 个评论
Becky Becky
Becky Becky 2019-2-22
I've tried manually adjusting for about two months and I have never got the results I want. So I try to adjust the parameters automatically.
Star Strider
Star Strider 2019-2-22
I prefer the genetic algorithm (ga (link)) approach. It is relatively easy to write a simple genetic algorithm code, if you do not have the Global Optimization Toolbox.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Solver Outputs and Iterative Display 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by