How does fit.m determine starting points for exponential function parameters?

4 ビュー (過去 30 日間)
Tony Pryse
Tony Pryse 2016 年 12 月 1 日
コメント済み: Tony Pryse 2017 年 7 月 18 日
The curvefitting toolbox has a "fit.m" function that can fit various linear and nonlinear functions. It has single and double exponential model functions. While you can specify starting points for the parameters, fit.m can determine the initial values for the search. The doc says: "If no start points (the default value of an empty vector) are passed to the fit function, starting points for some library models are determined heuristically. For rational and Weibull models, and all custom nonlinear models, the toolbox selects default initial values for coefficients uniformly at random from the interval (0,1)..." Can anyone point me to the code that actually does this "heuristic" determination of the starting point values? I can't find it in fit.m itself, although it's a large file. Thanks much for any help. (I'm using 2016a.)

採用された回答

Peter Weigel
Peter Weigel 2017 年 7 月 15 日
Hi,
I believe what you're looking for is located in fittype/private/sethandles. If you type: "open fittype/private/sethandles" into the command prompt then the file will open for you (no need to dig through the MATLAB folders).
  1 件のコメント
Tony Pryse
Tony Pryse 2017 年 7 月 18 日
Thanks Peter! This Matlab file (fittype/private/sethandles) refers to the paper: "Initial Values for the Exponential Sum Least Squares Fitting Problem" by Joran Petersson and Kenneth Holmstrom, and implements the methods in it. I think I ran across this paper some years ago, and it's good to know how Matlab uses it.

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

その他の回答 (1 件)

giuseppe cardone
giuseppe cardone 2017 年 3 月 21 日
Did you solve the problem?
  2 件のコメント
Tony Pryse
Tony Pryse 2017 年 3 月 21 日
Nope, still don't know how they do it, and there certainly doesn't seem to be much interest in the question as posted, judging from the lack of comments or answers. Oh, well ...
Laure A
Laure A 2017 年 3 月 23 日
Hi,
I'm also looking for help on this point, since "exp1 fit" on some of my data also returns an error on starting points. My issue is precisely that this fit function works for some data and not for others, and I don't know why. Besides, doing the fit in "curve fitting tool" on the same data (not launching the funtion) does work, which is thus confusing...

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

カテゴリ

Help Center および File ExchangeLinear and Nonlinear Regression についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by