2 views
in Python

I need to make a Python program that will execute a bisection method to decide the foundation (root) of:

f(x) = -26 + 85x - 91x2 +44x3 -8x4 + x5

The Bisection strategy is a mathematical technique for assessing the roots of a polynomial f(x).

Are there any accessible pseudocode, calculations, or libraries I could use to reveal to me the appropriate response?

by (26.4k points)

Look at the below code:

>>> def samesign(a, b):

return a * b > 0

>>> def bisect(func, low, high):

'Find root of continuous function where f(low) and f(high) have opposite signs'

assert not samesign(func(low), func(high))

for i in range(54):

midpoint = (low + high) / 2.0

if samesign(func(low), func(midpoint)):

low = midpoint

else:

high = midpoint

return midpoint

>>> def f(x):

return -26 + 85*x - 91*x**2 +44*x**3 -8*x**4 + x**5

>>> x = bisect(f, 0, 1)

>>> print(x, f(x))

0.557025516287 3.74700270811e-16

Tolerance:

To exit early when a given resistance (tolerance) is accomplished, add a test toward the end of the loop:

def bisect(func, low, high, tolerance=None):

assert not samesign(func(low), func(high))

for i in range(54):

midpoint = (low + high) / 2.0

if samesign(func(low), func(midpoint)):

low = midpoint

else:

high = midpoint

if tolerance is not None and abs(high - low) < tolerance:

break

return midpoint

Are you interested to learn the concepts of Python? Join the python training course fast!