Re: question on method of least squares for sideways parabolas

Karim Belabas <[email protected]>
Newsgroups gmane.comp.mathematics.pari.user
Message-ID <[email protected]>
Hi Randall,

  I'm not sure what you're trying to achieve.

1) Here's a general (linear) least square regression, where you expect 
  y ~ sum_i a[i] * F[i](x)
for some known functions F[i] and want the best a[i] wrt least square error.

least_squares(X, Y, F) =
{ my(M = matrix(#X,#F, i,j, F[j](X[i]))); matsolve(M~ * M, M~ * Y); }

Toy example with some random functions and evaluation points:
  F = [x->sqrt(x+3), x->log(x+2), x->exp(x)+1];
  A = [1.2, 2.3, -3.5];
  f(x) = A * vectorv(#F, j, F[j](x)); \\ my "unknown" linear combination

  X = vectorv(10, i, random(1.));
  Y = apply(f, X);
  least_squares(X, Y, F) \\ requested coefficients

%1 = [1.1999999999999999999999999999999999660, 2.3000000000000000000000000000000001834, -3.5000000000000000000000000000000000383]~

Your implementation is basically least_squares(X, Y, [x->1, x->x, x->x^2])

2) once you have found the (a,b,c) coefficients, I guess you want to predict
some y given x ~ ay^2 + by + c ? I don't see what else you can do than
solving for y (e.g. using the Formula given by Maxima, which is
essentially what polroots is doing).

Cheers,

    K.B.
-- 
Pr. Karim Belabas, U. Bordeaux, Vice-président en charge du Numérique
Institut de Mathématiques de Bordeaux UMR 5251 - (+33) 05 40 00 29 77
http://www.math.u-bordeaux.fr/~kbelabas/

* American Citizen [2025-06-09 00:00]:
> Hello:
> 
> There are many websites showing how to use the method of least squares for
> solving for a parabola and this is standard fare in many college textbooks,
> but my problem is a bit different and a casual search on the internet turned
> up nothing (for me)
> 
> The standard method has
> 
> M = [ n, sum(xi), sum(xi^2) ; sum(xi), sum(xi^2), sum(xi^3); sum(xi^2),
> sum(xi^3), sum(xi^4)]
> 
> B = [ sum(yi), sum(yi xi), sum(yi xi^2) ]~
> 
> X = matsolve(M,B)
> 
> which solves y = ax^2 + bx + c for the vertical parabola
> 
> My parabola is the sideways positive x-axis parabola: x = ay^2 + by + c
> (limited to 1st and 4th quadrants)
> 
> Currently I am solving for a,b,c as i M above, but transposing the xi and yi
> values in both M and B and then solving for Y (not X)
> 
> Then having found a,b,c I take real(polroots(ay^2+by+c - x)[2]) where x is
> my value to find the corresponding y value for (not using y to find x, but
> going backwards x-> y)
> 
> Maxima shows that solving x = ay^2 + by + c and solving for y as
> 
> y = +/- (sqrt(4ax-4ac+b^2)-b)/(2a) but I don't know how to do least squares
> on a rational surd expression such as this to obtain a,b,c
> 
> Is my method basically the best way to do this?
> 
> Randall
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.