python – Solving a cubic function for second and third degree polynomials?

python – Solving a cubic function for second and third degree polynomials?

First, there are many differences between your cubic function and the equation on the site you link to. Among the most notable:

  1. Your order of operations is off: a line like:

    big = (-1 *( b**3 / 27 * a**3) + (b * c / 6 * a**2) - (d / 2 * a))
    

    should be:

    big = (-1 *( b**3 / (27 * a**3)) + (b * c / (6 * a**2)) - (d / (2 * a)))
    

    otherwise, a term like 27 * a**3 wont end up in the denominator- it will instead be seen as 27 in the denominator and a**3 afterwards.

  2. You never include a cube root, even though there are two in the equation you link to.

  3. You do x * 2 - small, but the two items added together in the equation are not identical- one has a plus sign where the other has a minus.

However, even if you fix all the issues with the function, you will still get a math domain error when trying to solve many cubic equations. Note this paragraph from your link:

But if we apply Cardanos formula to this example, we use a=1, b=0, c=-15, d=-4, and we find that we need to take the square root of -109 in the resulting computation. Ultimately, the square roots of negative numbers would cancel out later in the computation, but that computation cant be understood by a calculus student without additional discussion of complex numbers.

Solving cubic equations requires dealing with complex numbers (though only temporarily- as noted, theyll cancel out), so you cant use math.sqrt to solve it. You might be interested in the cmath package.

python – Solving a cubic function for second and third degree polynomials?

Leave a Reply

Your email address will not be published.