Curve to fit a loglog graph and its equation

3 Ansichten (letzte 30 Tage)
Khishendran Mahendran
Khishendran Mahendran am 23 Aug. 2020
Kommentiert: Uygur Kinay am 7 Apr. 2022
i have write a code for my given set of data and could not figure how to get a curve line to fit it with an equation
this is the code i have writen with the data points
y=[0.02521 0.47575 0.035403 0.03479 0.025683 0.025397 0.021046];
x=[0 0.5 1 1.5 2 2.5 3];
y=y./1000;
loglog(x.',y.','o')
hold on
f=polyfit(log(x),log(y),1);
fity=polyval(f,log(x));
loglog(x,exp(fity))
  2 Kommentare
Sam Chak
Sam Chak am 23 Aug. 2020
There are only 7 points, so probably insufficient to produce a good fitting. Try to obtain more data points.
This is just one of many possible equations to fit the 7 points:
Goodness of fit:
  • SSE: 0.0001094
  • R-square: 0.9994
  • Adjusted R-square: 0.9992
  • RMSE: 0.004677
Uygur Kinay
Uygur Kinay am 7 Apr. 2022
I have 30 data for the equation and I got two equations in excel one is polynominal and other is logoritmic equation.
How we can do it on matlab,Could you guide me?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Thiago Henrique Gomes Lobato
There are some issues with your fit. First, log(0) is not defined, so what you expect to become from a fit that uses log(0)? If you really want to use this point to a logarithmic fit you have to make some consideration like calculating log(x+eps) instead of log(x), although this will unlikely lead to a reasonable model. Second, what type of function you think you have? The second y value has a way higher value than all others, it is an outlier/measurement error that needs to be removed? Or you are modelling a probability function and there is the peak? If so, why use a 1 degree exponential function and not a probability function such as a gaussian to model it?
If you don't define what type of model you're expecting to have it doesn't make much sense to make a fit on it.

Community Treasure Hunt

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

Start Hunting!

Translated by