P06-Fundamental Theorem of Algebra.mws

High School Modules > Precalculus by Gregory A. Moore

     The Fundamental Theorem of Algebra


Exposition and application of the fundamental theorem of algebra.

[Directions : Execute the Code Resource section first. Although there will be no output immediately, these definitions are used later in this worksheet.]

  0. Code

>    restart;

>    with(plots):

Warning, the name changecoords has been redefined

>    c1 := 'COLOUR(RGB, .32, .32, .64)':
c2 := 'COLOUR(RGB, .4,  .4,  .8 )':
c3 := 'COLOUR(RGB, .48, .48, .96)':

c4 := 'COLOUR(RGB, .64, .16, .16 )':
c5 := 'COLOUR(RGB, .8,  .2,  .2 )':
c6 := 'COLOUR(RGB, .96, .24, .24 )':

>   

  1. Multiple Roots & Basic Concept


Example 1.1 :  

Consider this polynomial and its roots.

>    f := x ->
   (x+5)*(x-1)*((x-7)^2)*((x+4)^3);

f := proc (x) options operator, arrow; (x+5)*(x-1)*(x-7)^2*(x+4)^3 end proc

>    solve( f(x) = 0, x);

1, -5, 7, 7, -4, -4, -4


What are the distinct roots? There are four distinct roots : 1, 7, -4, -5. However, 7 occurs twice, and -4 is repeated a total of 3 times. We say that the root 7 has
multiplicity  of 2, and -4 has multiplicity  3. The multiplicity of a root is the number of times it occurs.The roots 1 and -5 have multiplicity 1.

>    degree(f(x));
expand(f(x));

7

x^7+2*x^6-84*x^5-294*x^4+1731*x^3+9060*x^2+5264*x-15680


Notice this polynomial has degree 7. While f(x) has four distinct roots, it has seven roots if we count each root with its multiplicity.

>    solve( f(x) = 0, x);

1, -5, 7, 7, -4, -4, -4


Notice this polynomial has degree 7. While f(x) has four distinct roots, it has seven roots if we count each root with its multiplicity.


Try to answer the following questions about each example. You will probably discover some rules!

Example 1.2 :  

  - What are the distinct roots of this polynomial?
  - What is the multiplicity of each root?
  - How many roots does it have, counting the multiplcities?
  - What degree is the polynomial?
  - What is the relationship between between the degree and the number of roots counting multiplicities?
  - What is the relationship between the multiplicities of a root, and the exponent on the term containing that root?

>    f := x ->
   ((x-10)^3)*(x-20)*((x-30)^5)*((x-40)^2);

f := proc (x) options operator, arrow; (x-10)^3*(x-20)*(x-30)^5*(x-40)^2 end proc

>    degree(f(x));
sort( expand(f(x)),x);

11

x^11-280*x^10+35000*x^9-2574000*x^8+123520000*x^7-4052600000*x^6+92546000000*x^5-1467300000000*x^4+15788700000000*x^3-109566000000000*x^2+440640000000000*x-777600000000000
x^11-280*x^10+35000*x^9-2574000*x^8+123520000*x^7-4052600000*x^6+92546000000*x^5-1467300000000*x^4+15788700000000*x^3-109566000000000*x^2+440640000000000*x-777600000000000

>    solve( f(x) = 0, x);

20, 40, 40, 10, 10, 10, 30, 30, 30, 30, 30


 
Example 1.3 :  

  - What are the distinct roots of this polynomial?
  - What is the multiplicity of each root?
  - How many roots does it have, counting the multiplcities?
  - What degree is the polynomial?
  - What is the relationship between between the degree and the number of roots counting multiplicities?
  - What is the relationship between the multiplicities of a root, and the exponent on the term containing that root?

>    f := x ->
   ((x-100)^7)*((x-200)^4)*((x-300)^5)*((x-400)^3)*((x-500)^2);

f := proc (x) options operator, arrow; (x-100)^7*(x-200)^4*(x-300)^5*(x-400)^3*(x-500)^2 end proc

>    degree(f(x));
sort( expand(f(x)),x);

