38 views (last 30 days)

Show older comments

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')

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');

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

Start Hunting!