How to find a linear approximation on loglog scale?

조회 수: 6 (최근 30일)
Nimrod Daniel
Nimrod Daniel 2014년 1월 17일
댓글: Nimrod Daniel 2014년 1월 17일
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 :)

채택된 답변

Mischa Kim
Mischa Kim 2014년 1월 17일
Hello Daniel, you could log your data before doing the curve fit and take it from there.
  댓글 수: 2
Mischa Kim
Mischa Kim 2014년 1월 17일
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.
Nimrod Daniel
Nimrod Daniel 2014년 1월 17일
Indeed. Thanks !

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Nimrod Daniel
Nimrod Daniel 2014년 1월 17일
Assuming I want to show the linear approx. on the loglog graph:
and not on the log of the values, how should I do it ?

카테고리

Help CenterFile Exchange에서 Linear and Nonlinear Regression에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by