Factoring Quartic Expressions with No Real ZerosDate: 07/19/2009 at 00:23:14 From: John Subject: Factoring Quartic Expressions with No Real Zeros I know that x^4 + 7x^2 - 2x + 15 = (x^2 - x + 3)(x^2 + x + 5) because I got the quartic expression by multiplying the two quadratic expressions together. But if I were simply given the quartic expression and told to factor it, how would I proceed? I would start by trying to find the real zeros of the quartic expression, but I would not find any and then I would be stuck. Date: 07/19/2009 at 06:10:29 From: Doctor Jacques Subject: Re: Factoring Quartic Expressions with No Real Zeros Hi John, It depends on what you want to do. The "easy" case is when you want simply a real factorization: given a real polynomial f(x), write it as a product of real polynomials of degree at most 2; the coefficients of the factor need not be rational. The other possibility is that you want to factor f(x) as a product of irreducible polynomials with rational coefficients. This assumes that the coefficients of f(x) are integers (or rational numbers--in that case, you can multiply f(x) by a suitable integer to get integer coefficients). The first case is rather easy: you can compute all the complex roots of the polynomial numerically, using an iterative method like Newton-Raphson (for real roots), Bairstow (for pairs of complex roots), or Duran-Kerner (to get all the roots together). There are many such methods, see for example: Wikipedia: Root-finding algorithm http://en.wikipedia.org/wiki/Root-finding_algorithm You can then regroup pairs of complex conjugate roots into quadratic factors (if you use Bairstow's method, you already have the quadratic factors). Note that, even if your initial polynomial has integer coefficients, the factors may be irrational. From now on, I will assume that you are interested in the second problem, i.e., to get a factorization into polynomials with rational coefficients. In general, this is a hard and computation intensive problem: it is possible to factor polynomials of rather high degree (or to prove them irreducible), but there is no way you could do this by hand... There is a theorem of Gauss that says that, if f(x) is a polynomial with integer coefficients, and f(x) = g(x)*h(x) is a factorization into rational polynomials, there is a factorization f(x) = g1(x)*h1(x) where g1(x) and h1(x) have integer coefficients: this means that you can cancel denominators in g(x) with common factors in h(x), and conversely. This allows us to deal only with integers, which is quite convenient. There are a few things that you can do to simplify the problem. Obviously, as we are interested in the equation f(x)=0, you can always cancel any common integer factor of the coefficients of f(x) (you would have to put those factors back at the end if you want the complete factorization). Compute the polynomial GCD of f(x) and its derivative f'(x); call this d(x). If d(x) is not a constant, f(x) is divisible by (d(x))^2. You can then repeat the process with d(x) and the quotient f(x)/(d(x)^2). This will result in one or more polynomials with no multiple roots. Using a substitution of the form x = ky, you can transform f(x) into a polynomial g(y) whose first coefficient is 1 (such a polynomial is called monic). The interesting point is that f(x) is reducible if and only if g(y) is, and the factors of g(y) will also be monic polynomials with integer coefficients. Let us look first at the simple cases. If f(x) has degree 3, it has at least one real root. If that root is rational (it will be an integer if f(x) is monic), you can find it using the rational root theorem. If there is no rational root, f(x) is irreducible. If the constant term of f(x) has many divisors, the rational root theorem can be quite time-consuming. If f(x) is monic, another method would be to use Newton's method to find a real root. If that root is rational, it will be an integer, and you can check if the result given by Newton's method is "close enough" to an integer (within the precision of the method). For example, if Newton's method gives you a root equal to 3.0000002, you may very well suspect that the root is actually 3. You would then substitute x = 3 in the polynomial and check if the result is 0; this can be done exactly, since we are dealing with integers. If f(x) is monic and has degree 4, you should first try to an integer root using the technique above. If you find one, you are reduced to the previous case. If you find none, the only remaining possibilities are that f(x) is irreducible or is the product of two irreducible quadratics: f(x) = (x^2 + px + q)(x^2 + rx + s) The idea is now to compare the coefficients. If f(x) = x^4 + ax^3 + bx^2 + cx + d this gives the relations: a = p + r b = pr + q + s c = ps + qr d = qs Note that, if a = 0, the above system can be simplified: p = -r b = -p^2 + q + s c = p(s-q) d = qs [1] where p, q, r, and s must be integers. You can easily find integer solutions of that system by looking at the possible factorizations of d = qs. If there is no solution, the polynomial is irreducible. Note that you can interchange p and r, and q and s, since this swaps the two factors. If we try that on your example: f(x) = x^4 + 7x^2 - 2x + 15 we first look at two factors of 15 whose difference divides -2. This easily gives q = 3, s = 5. We find next: p = c/(s-q) = -1 and we check that: b = 7 = -((-1)^2) + 3 + 5 which confirms that we found a factorization (remember that r = -p = 1). What if a is not 0? In that case, you can make a further substitution x = y - a/4, which will eliminate the x^3 term. Note that you will probably need to make a further substitution to get a monic polynomial. You can also do the substitutions in a different order; this is best illustrated by an example. In the general case, this method can produce huge coefficients, I will try to find an example which gives reasonable coefficients; this will show you how the method works in the general case. f(x) = 2*x^4 + 16*x^3 + 13*x^2 - 26*x + 5 [2] We will try to factor f(x), ignoring constant factors; these factors will be re-inserted back at the end, when we will check the factorization. We start by getting rid of the x^3 term. In this case, we let x = y - 16/(4*2) = y - 2 [3] that is: x = y - (coeff of x^3)/(4*coeff of x^4) Substituting into [2], we find the polynomial g(y) = 2*y^4 - 35*y^2 + 50*y + 13 [4] This polynomial has integer coefficients, because I chose the coefficients to have an integer constant in [3]; in the general case, you would have to multiply by the common denominator. Notice that this polynomial has no term in x^3. To make that polynomial monic, we use the substitution: y = z/2 [5] that is, y = z/(coeff of x^4) which gives the polynomial: h(z) = z^4/(2^3) - (35/(2^2)*z^2 + (50/2)*z + 13 We multiply by 2^3 to get rid of the denominators: h1(z) = z^4 - 70*z^2 + 200*z + 104 [6] This polynomial is now ready for the method explained before. We look at a pair of factors of 104 whose difference divides 200. A little trial and error produces two candidates: 104 = 2*52 52 - 2 = 50 104 = 8*13 13 - 8 = 5 and the solutions obtained by changing all the signs (don't forget that...). With reference to [1], the first case gives p = 4, and the second case gives p = 40. As we must have: b = -70 = -p^2 + q + s we see that the only solution is: s = -52, q = -2, p = -4, q = 4 and we have the factorization: h1(z) = (z^2 - 4*z - 2)*(z^2 + 4*z - 52) [7] To get a factorization of the original f(x), we have to reverse the substitutions [3] and [5], which gives: z = 2y = 2x + 4 [8] Using that substitution, the factors of h1 become: (4*x^2 + 8*x - 2)(4*x^2 + 24*x - 20) and, by comparing the coefficients of x^4, we divide this by 8, and this gives the factorization: f(x) = (2*x^2 + 4*x - 1)(x^2 + 6*x - 5) This method cannot be easily extended to polynomials of degree greater than 4. For such polynomials, there are other methods (which can also be used for degree 4), but these methods usually involve a lot of computational work with very large numbers. If you are interested, I may try to give you the basic ideas behind these methods. By the way, for a monic polynomial of degree 4 (or even 5), you can use an idea I mentioned before: * Check for rational roots. * Compute numerical approximations of all the roots (including the complex roots). * Look at all the pairs of roots (for complex roots, take the complex conjugates together). * For each such pair, compute the corresponding quadratic polynomial. If the coefficients of that polynomial are "close enough" to integers, replace them by the closest integers and use polynomial long division to check for a possible factor. Please feel free to write back if you want to discuss this further. - Doctor Jacques, The Math Forum http://mathforum.org/dr.math/ |
Search the Dr. Math Library: |
[Privacy Policy] [Terms of Use]
Ask Dr. Math^{TM}
© 1994- The Math Forum at NCTM. All rights reserved.
http://mathforum.org/dr.math/