Results 1 to 8 of 8

Math Help - Cubic formula

  1. #1
    Newbie
    Joined
    Aug 2009
    From
    Cork, Ireland
    Posts
    8

    Cool Cubic formula

    I'm writing a program that uses a cubic curve, and I'm trying to find the 4 formulae to give me a, b, c and d for ax3 + bx2 + cx + d = 0 for a set of data points x and y. Any help would be appreciated,

    Thanks,
    J.J.
    Follow Math Help Forum on Facebook and Google+

  2. #2
    Grand Panjandrum
    Joined
    Nov 2005
    From
    someplace
    Posts
    14,972
    Thanks
    4
    Quote Originally Posted by J.J. View Post
    I'm writing a program that uses a cubic curve, and I'm trying to find the 4 formulae to give me a, b, c and d for ax3 + bx2 + cx + d = 0 for a set of data points x and y. Any help would be appreciated,

    Thanks,
    J.J.
    Lets suppose what you really mean is that you have a set of data points that you want to fit to a cubic:

    y=ax^3 + bx^2 + cx + d

    If there are four points when you plug them into the above you get a set of four simultaneous linear equations for a,\ b,\ c,\ d.

    If there are more than four points the look up linear regression.

    CB
    Follow Math Help Forum on Facebook and Google+

  3. #3
    Newbie
    Joined
    Aug 2009
    From
    Cork, Ireland
    Posts
    8

    Cool Cubic Formula

    What I'm trying to find are formulae like these ones:
    (These are the formulae to get a, b + c for ax2 + bx + c = 0 given a set of x and y data points)

    a = (Σy*Σx*Σx3 - Σxy*n*Σx3 - Σy*(Σx2 )2
    + Σxy*Σx*Σx2 + Σx2y*n*x2 Σx2y*(Σx)2)
    / (n*Σx2*Σx4 (Σx)2*Σx4 - n*(Σx3)2 + 2*Σx*Σx2*Σx3 (Σx2)3)

    b = (Σxy*n*Σx4 - Σy*Σx*Σx4 + Σy*Σx2*Σx3
    - Σx2y*n*Σx3 - Σxy*(Σx2)2 + Σx2y*Σx*Σx2)
    / (n*Σx2*Σx4 (Σx)2*Σx4 - n*(Σx3)2 + 2*Σx*Σx2*Σx3 (Σx2)3)

    c = (Σy*Σx2*Σx4 - Σxy*Σx*Σx4 - Σy*(Σx3)2
    + Σxy*Σx2*Σx3 + Σx2y*Σx*Σx3 Σx2y*(Σx2)2)
    / (n*Σx2*Σx4 (Σx)2*Σx4 - n*(Σx3)2 + 2*Σx*Σx2*Σx3 (Σx2)3)
    Follow Math Help Forum on Facebook and Google+

  4. #4
    MHF Contributor

    Joined
    Apr 2005
    Posts
    15,693
    Thanks
    1466
    Apparently, you are looking for the "least squares" cubic that goes "closest" to those points.

    Think of it this way: you are looking for a, b, c, d such that every point (x_1, y_1), (x_2, y_2), \cdot\cdot\cdot, (x_n, y_n) satisfy
    y_1= ax_1^3+ bx_1^2+ cx_1+ d,
    y_2= ax_2^3+ bx_2^2+ cx_2+ d
    \cdot\cdot\cdot
    y_n= ax_n^3+ bx_n^2+ cx_n+ d

    We can write that as the matrix equation, Ax= b:
    \begin{bmatrix}x_1^3 & x_1^2 & x_1 & 1 \\ x_2^3 & x_2^2 & x_2 & 1 \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\x_n^3 & x_n^2 & x_n & 1\end{bmatrix} \begin{bmatrix}a \\ b \\ c \\ d\end{bmatrix}= \begin{bmatrix} y_1 \\ y_2 \\ \cdot\\\cdot\\\cdot\\ y_n\end{bmatrix}.

    Now A is a linear transformation from R^4 to R^n and so maps R^4 into a 4 dimensional subspace of R^n. That equation has a solution only if b happens to lie in that subspace (if the points happen to lie on the graph of a cubic). If not then the best we can do is to find the x in R^4 that is closest to b. That would mean that if x is such, the vector from b to Ax, Ax- b, must be perpendicular to that subspace and so perpendicular to every vector in it. Since every vector in that subspace can be written as Av for some v in R^4 we must have <Av, Ax- b>= 0 where "< , >" is the inner (dot) product in R^n.

    Now, some theory. If A is a linear transformation from vector space U to vector space V, then its "adjoint", A*, is the linear transformation from V back to U such that, for all u in U, v in V, <Au, v>= <u, A*v> where the inner product in V and on the right in U. Here, <Av, Ax-b>= <v, A*(Ax-b)>= 0. But now that inner product on the right is in R^4 and v can be any vector in R^4 since the inner product of A*(Ax- b) with any vector in R^4 (in particular with itself) is 0, we must have A*(Ax- b)= A*Ax- A*b= 0 or A*Ax= A*b and so, if the inverse exists, x= (A^*A)^{-1}A^*b.

    (A^*A)^{-1}A^* (if it exists)- is the "generalized inverse" of A. It can be shown that if A has an inverse, so does A* and (A*A)^{-1}= A^{-1}A*^{-1} so that (A*A)^{-1}A*= A^{-1}A*^{-1}A*= A^{-1}. But even if A does not have an inverse (if it is not square as in this case) (A*A)^{-1} may exist.

    Here, A= \begin{bmatrix}x_1^3 & x_1^2 & x_1 & 1 \\ x_2^3 & x_2^2 & x_2 & 1 \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\x_n^3 & x_n^2 & x_n & 1\end{bmatrix} so A*= \begin{bmatrix}x_1^3 & x_2^3 & \cdot\cdot\cdot\ x_n^3 \\ x_1^2 & x_2^2 & \cdot\cdot\cdot x_n^2 \\ x_1 & x_2 & \cdot\cdot\cdot x_n \\ 1 &  1 & \cdot\cdot\cdot 1 \end{bmatrix}
    and that A^*A= \begin{bmatrix}\sum x_n^6 & \sum x_n^5 & \sum x_n^4 & \sum x_n^3 \\ \sum x_n^5 & \sum x_n^4 & \sum x_n^3 & \sum x_n^2 \\ \sum x_n^4 & \sum x_n^3 & \sum x_n^2 & \sum x_n \\ \sum x_n^3 & \sum x_n^2 & \sum x_n & n\end{bmatrix}.

    Also A^*b= \begin{bmatrix}\sum x_n^3y_n \\ \sum x_n^2y_n \\ \sum x_ny_n \\ \sum y_n\end{bmatrix}

    Now, the tedious part is to find the inverse of that 4 by 4 matrix. That's going to involve some really messy formulas that I don't want to have to calculate! But once you have done that, a, b, c, and d are given by the components of [(A^*A)^{-1}][A^* b].
    Last edited by mr fantastic; September 8th 2009 at 01:43 AM. Reason: Fixed a couple of minor latex things - nice work in this post, HoI
    Follow Math Help Forum on Facebook and Google+

  5. #5
    Newbie
    Joined
    Aug 2009
    From
    Cork, Ireland
    Posts
    8

    Cool Cubic Formula

    The problem with matices is that I'm going to be writing the formulae into a computer program, which can't solve matrices, which is why I was looking for formulae like the ones above. Even a link with something that could help would be appreciated.

    Thanks,
    J.J.
    Follow Math Help Forum on Facebook and Google+

  6. #6
    Grand Panjandrum
    Joined
    Nov 2005
    From
    someplace
    Posts
    14,972
    Thanks
    4
    Quote Originally Posted by HallsofIvy View Post
    Apparently, you are looking for the "least squares" cubic that goes "closest" to those points.

    Think of it this way: you are looking for a, b, c, d such that every point (x_1, y_1), (x_2, y_2), \cdot\cdot\cdot, (x_n, y_n) satisfy
    y_1= ax_1^3+ bx_1^2+ cx_1+ d,
    y_2= ax_2^3+ bx_2^2+ cx_2+ d
    \cdot\cdot\cdot
    y_n= ax_n^3+ bx_n^2+ cx_n+ d

    We can write that as the matrix equation, Ax= b:
    \begin{bmatrix}x_1^3 & x_1^2 & x_1 & 1 \\ x_2^3 & x_2^2 & x_2 & 1 \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\x_n^3 & x_n^2 & x_n & 1\end{bmatrix} \begin{bmatrix}a \\ b \\ c \\ d\end{bmatrix}= \begin{bmatrix} y_1 \\ y_2 \\ \cdot\\\cdot\\\cdot\\ y_n\end{bmatrix}.

    Now A is a linear transformation from R^4 to R^n and so maps R^4 into a 4 dimensional subspace of R^n. That equation has a solution only if b happens to lie in that subspace (if the points happen to lie on the graph of a cubic). If not then the best we can do is to find the x in R^4 that is closest to b. That would mean that if x is such, the vector from b to Ax, Ax- b, must be perpendicular to that subspace and so perpendicular to every vector in it. Since every vector in that subspace can be written as Av for some v in R^4 we must have <Av, Ax- b>= 0 where "< , >" is the inner (dot) product in R^n.

    Now, some theory. If A is a linear transformation from vector space U to vector space V, then its "adjoint", A*, is the linear transformation from V back to U such that, for all u in U, v in V, <Au, v>= <u, A*v> where the inner product in V and on the right in U. Here, <Av, Ax-b>= <v, A*(Ax-b)>= 0. But now that inner product on the right is in R^4 and v can be any vector in R^4 since the inner product of A*(Ax- b) with any vector in R^4 (in particular with itself) is 0, we must have A*(Ax- b)= A*Ax- A*b= 0 or A*Ax= A*b and so, if the inverse exists, x= (A^*A)^{-1}A^*b.

    (A^*A)^{-1}A^* (if it exists)- is the "generalized inverse" of A. It can be shown that if A has an inverse, so does A* and (A*A)^{-1}= A^{-1}A*^{-1} so that (A*A)^{-1}A*= A^{-1}A*^{-1}A*= A^{-1}. But even if A does not have an inverse (if it is not square as in this case) (A*A)^{-1} may exist.

    Here, A= \begin{bmatrix}x_1^3 & x_1^2 & x_1 & 1 \\ x_2^3 & x_2^2 & x_2 & 1 \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\\cdot & \cdot & \cdot & \cdot \\x_n^3 & x_n^2 & x_n & 1\end{bmatrix} so A*= \begin{bmatrix}x_1^3 & x_2^3 & \cdot\cdot\cdot\ x_n^3 \\ x_1^2 & x_2^2 & \cdot\cdot\cdot x_n^2 \\ x_1 & x_2 & \cdot\cdot\cdot x_n \\ 1 &  1 & \cdot\cdot\cdot 1 \end{bmatrix}
    and that A^*A= \begin{bmatrix}\sum x_n^6 & \sum x_n^5 & \sum x_n^4 & \sum x_n^3 \\ \sum x_n^5 & \sum x_n^4 & \sum x_n^3 & \sum x_n^2 \\ \sum x_n^4 & \sum x_n^3 & \sum x_n^2 & \sum x_n \\ \sum x_n^3 & \sum x_n^2 & \sum x_n & n\end{bmatrix}.

    Also A^*b= \begin{bmatrix}\sum x_n^3y_n \\ \sum x_n^2y_n \\ \sum x_ny_n \\ \sum y_n\end{bmatrix}

    Now, the tedious part is to find the inverse of that 4 by 4 matrix. That's going to involve some really messy formulas that I don't want to have to calculate! But once you have done that, a, b, c, and d are given by the components of [(A^*A)^{-1}][A^* b].
    Just in passing I will point out that this is linear regression.

    CB
    Follow Math Help Forum on Facebook and Google+

  7. #7
    Newbie
    Joined
    Aug 2009
    From
    Cork, Ireland
    Posts
    8

    Cool Cubic Formula

    To be honest, I'm don't know a lot about matrices, and it's been a while since I did anything involving matrices.
    Follow Math Help Forum on Facebook and Google+

  8. #8
    Newbie
    Joined
    Aug 2009
    From
    Cork, Ireland
    Posts
    8

    Cool

    Say there are 4 x and y values called x1, x2, x3, x4 etc. For the first term of the A*A matrix, is that (x1^6 + x2^6 + x3^6 + x4^6) or
    (x1 + x2 + x3 + x4)^6? Similarly, for the the A*b matrix, is that (x1^3 + x2^3 + x3^3 + x4^3)*(y1 + y2 + y3 + y4) or ((x1 + x2 + x3 + x4)^3)*(y1 + y2 + y3 + y4) or (x1^3*y1 + x2^3*y2 + x3^3*y3 + x4^3*y4)?
    (It's been a while since I did maths using notation like this)
    Follow Math Help Forum on Facebook and Google+

Similar Math Help Forum Discussions

  1. Replies: 4
    Last Post: July 15th 2011, 01:30 PM
  2. Replies: 1
    Last Post: October 15th 2010, 04:28 PM
  3. cubic formula
    Posted in the Algebra Forum
    Replies: 3
    Last Post: August 23rd 2008, 02:22 AM
  4. Derive the Cubic formula
    Posted in the Algebra Forum
    Replies: 10
    Last Post: April 20th 2008, 08:32 AM
  5. calc cubic formula
    Posted in the Calculus Forum
    Replies: 1
    Last Post: March 18th 2008, 07:19 PM

Search Tags


/mathhelpforum @mathhelpforum