- You could have a bug in your objective function code. It isn't computing what you think it does.
- You may have chosen bad tolerance values or scaled your objective function poorly in relation to those tolerances.
- Your initial guess x0 is not near enough to the solution you want.
Convergence Problem with lsqnonlin
12 ビュー (過去 30 日間)
古いコメントを表示
Hi there,
I have to model a complex reactions system. During my work I have to optimize and estimate some parameters (reaction rate constants) using “lsqnonlin- Least square Non-linear Method”. The problem is that when I do optimization and use the estimated parameters for the model, the behavior of the model is worse than that of before optimization. I mean the estimated parameters make the model gives worse results than that of before optimization. In fact, “lsqnonlin” does not converge and the program stops because of different reasons like limitation of iteration, tolerance X or tolerance function.
Would you please let me know what I should do to solve the problem?
Thanks in advance for any recommend and suggestion.
0 件のコメント
採用された回答
Matt J
2013 年 10 月 8 日
編集済み: Matt J
2013 年 10 月 8 日
Some typical causes,
2 件のコメント
Matt J
2013 年 10 月 8 日
編集済み: Matt J
2013 年 10 月 8 日
Thank you for prompt answer.
1. I am sure the objective function code goes in right way. I have checked it. For example with a graph which shows the error vs. number of iteration.
That doesn't sound like good evidence. A graph vs. the unknown parameters would be the meaningful check. Did you check that the function is zero for zero when given the true parameters?
2. I am not sure about the tolerance. Would you please let me know how I should choose the proper tolerance?
If the value of the objective function changes by a crazy large number like 10^8 in response to a small change in the parameters, that is a sign of bad scaling. Similarly, a crazy small change in response to a large change in parameters is bad too.
3. I have tried different initial guesses. I have also used "MultiStart" method to start from multiple start points.
You could have chosen badly.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Manual Performance Optimization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!