Curve fitting with loglog data

11 visualizzazioni (ultimi 30 giorni)
Manny Kins
Manny Kins il 6 Ago 2021
Commentato: Star Strider il 9 Ago 2021
I am having some issues fitting a curve using polyfit to log data. I think I am making a silly mistake during the fit plotting as the fitting is really bad during the beggining but can't seem to figure it out. Any help would be greatly appreciated! I have attached the data as: msd_help
load('msd_help')
figure()
loglog(s,m)
hold on
linearCoefficients = polyfit((s),(m), 1);
yFit = polyval(linearCoefficients, s);
loglog(s, yFit, 'r-', 'LineWidth', 2)
  1 Commento
Yazan
Yazan il 6 Ago 2021
Modificato: Yazan il 6 Ago 2021
You are not doing anything wrong, and the fitting is working. However, you are plotting the results using a base 10 logarithmic scale. See below the same result plotted using a linear scale.

Accedi per commentare.

Risposta accettata

Star Strider
Star Strider il 6 Ago 2021
Fit it to a power function:
LD = load('msd_help.mat');
m = LD.m;
s = LD.s;
fcn = @(b,x) x.^b(1).*exp(b(2));
B = fminsearch(@(b) norm(m - fcn(b,s)), rand(2,1))
yFit = fcn(B,s);
figure
loglog(s,m,'.')
hold on
plot(s, yFit,'-r')
hold off
grid
producing:
B =
0.867368600071621
-27.933653082691194
and:
.
  6 Commenti
Manny Kins
Manny Kins il 9 Ago 2021
Thanks for your help and insight
Star Strider
Star Strider il 9 Ago 2021
As always, my pleasure!
.

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by