1.2
Berechnen einer n. Wurzel durch Iteration
Aufgabenstellung:
Es soll die Lösung von x5 = c ( z. B. c = 41) bestimmt werden.
c = x5 ↔ x = c/x4
x1 sei eine etwas ungenaue, geschätzte Lösung.
Der wahre Wert x ( Lösung von c = x5 ) liegt zwischen c/x14 und x1
Begründung:
Ist x1 < x, dann gilt: c/x14 > x ( Mit kleiner werdendem Nenner wird der Quotient größer.)
Ist x1 > x, dann gilt: c/x14 < x ( Mit größer werdendem Nenner wird der Quotient kleiner.)
Der Mittelwert x2 von c/x14 und x1 liegt möglicherweise dem wahren Wert x näher als x1.
Dies soll an dem Beispiel x5 = 32 geprüft werden.
Die Lösung von x5 = 32 ist x = 2.
Wir bestimmen zu den Näherungswerten x1 = 1,7; x1 = 1,8 und x1 = 1,9 die Quotienten 32 / x14
x1 = 1,7; c/x14 = 32 / 1,74 = 3,83
x1 = 1,8 ; c/x14 = 32 / 1,84 = 3,04
x1 = 1,9 ; c/x14 = 32 / 1,94 = 2,45
Es ist deutlich erkennbar, dass 32 / x14 erheblich stärker vom wahren Wert 2 abweicht als x1. Aus diesem Grunde erscheint die Berechnung eines Mittelwerts nach x2 = (x1 + c/x14) /2 zur Bestimmung eines besseren Näherungswerts x2 nicht sinnvoll. Der Mittelwert sollte so sein, dass der Fehler von x1 den von c/x14 weitgehend ausgleicht. Dies gelingt, wenn man x1 viermal in den Mittelwert eingehen lässt.
x2 = (x1 + x1 + x1 + x1+ c/x14) /5 → x2 = (4 · x1+ c/x14) /5
Noch besser als x2 ist dann x3 = (4 · x2+ c/x24 )/5 und dann x4 = (4 · x3+ c/x34 )/5 als Näherungswert geeignet..
Diese schrittweise Annäherung an die richtige Lösung mit x1, x2, x3, x4 usw. heißt Iteration (Iter: lateinisch der Schritt).
Zur Berechnung von x = ( xn = c) wird zur schrittweise Annäherung eine Mittelung nach
x2 = [(n-1) · x1+ c/x1(n-1)] /n durchgeführt.
Mit dem folgenden Programm wird die n. Wurzel aus einer Zahl c bestimmt. Die Rechnung wird dann abgebrochen, wenn der Unterschied f zweier aufeinander folgender Werte kleiner als 0.00000001 ist.
Bevor das Programm mit einem Doppelklick auf „Wiederhole bis....“ gestartet wird, müssen die in der ersten Zeile festgelegten Anfangsbedingungen dem Rechner durch einen Doppelklick auf „|n|c|x|f|=....“ mitgeteilt werden.
Zur Ausführung des Programms ist nach der Eingabe von „31“ und „START“ möglich.
|n|c|x|f|=|5|7|1|1|
Wiederhole bis f<0.00000001
x = (1/n)*((n-1)*x+c/x^(n-1))
f=abs(x-b)
b=x
? x =
?b
?
zurück
Das Fragezeichen in Verbindung mit einem anderen Zeichen ist ein Druckbefehl (Ausgabe im Rechenfenster). Wenn hinter dem Fragezeichen mehr als ein Zeichen (z.B. x= ) steht, dann werden diese Zeichen angezeigt. Steht nur ein Buchstabe hinter „? “, dann wird dieser Buchstabe als Variable angesehen und es wird die zugeordnete Zahl ausgedruckt. Das Fragezeichen allein ist ein Befehl zum Zeilenwechsel.
Die Iteration kann sehr schnell mit dem hier verfügbaren Online - Rechenprogramm durchgeführt werden. x= ((a-1)*x+c/x^(a-1))/a wird in das Rechenfenster eingetragen (kopieren/einfügen!). Der Wert für a und der zunächst für x geschätzte, in die Gleichung xa = c passende Wert werden in die Eingabezeilen für a und x geschrieben. Nach Anklicken des Gleichheitszeichens erscheint ein besserer Näherungswert für x, nach dem zweiten Anklicken des Gleichheitszeichens ein noch besserer usw..