Learn the Bisection Method by Finding the Square Root of a Number - Step 21

Tell us what’s happening:

You should call the square_root_bisection and use the N variable as the argument but the code is not passing . # Example usage with N = 25
N = 25
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")

Experiment with larger values

N = 1000
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")

N = 1000000
result = square_root_bisection

Your code so far

def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
    if square_target < 0:
        raise ValueError('Square root of negative number is not defined in real numbers')
    if square_target == 1:
        root = 1
        print(f'The square root of {square_target} is 1')
    elif square_target == 0:
        root = 0
        print(f'The square root of {square_target} is 0')

    else:
        low = 0
        high = max(1, square_target)
        root = None
        
        for _ in range(max_iterations):
            mid = (low + high) / 2
            square_mid = mid**2

            if abs(square_mid - square_target) < tolerance:
                root = mid
                break

            elif square_mid < square_target:
                low = mid
            else:
                high = mid

        if root is None:
            print(f"Failed to converge within {max_iterations} iterations.")
    
        else:   
            print(f'The square root of {square_target} is approximately {root}')
    
    return root


# User Editable Region

N = 16
# Example usage with N = 25
N = 25
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")

# Experiment with larger values
N = 1000
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")

N = 1000000
result = square_root_bisection(N)
print(f"The square root of {N} is approximately {result}")


# User Editable Region


Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0

Challenge Information:

Learn the Bisection Method by Finding the Square Root of a Number - Step 21

call the function without assignment

Please Tell us what’s happening in your own words.

Learning to describe problems is hard, but it is an important part of learning how to code.

Also, the more you say, the more we can help!

Tell us what’s happening:

It keeps saying You should call the square_root_bisection(N) as a function and use N as the argument . def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
if square_target < 0:
raise ValueError(‘Square root of negative number is not defined in real numbers’)
if square_target == 1:
root = 1
print(f’The square root of {square_target} is 1’)
elif square_target == 0:
root = 0
print(f’The square root of {square_root_bisection})

Your code so far

def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
    if square_target < 0:
        raise ValueError('Square root of negative number is not defined in real numbers')
    if square_target == 1:
        root = 1
        print(f'The square root of {square_target} is 1')
    elif square_target == 0:
        root = 0
        print(f'The square root of {square_target} is 0')

    else:
        low = 0
        high = max(1, square_target)
        root = None
        
        for _ in range(max_iterations):
            mid = (low + high) / 2
            square_mid = mid**2

            if abs(square_mid - square_target) < tolerance:
                root = mid
                break

            elif square_mid < square_target:
                low = mid
            else:
                high = mid

        if root is None:
            print(f"Failed to converge within {max_iterations} iterations.")
    
        else:   
            print(f'The square root of {square_target} is approximately {root}')
    
    return root

# User Editable Region

def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
    if square_target < 0:
        raise ValueError('Square root of negative number is not defined in real numbers')
    if square_target == 1:
        root = 1
        print(f'The square root of {square_target} is 1')
    elif square_target == 0:
        root = 0
        print(f'The square root of {square_target} is 0')
    else:
        low = 0
        high = max(1, square_target)
        root = None

        for _ in range(max_iterations):
            mid = (low + high) / 2
            square_mid = mid**2
            if abs(square_mid - square_target) < tolerance:
                root = mid
                break
            elif square_mid < square_target:
                low = mid
            else:
                high = mid
        
        if root is None:
            print(f"Failed to converge within {max_iterations} iterations.")
        else:
            print(f'The square root of {square_target} is approximately {root}')
    
    return root

# User Editable Region
N = 16
print(square_root_bisection(N))

# Experiment with larger values
N = 1000
print(square_root_bisection(N))

N = 1000000
print(square_root_bisection(N))



# User Editable Region


Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0

Challenge Information:

Learn the Bisection Method by Finding the Square Root of a Number - Step 21

Please Tell us what’s happening in your own words.

Learning to describe problems is hard, but it is an important part of learning how to code.

Also, the more you say, the more we can help!

also call without printing

Thanks for showing me how to call the function without the assignment
def square_root_bisection(square_target, tolerance=1e-7, max_iterations=100):
if square_target < 0:
raise ValueError(‘Square root of negative number is not defined in real numbers’)
if square_target == 1:
root = 1
print(f’The square root of {square_target} is 1’)
elif square_target == 0:
root = 0
print(f’The square root of {square_target} is 0’)
else:
low = 0
high = max(1, square_target)
root = None

    for _ in range(max_iterations):
        mid = (low + high) / 2
        square_mid = mid**2
        if abs(square_mid - square_target) < tolerance:
            root = mid
            break
        elif square_mid < square_target:
            low = mid
        else:
            high = mid
    
    if root is None:
        print(f"Failed to converge within {max_iterations} iterations.")
    else:
        print(f'The square root of {square_target} is approximately {root}')

return root

User Editable Region

N = 16
square_root_bisection(N) # Call the function directly

Example usage with larger values

N = 1000
square_root_bisection(N)

N = 1000000
square_root_bisection(N)