College

Write a computer program using any language of your choice to implement Bairstow's method for finding the roots of a given polynomial function.

**Program Input:**
- Degree of the polynomial function
- Coefficients of the polynomial function

**Program Output:**
- Echo print of the input data
- Bairstow's table for each quadratic factor
- First Table
- Middle Table
- Final Table: [tex]x^2 + U_kx + V_k[/tex]

**Iteration Condition:**
- [tex]|b_n| < 0.001[/tex] and [tex]|b_{n-1}| < 0.001[/tex]

**Test Data:**
1. [tex]x^4 + 2x^3 + 3x^2 + 4x + 4 = 0[/tex]
2. [tex]x^6 + 8x^5 + 25x^4 - 32x^3 - x^2 + 40x + 25 = 0[/tex]
3. [tex]x^8 + 7x^7 + 39x^6 + 37x^5 + 446x^4 - 180x^3 - 1928x^2 - 256x + 1920 = 0[/tex]
- Answer: -2, -2, -2, 4, 4, 1, 3, -5
4. [tex]x^8 + 7x^7 - 11x^6 + 41x^5 - 183x^4 + 231x^3 + 21x^2 - 265x + 150 = 0[/tex]

Answer :

This program takes the degree and coefficients of a polynomial function as input. It implements Bairstow's method to find the roots of the polynomial and prints the intermediate tables for each quadratic factor. Finally, it prints the linear and constant factors.

Here's an example program written in Python that implements Bairstow's method for finding the roots of a polynomial function:

```python

def bairstow(degree, coefficients):

n = degree

b = [0] * (n + 1)

c = [0] * (n + 1)

# Initialize the coefficients of b and c

for i in range(n + 1):

b[i] = coefficients[i]

c[0] = b[0]

# Bairstow's method iterations

while n > 2:

u = v = du = dv = 0

e = 1.0

while e > 0.0001:

b[n - 1] += du

b[n] += dv

for i in range(n - 1, 1, -1):

b[i - 1] += u * b[i] + du

c[i] = b[i] + u * c[i + 1] + v * c[i + 2] + dv

b[0] += u * b[1] + du

c[1] = b[1] + u * c[2] + v * c[3] + dv

det = c[2] * c[2] - c[1] * c[3]

du = (-b[0] * c[2] + b[1] * c[1]) / det

dv = (-b[1] * c[2] + b[0] * c[3]) / det

u += du

v += dv

e = abs(du) + abs(dv)

print(f"\nITERATION: Degree {n}")

print(f"b: {b[:n+1]}")

print(f"c: {c[:n+1]}")

# Print the quadratic factor

print("Quadratic Factor:")

print(f"x² + {u:.4f}x + {v:.4f}")

n -= 2

# Print the linear and constant factors

if n == 2:

print("\nLinear Factor:")

print(f"x + {b[1]:.4f}")

if n == 1:

print("\nConstant Factor:")

print(f"{b[0]:.4f}")

# Test cases

polynomials = [

[1, 2, 0, 3, 4],

[6, 8, 5, -32, -1, 40, 0, 0, 25],

[8, 739, 37, 446, -180, -1928, -256, 1920],

[7, -11, 41, -183, 231, 21, -265, 150]

]

for i, polynomial in enumerate(polynomials):

degree = len(polynomial) - 1

print(f"\nTest case {i+1}:")

print("Polynomial coefficients:", polynomial)

bairstow(degree, polynomial)

```

This program takes the degree and coefficients of a polynomial function as input. It implements Bairstow's method to find the roots of the polynomial and prints the intermediate tables for each quadratic factor. Finally, it prints the linear and constant factors.

You can run this program with the provided test cases or modify it to input your own polynomial coefficients.

Learn more about polynomial here

https://brainly.com/question/30703661

#SPJ11