Python :: Aufgabe #185 :: Lösung #2

2 Lösungen Lösungen öffentlich
#185

Babylonisches Wurzelziehen / Heron-Verfahren / Heronsches Näherungsverfahren

Anfänger - Python von Exception - 03.06.2018 um 08:27 Uhr
Die zu schreibende Anwendung soll eine positive Zahl entgegennehmen und durch das Heron-Verfahren näherungsweise die Quadratwurzel berechnen.

Zusatz:
Es werden die einzelnen Schritte ausgegeben, siehe Beispiel.

Beispiel: mit Wurzel aus 12

...
Die Wurzel aus 12 ist zwischen 3.5 und 3.4
...
Die Wurzel aus 12 ist zwischen 3.45 und 3.46
...


~ Viel Spaß :)
#2
vote_ok
von JND1992 (50 Punkte) - 29.11.2018 um 20:24 Uhr
Quellcode ausblenden Python-Code
def heronverfahren(eingegebene_zahl, zahl_der_naeherung):

    wurzel_der_zahl = (1/2) * (zahl_der_naeherung + (eingegebene_zahl/zahl_der_naeherung))
    return(wurzel_der_zahl)



#Aufforderung zur Eingabe
print('Bitte die Zahl eingeben, aus der die Wurzel gezogen werden soll:')

#Abfangen eines Fehlers bei der Eingabe einer Zahl
try:

    # Eingabe der Zahl, aus der die Wurzel gezogen werden soll
    zahl_aus_der_die_wurzel_gezogen_werden_soll = float(input())

    if zahl_aus_der_die_wurzel_gezogen_werden_soll <= 0:
        print('Es kann nur aus positiven Zahlen eine Wurzel gezogen werden.')
        raise exit()

    #Ermitteln des Startwertes für die Wurzelberechnung
    #Schätzung für den Startwert erhält man aus der Taylorreihen-Entwicklung der binomischen Reihe um 1
    schaetzung_des_startwertes = ( 1 + zahl_aus_der_die_wurzel_gezogen_werden_soll ) /2

    while schaetzung_des_startwertes*schaetzung_des_startwertes != zahl_aus_der_die_wurzel_gezogen_werden_soll:

        schaetzung_des_startwertes = heronverfahren(zahl_aus_der_die_wurzel_gezogen_werden_soll, schaetzung_des_startwertes)

        if schaetzung_des_startwertes*schaetzung_des_startwertes == zahl_aus_der_die_wurzel_gezogen_werden_soll:
            wurzel = schaetzung_des_startwertes

    #Ausgabe der eingegebenen Zahl als float-Wert
    print('Eingegebene Zahl: ' + str(zahl_aus_der_die_wurzel_gezogen_werden_soll))

    #Ausgabe der Zahl für die schätzung
    print('Wert der Zahl nach der 1. Schätzung: ' + str(schaetzung_des_startwertes))

    #Ausgabe der Wurzel der Zahl
    print('Die Wurzel der Zahl ist: ' + str(wurzel))
    print(str(wurzel) + ' * ' + str(wurzel) + ' = ' + str(wurzel*wurzel))

#Ausnahme, falls keine Zahl eingegeben wurde
except:
    print('Syntax wurde nicht eingehalten.')

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2095372

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.