How do I write the Exponential Decay in Matlab?

2 vues (au cours des 30 derniers jours)
RedThermos
RedThermos le 10 Oct 2016
Commenté : RedThermos le 11 Oct 2016
What I need to do is plot the exponential decay using the given matrix and the formula y=a e^-bx I believe I have to write the formula in a different way using log but I do not understand how in matlab.
code:
%given matrix
x=[0;1;2;3;4;5;6]
y=[32;47;65;92;132;190;275]
n=size(x);
x1=[ones(n(1),1) x]
x1'
b=inv(y)*(log(x1)-log(y'));
yp=b(1)+b(2)*x;
sx=((sum((x-mean(x)).^2))/(n(1)-1))^.5
std(x)
sy=((sum((y-mean(y)).^2))/(n(1)-1))^.5
std(y)
sxy=(sum((x-mean(x)).*(y-mean(y))))/(n(1)-1)
corr=sxy/(sx*sy)
covar=cov(x,y)
corr=covar(1,2)/(sx*sy)
plot(x,y,'o',x,yp,'-')
legend(['a=',num2str(b(1)),' b=',num2str(corr)]);
  1 commentaire
KSSV
KSSV le 10 Oct 2016
b=inv(y)*(log(x1)-log(y'));
y is a vector, you cannot get its inverse.

Connectez-vous pour commenter.

Réponse acceptée

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam le 10 Oct 2016
Here is your solution for exponential regression:
x=[0;1;2;3;4;5;6]
y=[32;47;65;92;132;190;275]
c=[ones(size(x)) x]\log(y);
a=exp(c(1));
b=-c(2);
xp=linspace(min(x),max(x),1000);
yp=a.*exp(-b.*xp);
plot(x,y,'o',xp,yp,'-')
legend(['a=',num2str(a),' b=',num2str(b)]);
  1 commentaire
RedThermos
RedThermos le 11 Oct 2016
Thanks so much for the help. I greatly appreciate it.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Particle & Nuclear Physics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by