Introduction
Theory
Error Analysis
Examples
Questions
Applications in Engineering
Matlab
Maple

# Introduction

This topic covers some of the properties of polynomials which we will need for
Müller's method.

# Theory

The following are some theorems about polynomials, some of which you have already
seen in this class, others which may be new:

### Theorem 1

A polynomial of degree *n* has *n* roots when you count multiplicity.

### Definition

The complex conjugate of a complex number *z* = *a* + *bj* is the complex number *z*' = *a* - *bj*.
A pair of complex numbers forms a *complex conjugate pair* if they are complex
conjugates of each other, for example, 3 + 4j and 3 - 4j.

### Theorem 2

A polynomial p(*x*) with real coefficients has either real roots, or complex conjugate pairs of
roots.

### Proof

If two roots are complex conjugate pairs *z* = *a* + *bj* and *z*' = *a* - *bj*, then
(*x* - *z*)(*x* - *z*') = (*x* - (*a* + *bj*))(*x* - (*a* - *bj*)) = *x*^{2} - 2*a**x* + *a*^{2} + *b*^{2}.

### Theorem 3

A polynomial p(*x*) with real coefficients and an odd degree has at least one real root.

### Proof

There are multiple proofs, one being argued as follows: if the degree of p(*x*) is odd, then
if p(*x*) → ∞ as *x* → ∞ then p(*x*) → -∞ as *x* → -∞ and
if p(*x*) → -∞ as *x* → ∞ then p(*x*) → ∞ as *x* → -∞. Thus,
in either case, the intermediate value theorem (see the bisection method)
states that there must be at least one point such that
p(*x*) = 0.

A simpler proof using Theorem 2 is as follows: assume all the roots are complex and not
real. Therefore, they must come in complex conjugate pairs. Thus, the number of roots must
be even. Thus, all the roots of an odd polynomial cannot be complex, and therefore one
must be real.

# Error Analysis

To be completed...

# Examples

# Example 1

In Matlab, divide out the root 0.55169 + 1.25335*j* and its complex conjugate from the polynomial
*x*^{5} + 2*x*^{4} + 3*x*^{3} + 4*x*^{2} + 5*x* + 6
without involving complex numbers.

The quadratic which has the two given roots is
(*x* - (0.55169 + 1.25335*j*))(*x* - (0.55169 - 1.25335*j*)) = *x*^{2} - 2 0.55169 *x* + 0.55169^{2} + 1.25335^{2} = *x*^{2} - 1.10338*x* + 1.87525.

This is represented by the vector [1 -1.10338 1.87525], and thus we calculate:

>> roots( [1 2 3 4 5 6] )
ans =
0.55169 + 1.25335i
0.55169 - 1.25335i
-0.80579 + 1.22290i
-0.80579 - 1.22290i
-1.49180 + 0.00000i
>> deconv( [1 2 3 4 5 6], [1 -1.10338 1.87525] )
ans =
1.00000 3.10338 4.54896 3.19962
>> roots( ans )
ans =
-1.49180 + 0.00000i
-0.80579 + 1.22291i
-0.80579 - 1.22291i

The remaining roots are coloured to highlight that they remained unchanged throughout the division.

# Example 2

What happens if you try to divide out values which are not close to the actual
roots? From Example 1, divide out the false root 1 + *j*
and its complex conjugate, i.e., (*x* − (1 + *j*))(*x* − (1 − *j*)) = *x*^{2} − 2*x* + 2.

If we divide out the two given roots, as follows:

>> roots( [1 2 3 4 5 6] )
ans =
0.55169 + 1.25335i
0.55169 - 1.25335i
-0.80579 + 1.22290i
-0.80579 - 1.22290i
-1.49180 + 0.00000i
>> deconv( [1 2 3 4 5 6], [1 -2 2] )
ans =
1 4 9 14
>> roots( ans )
ans =
-2.60752 + 0.00000i
-0.69624 + 2.21005i
-0.69624 - 2.21005i

we note that Matlab will perform the division, but the roots of the solution
are significantly different from the roots of the original polynomial.

# Questions

# Question 1

Divide out the 3 + *j* and its complex conjugate from the polynomial
*x*^{4}− 2**x*^{3}− 12**x*^{2}+ 28**x* + 20.

Answer: *x*^{2} + 4*x* + 2.

# Question 2

Use Matlab to divide out the complex conjugate pair of roots with positive real part
from the polynomial defined by the vector [1 3 5 7 9].

Answer: [1 3.33464 3.65041]

# Applications to Engineering

Suppose a linear system which takes an input signal x(*t*) and converts it into an output signal y(*t*)
according to the ordinary differential equation:

y^{(2)}(*t*) + 2y^{(1)}(*t*) + 3y(*t*) = 4x^{(1)}(*t*) + 5x(*t*)
then the transfer function is defined by the rational polynomial (a ratio of two polynomials):

The properties of this linear system are defined by the location of the roots of the
denominator of this polynomial, in this case, -1 ± 1.414213562*j*.

# Matlab

The function `roots` finds the roots of a polynomial:

>> p = [1 2 3];
>> roots( p )
ans =
-1.00000 + 1.41421i
-1.00000 - 1.41421i
>> p = [1 2 3 4 5 6];
>> roots( p )
ans =
0.55169 + 1.25335i
0.55169 - 1.25335i
-0.80579 + 1.22290i
-0.80579 - 1.22290i
-1.49180 + 0.00000i

Note that the second polynomial, of odd degree, has one real root.

# Maple

The functions `solve` and `fsolve` find the roots of a polynomial.