MATLAB: Optimize objective function with a random value

optimizationrandom objective function

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?

Best Answer

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.