lsqnonlin and stretched exponential function

13 ビュー (過去 30 日間)
Alessandro
Alessandro 2020 年 3 月 29 日
コメント済み: Torsten 2020 年 3 月 29 日
Hi all,
I am currrently trying to fit my data with lsqnonlin instead lsqcurvefit for a comparative reason and I am facing some troubles.
Starting with the easiest example in https://se.mathworks.com/help/optim/ug/lsqnonlin.html, I modify the function as:
fun = @(r) r(1).*exp(-d.*r(2)).^r(3)-y
This function yields x = [1.0376 3.1962 0.4104].
From here, I calculate my errors in the way:
[x,resnorm,residual,exitflag,output,lambda,J] = lsqnonlin(fun,x0);
N = length(y(:,1));
[Q,R] = qr(J,0);
mse = sum(abs(residual).^2)/(size(J,1)-size(J,2));
Rinv = inv(R);
Sigma_var = Rinv*Rinv'*mse;
x_er = full(sqrt(diag(Sigma_var)));
Here, the values I get are not making any sense to me x_er = [0.02701 6458034.8422 829226.8633]; especially for x(2) and x(3).
Fit and errors are totally fine if I fit similar data in the form: (i) r(1).*exp(-d.*r(2)) or (ii) r(1).*exp(-d.*r(2))+r(3).*exp(-d.*r(4));
Could you please help me? Am I missing something?
Thanks a lot.
Best wishes
Alessandro
  4 件のコメント
Ameer Hamza
Ameer Hamza 2020 年 3 月 29 日
You code seems to give correct output
Alessandro
Alessandro 2020 年 3 月 29 日
Yes, indeed but I need the errors as well.
When I insert the exponent in the function, i.e., r(3), something goes extremely wrong.
Any idea?

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

採用された回答

Torsten
Torsten 2020 年 3 月 29 日
編集済み: Torsten 2020 年 3 月 29 日
error_bounds = nlparci(x,residual,'jacobian',J)
after the call to lsqnonlin.
If you don't have a toolbox with nlparci, search the web for nlparci.m.
  8 件のコメント
Alessandro
Alessandro 2020 年 3 月 29 日
Thanks. Right but I still don't get why the errors I got are making no sense to me
Torsten
Torsten 2020 年 3 月 29 日
There is no such thing as confidence intervals for dependent parameters.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by