How to find the optimum intercept by fixing the gradient as a fit to experimental data?

1 Ansicht (letzte 30 Tage)
I have a set of experimental data that share the relationship: y = A.x^n
I plot my data log y vs log x. The gradient is n and intercept is log(A) which I can obtain from the polyfit function.
I now want to fix the value of n and find the most optimum value of A by some kind of least squares algorithm with respect to the experimental data.
What is the best way to do this?
Thank you

Akzeptierte Antwort

Torsten
Torsten am 15 Jan. 2019
Bearbeitet: Torsten am 15 Jan. 2019
Use polyfit to fit a polynomial of degree 0 against log(y) - n*log(x) and take exp() of the result.
This gives you optimal A for given n.
Solution is
A = exp( mean( log(y) - n*log(x) ) )
  2 Kommentare
HaAgain
HaAgain am 15 Jan. 2019
Yes! That makes a lot of sense based on analytical solution.
thank you
Torsten
Torsten am 15 Jan. 2019
Bearbeitet: Torsten am 16 Jan. 2019
Or
A = sum(x.^n.*y)/sum(x.^(2*n))
for the original equation.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Linear and Nonlinear Regression finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by