My question is can I write this code in a different and easier way .? Python code: # there is only one root def fn(x): return x**3 - x 2 # define bisection method def bisection( eq, segment, app 0.3): a, b = segment['a'l, segment['b'1 Fa, Fb = eq(a), eq(b) if Fa Fb > 0: raise Exception( 'No change of sign bisection not possible') while( b a > app ): x = ( a + b) / 2.0 f eq(x) if f * Fa > 0: a x else: b = x %3D return x #test it print bisection ( fn, {'a':1, 'b':2}, 0.00003)
write this code in a different and easier way
The easier presentation of given Python code:
def fn(x):
return x**3 - x - 2
# define bisection method
def bisection(segment, app=0.3):
a, b = segment['a'], segment['b']
if (fn(a) * fn(b) >= 0):
raise Exception('No change of sign- bisection not possible')
x = a
while ((b-a) > app):
# compute middle point
x = (a+b)/2
# Check for middle point is root
if (fn(x) == 0.0):
break
# check to decide the side for iteration steps
if (fn(x)*fn(a) < 0):
b = x
else:
a = x
return x
# test it
print('The value of root is : %.5f'%bisection({'a':1, 'b':2}, 0.00003))
Step by step
Solved in 2 steps with 1 images