Hello , I am dealing with linear least square regression

2 visualizaciones (últimos 30 días)
Charitha Heshan
Charitha Heshan el 16 de Mzo. de 2018
Comentada: Charitha Heshan el 18 de Mzo. de 2018
.I successfully found the coefficients for the quadratic function as follows.
function [a2,a1,a0] = QuadraticRegression (x,y)
x=[10 15 25 40 50 55];
y=[94 116 147 183 215 220];
n = length (x)
sx = sum(x)
sy = sum(y)
sx2 = sum(x.^2)
sx3 = sum(x.^3)
sx4 = sum(x.^4)
sxy = sum(x.*y)
sx2y= sum(x.*x.*y)
A = [ n sx sx2; sx sx2 sx3;sx2 sx3 sx4]
b = [sy;sxy;sx2y]
w= A\b
a2 = w(3)
a1 = w(2)
a0 = w(1)
% code
end*
func(y) = -0.0170 x.^2 + 3.8870 x + 59.0062
now i'm suppose to fit the above data into a power function as follows : y = Q (x.^M) Where Q and M are coefficients.
and went through Youtube and google before i posted my question here. I see no method mentions in the any of the resources. Please give me some clues. Thanks
  1 comentario
David Goodmanson
David Goodmanson el 16 de Mzo. de 2018
Hi Charitha,
try taking the logarithm of both sides and using the rule for log(C*x^m) in terms of log(C), m and log(x). That should give you an equation you can fit for two new arrays, logy = log(y) vs. logx = log(x).

Iniciar sesión para comentar.

Respuesta aceptada

Torsten
Torsten el 16 de Mzo. de 2018
Editada: Torsten el 16 de Mzo. de 2018
y = Q*x^M => log(y) = log(Q) + M*log(x)
Thus take "log" of your x- and y-data and fit them by a linear function
y~ = a+b*x~
where
y~=log(y) and x~=log(x).
Once you have determined a and b, Q=exp(a) and M=b.
Another possibility is to use "lsqcurevfit" directly on the nonlinear function y = Q*x^M.
This will give slightly different fit parameters for Q and M because taking the log of x and y and making a linear fit as suggested above somehow distorts the data.
Best wishes
Torsten.

Más respuestas (0)

Categorías

Más información sobre Linear and Nonlinear Regression en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by