21

x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...
x^21-5200*x^20+12690000*x^19-19324000000*x^18+20593300000000*x^17-16326840000000000*x^16+9993481000000000000*x^15-4836979600000000000000*x^14+1880911950000000000000000*x^13-593741356000000000000000000*...

>    solve( f(x) = 0, x);

500, 500, 400, 400, 400, 200, 200, 200, 200, 300, 300, 300, 300, 300, 100, 100, 100, 100, 100, 100, 100



Can you formulate a rule about the connection between the multiplicity of a root and the exponent of its term?

Can you formulate a rule about the degree and total number of roots counting multiplicities?

  2. The Fundamental Theorem of Algebra


    
The Fundamental Theorem of Algebra  :
 
    Every polynomial f(x) has a root r.

Note that this theorem only asserts the existence of a root. It gives no method of finding it. In general, finding roots can be difficult.

Example 2.1 :   Here is a polynomial. The FTA simply states that there is at least one root.

>    f := x -> x^5-3*x^4+x^3+x^2-15*x+9;

f := proc (x) options operator, arrow; x^5-3*x^4+x^3+x^2-15*x+9 end proc

>    f(3);

0

>    'f(x)' = factor(f(x));

f(x) = (x-3)*(x^2+x-1)*(x^2-x+3)

>    plot( f(x), x = -2..3.5, color = c5);

[Maple Plot]


Example 2.2 :   The root, whose existence is guaranteed by the FTA may be a complex number!

>    f := x -> x^4+4*x^2+x+6;

f := proc (x) options operator, arrow; x^4+4*x^2+x+6 end proc

>    r := (-1 + I*sqrt(7) )/2;

r := -1/2+1/2*I*7^(1/2)

>    f(r): % = simplify(%);

(-1/2+1/2*I*7^(1/2))^4+4*(-1/2+1/2*I*7^(1/2))^2+11/2+1/2*I*7^(1/2) = 0

>    'f(x)' = (x-r)*(x-conjugate(r))
         *simplify(  factor(f(x))  / expand((x-r)*(x-conjugate(r))));

f(x) = (x+1/2-1/2*I*7^(1/2))*(x+1/2+1/2*I*7^(1/2))*(x^2-x+3)


 

  3. Repeated Application of the FTA


One is Never Enough ....

If every polynomial has a root, then it can be factored into a product of a linear term and a polynomial of lesser degree. The fundamental theorem of algebra applies to THAT smaller polynomial also!

Example 3.1 :  

>    f := x -> x^4+15*x^3-70*x^2-720*x+2304;

f := proc (x) options operator, arrow; x^4+15*x^3-70*x^2-720*x+2304 end proc

>    'f(3)' = f(3);

f(3) = 0

>    'f(x)' = '(x-3)'* simplify(f(x)/(x-3));

f(x) = (x-3)*(x^3+18*x^2-16*x-768)


We can see from this example that a fourth degree polynomial is factored in a product of a first degree and third degree polynomial. We can call this this third degree polynomial, g(x); and, we can apply the FTA to it.

>    g := 'g':
'f(x)' = (x-3)*g(x);

f(x) = (x-3)*g(x)

>    g := x -> x^3+18*x^2-16*x-768;

g := proc (x) options operator, arrow; x^3+18*x^2-16*x-768 end proc

>    'g(-8)' = g(-8);

g(-8) = 0

>    'g(x)' = '(x+8)'* simplify(g(x)/(x+8));

g(x) = (x+8)*(x^2+10*x-96)


We can also backtrack and express f(x) in an expanded way.

>    'f(x)' = '(x-3)*(x+8)'* simplify(g(x)/(x+8));

f(x) = (x-3)*(x+8)*(x^2+10*x-96)



We can now apply the FTA to the polynomial of degree two when we factor a term off of g(x).

>    h := 'h':
'g(x)' = (x+8)*h(x);

g(x) = (x+8)*h(x)

>    h := x -> x^2+10*x-96;

h := proc (x) options operator, arrow; x^2+10*x-96 end proc

>    'h(6)' = h(6);

