radice_quadrata.py

Script

# programma per determinare la radice quadrata di un numero

n = float(input("Dammi il numero di cui vuoi determinare la radice quadrata? "))
a = float(input("Inserisci l'estremo inferiore dell'intervallo di ricerca: "))
b = float(input("Inserisci l'estremo superiore dell'intervallo di ricerca: "))

# il ciclo continua mentre l'ampiezza dell'intervallo [a,b] è maggiore di 1E-10
while b-a>1E-10:
    # calcolo il valore medio di a e b
    m = (a+b)/2
    
    print("a = %.10f   m = %.10f   b = %.10f" % (a, m, b))

    # controllo se m^2 è minore o maggiore del numero inserito
    if m**2<n:
        # se m^2 è minore di n, significa che a è troppo piccolo
        # quindi sposto l'estremo inferiore dell'intervallo fino ad m 
        a = m
    else:
        # se m^2 è maggiore di n, significa che b è troppo grande
        # quindi sposto l'estremo superiore dell'intervallo fino ad m 
        b = m

Shell

Dammi il numero di cui vuoi determinare la radice quadrata? 2
Inserisci l'estremo inferiore dell'intervallo di ricerca: 1
Inserisci l'estremo superiore dell'intervallo di ricerca: 2
a = 1.0000000000   m = 1.5000000000   b = 2.0000000000
a = 1.0000000000   m = 1.2500000000   b = 1.5000000000
a = 1.2500000000   m = 1.3750000000   b = 1.5000000000
a = 1.3750000000   m = 1.4375000000   b = 1.5000000000
a = 1.3750000000   m = 1.4062500000   b = 1.4375000000
a = 1.4062500000   m = 1.4218750000   b = 1.4375000000
a = 1.4062500000   m = 1.4140625000   b = 1.4218750000
a = 1.4140625000   m = 1.4179687500   b = 1.4218750000
a = 1.4140625000   m = 1.4160156250   b = 1.4179687500
a = 1.4140625000   m = 1.4150390625   b = 1.4160156250
a = 1.4140625000   m = 1.4145507812   b = 1.4150390625
a = 1.4140625000   m = 1.4143066406   b = 1.4145507812
a = 1.4140625000   m = 1.4141845703   b = 1.4143066406
a = 1.4141845703   m = 1.4142456055   b = 1.4143066406
a = 1.4141845703   m = 1.4142150879   b = 1.4142456055
a = 1.4141845703   m = 1.4141998291   b = 1.4142150879
a = 1.4141998291   m = 1.4142074585   b = 1.4142150879
a = 1.4142074585   m = 1.4142112732   b = 1.4142150879
a = 1.4142112732   m = 1.4142131805   b = 1.4142150879
a = 1.4142131805   m = 1.4142141342   b = 1.4142150879
a = 1.4142131805   m = 1.4142136574   b = 1.4142141342
a = 1.4142131805   m = 1.4142134190   b = 1.4142136574
a = 1.4142134190   m = 1.4142135382   b = 1.4142136574
a = 1.4142135382   m = 1.4142135978   b = 1.4142136574
a = 1.4142135382   m = 1.4142135680   b = 1.4142135978
a = 1.4142135382   m = 1.4142135531   b = 1.4142135680
a = 1.4142135531   m = 1.4142135605   b = 1.4142135680
a = 1.4142135605   m = 1.4142135642   b = 1.4142135680
a = 1.4142135605   m = 1.4142135624   b = 1.4142135642
a = 1.4142135605   m = 1.4142135615   b = 1.4142135624
a = 1.4142135615   m = 1.4142135619   b = 1.4142135624
a = 1.4142135619   m = 1.4142135622   b = 1.4142135624
a = 1.4142135622   m = 1.4142135623   b = 1.4142135624
a = 1.4142135623   m = 1.4142135623   b = 1.4142135624

https://it.wikiversity.org/wiki/Metodo_di_bisezione

radice quadrata
Grafico dei valori di a, m, b che convergono verso la √2