MATLAB Answers

exp(-b/x) fit, inf problem when fitting

38 ビュー (過去 30 日間)
Basil Eldeeb
Basil Eldeeb 2021 年 2 月 25 日
コメント済み: Basil Eldeeb 2021 年 3 月 2 日
I am trying to fit some data with the model: exp(-b/x); When x goes to zero, y should go to zero as well since anything power negative infinity is zero. However Matlab sees the infinity and terminates everything. Here is my code:
vv=data(:,1);
ii=data(:,2);
g = fittype('exp(-b/x)');
f0 = fit(vv,ii,g);
xx = linspace(-1,1);
plot(vv,ii,'o',xx,f0(xx),'r-');
grid('on')
  5 件のコメント
Mathieu NOE
Mathieu NOE 2021 年 2 月 26 日
not sure it's really a good model...
data = readmatrix('data.txt');
x = data(:,1);
y = data(:,2);
% exponential fit method
% model : y = exp(-b/x)
f = @(b,x) exp(b./x);
obj_fun = @(params) norm(f(params(1), x)-y);
sol = fminsearch(obj_fun, -0.1);
b_sol = sol(1)
y_fit = f(b_sol, x);
figure
plot(x,y,'r',x,y_fit,'-.k');
legend('data','exp fit');

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

採用された回答

Matt J
Matt J 2021 年 2 月 25 日
編集済み: Matt J 2021 年 2 月 25 日
When x goes to zero, y should go to zero as well since anything power negative infinity is zero.
Only if b>=0.
g = fittype('exp(-b/x)', 'options', fitoptions('Lower',0) );
  5 件のコメント
Basil Eldeeb
Basil Eldeeb 2021 年 3 月 2 日
I appreciate it, thank you for the help!.

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

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by