Heron Verfahren in Python: Problem bei Abbruchbedingung
Verfasst: Mittwoch 5. Dezember 2012, 19:20
Hi, zu aller erst: JA, das ist eine Hausaufgabe, ABER NEIN, ich bin nicht nur hier um mir eine Lösung geben zu lassen. Ich habe die Aufgabe bearbeitet und habe irgendwo noch einen ziemlichen Fehler, ich vermute er liegt entweder in der Abbruchbedingung oder bei allgemeinen Teil (ich bin ein Python-Neuling).
In der Aufgabe soll ich ein Programm für das Heronverfahren, für das Annähern an die Wurzel einer Zahl schreiben. Um nicht tausend durchläufe machen zu müssen hab ich mir überlegt, dass das Quadrat des angenäherten Ergebnisses minus der Ursprünglichen Zahl kleiner als 0.0001 sein soll(zB wir wollen die Wurzel aus 9. Wir erhalten durch mehrere Durchläufe 3.0000xxx. Hier soll die Schleife dann abbrechen und das Ergebnis ausspucken.
Also ich schreibe einfach mal was ich hab:
Ich bin Programmierneuling und bei Seiten wie GuteFrage.net werden solche Fragen sofort gelöscht. Mein Tutor konnte mir auch nicht helfen, da er ja auch verständlicher Weise nicht die Lösung verraten möchte. Ich bitte also um Verständnis dafür, dass ich eine Frage stelle, die etwas mit meiner Hausaufgabe zu tun hat ;)
In der Aufgabe soll ich ein Programm für das Heronverfahren, für das Annähern an die Wurzel einer Zahl schreiben. Um nicht tausend durchläufe machen zu müssen hab ich mir überlegt, dass das Quadrat des angenäherten Ergebnisses minus der Ursprünglichen Zahl kleiner als 0.0001 sein soll(zB wir wollen die Wurzel aus 9. Wir erhalten durch mehrere Durchläufe 3.0000xxx. Hier soll die Schleife dann abbrechen und das Ergebnis ausspucken.
Also ich schreibe einfach mal was ich hab:
Code: Alles auswählen
a = input
%Das ist die Zahl deren Wurzel man moechte.(zB a=9)
s=(a+1)/2
%Das ist der Startwert
for s in range(s,10000000):
x=0.5*(s+(a/s))
if (x**2 - a) < 0.0001: break
else:
x = 0.5*(x+(a+x))
print "Wurzel aus",a,"fuer Startwert",s,"=",x