フィルターのクリア

fitting function with many parameters (fminsearch)

3 ビュー (過去 30 日間)
gianluca messina
gianluca messina 2013 年 2 月 27 日
Hi guys,
I am fitting diffraction data using a custom-made function. The solver I am using is fminsearch, which searches the zero of the funcion sse = sum( (log(fitted_curve) - log(data))^2 ).
There are 14 parameters,and the function is made of a summation. The starting parameters are very close to a good solution. I don't understand why fminsearch only varies some parameters, leaving others unchanged even if they aren't optimal.
Are there too many parameters?
Any ideas?
Regards,
Gianluca

採用された回答

Miroslav Balda
Miroslav Balda 2013 年 2 月 27 日
This may happen, if there are order differences among values of unknown parametres. Let's assume those parameters are gathered in a vector p and an initial guess is in p0. The situation may dramatically change, if we work with normalized parameters starting with a normalized vector of unknowns p=ones(n,1), however working with p=p.*p0 inside a user's function, that is called from fminsearch. After the optimum (normalized) parameters p be returned, the real optimum parameters p_opt=p.*p0.
  1 件のコメント
gianluca messina
gianluca messina 2013 年 2 月 27 日
It's working now!
Thanks a lot for your help

サインインしてコメントする。

その他の回答 (1 件)

Matt J
Matt J 2013 年 2 月 27 日
編集済み: Matt J 2013 年 2 月 27 日
14 parameters is a lot for FMINSEARCH. You also need to be careful of quantization operations like ROUND, CEIL, etc... in your "fitted_curve". They can make the function locally flat, so that perturbing some/all parameters doesn't improve the function. You could plot your objective as a function of the parameters that are giving you problems (keeping the other parameters fixed). This would show you whether the parameters are sitting on a flat shelf.

カテゴリ

Help Center および File ExchangeGet Started with Curve Fitting Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by