h(6) = 0

>    'h(x)' = '(x-6)'* simplify(h(x)/(x-6));

h(x) = (x-6)*(x+16)


We can also backtrack and express f(x) in a completely factored form.

>    'f(x)' = factor(f(x));

f(x) = (x-6)*(x+8)*(x-3)*(x+16)



    
Corollary to the Fundamental Theorem of Algebra  :

    
A polynomial f(x) of degree n can be factored into precisely n linear terms, counting
   multiplicities and allowing for both real and complex roots.

 
This is a simple and useful result that applies to all polynomials!

  4. Complex Roots


As we saw above (in section 1), real roots might be repeated. This is one of the ways that we we can end up with fewer distinct roots than the total number of roots.

Another thing that can happen is that some roots may be complex numbers. You might notice this even in this simple polynomial which has no real roots, but two complex roots.

>    x^2 + 1;

x^2+1


Complex roots come in pairs. You can show this by taking a complex root r = a+ ib, and showing that a -ib is also a root. Thus the number of complex roots is always an even number. And when you multiply two linear factors with complex conjugate roots, the result is a quadratic expression with real coefficients.

>    (x - (a+b*I))*(x - (a-b*I)): % = expand(%);

(x-a-I*b)*(x-a+b*I) = x^2-2*x*a+a^2+b^2

>   

>    (x - (-5 + 3*I))*(x - (-5 - 3*I)): % = expand(%);

(x+5-3*I)*(x+5+3*I) = x^2+10*x+34

>    (x - (71 + sqrt(32)*I))*(x - (71 - sqrt(32)*I)): % = expand(%);

(x-71-4*I*2^(1/2))*(x-71+4*I*2^(1/2)) = x^2-142*x+5073


 This means that polynomials can be factored into real polynomials of degree 1 and/or 2.

  5. Graphical View of Complex and Repeated Roots


A Tale of Three Quintics :  Complex Root Pairs

Let's look at these three fifth degree polynomials. The first one has roots at 1, 2, 3, 4, and 5. The other two are related. The second one is 3 greater, and the third one is 10 greater. Let's look at all three.

>    f := x -> (x-1)*(x-2)*(x-3)*(x-4)*(x-5) ;
g := x -> f(x) + 2;
h := x -> f(x) + 6;

f := proc (x) options operator, arrow; (x-1)*(x-2)*(x-3)*(x-4)*(x-5) end proc

g := proc (x) options operator, arrow; f(x)+2 end proc

h := proc (x) options operator, arrow; f(x)+6 end proc

>    plot( [f(x),g(x),h(x)], x = 0..6, y = -4..10, color = [c1,c2,c3] );

[Maple Plot]


Examine the graph and count how many x intercepts each graph has. You will probably find that f has 5, g has 3, and h has 1 root. We can verify this by solving ....

>    solve( f(x) = 0, x);

1, 2, 3, 4, 5

>    fsolve( g(x) = 0, x);

.9280168256, 4.289839814, 4.895551063

>    fsolve( h(x) = 0, x);

.8234098921


What conclusion can we draw from this? We know that each polynomial, being of 5th degree, has five roots. However, the number of x-intercepts is 5, 3, and 1. Do multiplicities explain the lack of five distinct real roots? Well, no. This is clear because of the two "hills" and two "valleys" that each graph has. The only other way we can be "missing" the full complement of five roots, is they are complex roots. We can conclude ...
          f(x) has five distinct real roots (of multiplicity one each)
          g(x) has three distinct real roots, and one complex root pair.
          h(x) has one distinct real root, and two distinct complex root pairs

>    f := x -> (x-1)*(x-2)*(x-3)*(x-4)*(x-5) ;
g := x -> f(x) + 3;
h := x -> expand(f(x)) + 10;

f := proc (x) options operator, arrow; (x-1)*(x-2)*(x-3)*(x-4)*(x-5) end proc

g := proc (x) options operator, arrow; f(x)+3 end proc

h := proc (x) options operator, arrow; expand(f(x))+10 end proc


However, we don't need to guess or analyze. We can use Maple to verify this.

