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)

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
100%

write this code in a different and easier way 

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'1, segment['b']
Fa, Fb eq(a), eq(b)
if Fa * Fb > 0:
raise Exception('
while( b- a > app ):
x = ( a + b) / 2.0
f eq(x)
if f * Fa > 0: a x
else: b x
return x
#test it
print bisection (fn, {'a':1, 'b':2}, 0.00003)
%3D
change of sign - bisection not possible')
Transcribed Image Text: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'1, segment['b'] Fa, Fb eq(a), eq(b) if Fa * Fb > 0: raise Exception(' while( b- a > app ): x = ( a + b) / 2.0 f eq(x) if f * Fa > 0: a x else: b x return x #test it print bisection (fn, {'a':1, 'b':2}, 0.00003) %3D change of sign - bisection not possible')
Expert Solution
Step 1

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))

steps

Step by step

Solved in 2 steps with 1 images

Blurred answer
Knowledge Booster
InputStream
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education