MATLAB Answers

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

38 views (last 30 days)
Basil Eldeeb
Basil Eldeeb on 25 Feb 2021
Commented: Basil Eldeeb on 2 Mar 2021
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 Comments
Mathieu NOE
Mathieu NOE on 26 Feb 2021
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');

Sign in to comment.

Accepted Answer

Matt J
Matt J on 25 Feb 2021
Edited: Matt J on 25 Feb 2021
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 Comments
Basil Eldeeb
Basil Eldeeb on 2 Mar 2021
I appreciate it, thank you for the help!.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!