>    fsolve( g(x) = 0, x, complex);

.8981821909, 2.424999159-.4649188739*I, 2.424999159+.4649188739*I, 4.443915131, 4.807904360

>    fsolve( h(x) = 0, x, complex);

.7449115882, 2.349739682-.9370699874*I, 2.349739682+.9370699874*I, 4.777804524-.4980352577*I, 4.777804524+.4980352577*I





Another Tale of Three Quintics :  Multiplicities



Lets look at these some different variations of that fifth degree polynomial. If we were to change some of the roots to coincide with other roots, we would have multiplicities. Lets examine these functions and their corresponding graphs to learn something about what repeated roots look like when graphed.

>    f := x -> (x-1)*(x-2)*(x-3)*(x-4)*(x-5) ;
g := x -> ((x-3)^2)*(x-1)*(x-2)*(x-5);

f := proc (x) options operator, arrow; (x-1)*(x-2)*(x-3)*(x-4)*(x-5) end proc

g := proc (x) options operator, arrow; (x-3)^2*(x-1)*(x-2)*(x-5) end proc

>    plot( [f(x),g(x)], x = 0..6, y = -10..6, color = [c2,c6],thickness = [2,1]);

[Maple Plot]


The thick blue graph is the original function f(x) having roots 1, 2, 3, 4, and 5. The thin red curve is the polynomial which has roots 1, 2, 3, and 5 where 3 has multiplicity two. Look closely at what happens at 3. The original function, f(x), passes through each of its x-intercepts. However, at 3, g(x) "bounces off of the x axis" rather than pass through. If we examine that point in greater detail, we will see that g(x) looks like a mini-parabola near the point, while f(x) will look more like a line.

>    plot( [f(x),g(x)], x = 2.8..3.2, y = -.1..(.1), color = [c2,c6],thickness = [2,1]);

[Maple Plot]



Here is another example, showing two repeated roots. The graph will show bounces at each of these repeated roots.

>    h := x -> ((x-1)^2)*((x-3)^2)*(x-5);
plot( [f(x),h(x)], x = 0..6, y = -14..6, color = [c2,c5], thickness = [2,1] );

h := proc (x) options operator, arrow; (x-1)^2*(x-3)^2*(x-5) end proc

[Maple Plot]



If we have a root of multiplicity four, and another of one, then there will be a similar bounce.

>    l := x -> ((x-2)^4)*(x-4);
plot( [f(x),l(x)], x = 0..6, y = -4..6, color = [c2,c5], thickness = [2,1] );

l := proc (x) options operator, arrow; (x-2)^4*(x-4) end proc

[Maple Plot]



In this case, one root has multiplicity three. How will the graph look?

>    j := x -> ((x-3)^3)*(x-1)*(x-5);
plot( [f(x),j(x)], x = 0..6, y = -6..6, color = [c2,c5], thickness = [2,1] );

j := proc (x) options operator, arrow; (x-3)^3*(x-1)*(x-5) end proc

[Maple Plot]


Well there is no bounce. j(x) passes through x = 3, just as f(x) does. However, there is still something different. Can you identify it? j(x) flattens out near 3, rather than passing through it as a strong angle.

Will it look like a mini-parabola if we blow it up? No. It will look more like a (negative) mini-cubic!

>    plot( [f(x),j(x)], x = 2.8..3.2, y = -.01..(.01), color=[c2,c5],thickness=[2,1] );

[Maple Plot]


A similar thing happens if we make one root have multiplicity five.

>    k := x -> ((x-3)^5);
plot( [f(x),k(x)], x = 0..6, y = -4..6, color = [c2,c5], thickness = [2,1] );

k := proc (x) options operator, arrow; (x-3)^5 end proc

[Maple Plot]

A similar thing happens if we make one root have multiplicity five.

>    plot( [f(x),g(x),h(x),j(x),k(x),l(x)], x = 0..6, y = -7..7, thickness = 1,
 color = [c1,c2,c3,c4,c5,c6] );

[Maple Plot]


         © 2002 Waterloo Maple Inc