How to find a linear approximation on loglog scale?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Nimrod Daniel
le 17 Jan 2014
Commenté : Nimrod Daniel
le 17 Jan 2014
Hello,
I have two data vectors and a loglog plot of a frequency as a function of mass, and I want to do a linear approximation on the loglog scale.
mass=[8.55 3.08 3.24 1.23 0.418 0.155 0.035 0.122 0.133 2.23 1.69 0.89 0.61 0.437 8.5];
frequency= [2.49 2.97 3.14 3.93 5.61 5.42 7.65 12.3 12.3 5.85 3.95 3.46 6.35 7.62 3.56];
loglog(freq,mass,'.b');
I tried using the basic fitting tool, but I'm not getting a linear approx. on the loglog plot. Maybe polyfit could help here ? how do I do the linear approx. in the loglog scale case ?
Thanks :)
0 commentaires
Réponse acceptée
Mischa Kim
le 17 Jan 2014
Hello Daniel, you could log your data before doing the curve fit and take it from there.
2 commentaires
Mischa Kim
le 17 Jan 2014
freq= [2.49 2.97 3.14 3.93 5.61 5.42 7.65 12.3 12.3 5.85 3.95 3.46 6.35 7.62 3.56];
mass=[8.55 3.08 3.24 1.23 0.418 0.155 0.035 0.122 0.133 2.23 1.69 0.89 0.61 0.437 8.5];
loglog(freq,mass,'.b');
lfreq = log(freq);
lmass = log(mass);
p = polyfit(lfreq, lmass, 1);
x_fitlin = linspace(0,4,2);
y_fitlin = p(1)*x_fitlin + p(2);
x_fitlog = exp(x_fitlin);
y_fitlog = exp(y_fitlin);
hold on
plot(x_fitlog,y_fitlog,'r')
Is that what you are looking for? First, log the data, then do the curve fit. In this case a polynomial of degree 1 (linear approx.). Once you have the coefficients you need to un-do the log, that's where the exp comes into play.
Plus de réponses (1)
Voir également
Catégories
En savoir plus sur Log Plots 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!