2.
Bestimmung einer Wurzel durch Iteration
Aufgabenstellung:
Es soll die Lösung von x² = c ( z. B. c = 41) bestimmt werden.
c = x² ↔ c = x · x ↔ c/x = x
x1 sei eine etwas ungenaue, geschätzte Lösung.
Der wahre Wert x ( Lösung von c = x² ) liegt zwischen c/x1 und x1
Begründung:
Ist x1 < x, dann gilt: c/x1 > x
Mit kleiner werdendem Nenner wird der Quotient größer.
Der Mittelwert x2 von c/x1 und x1 liegt dem Wert x näher.
x2 = (x1 + c/x1) /2
Noch besser passt x3 = (x2+ c/x2)/2 und dann x4 = (x3+ c/x3)/2.
Diese schrittweise Annäherung an die richtige Lösung mit x1, x2, x3, x4 usw. heißt Iteration (Iter: lateinisch der Schritt).
Nach Eingabe von „2“ und „START“ (siehe unten) kann eine Iteration im Rechenfenster von „Mathe.-Physik“ ausgeführt werden. Im Rechenfenster erscheinen die folgenden mit 1., 2. und 3. nummerierten drei Zeilen. Mit einem Doppelklick auf der ersten Zeile wird dem Rechner mitgeteilt, dass der erste Näherungewert x = 1 ist und dass für c der Wert 41 gelten soll. Mit einem Doppelklick auf der zweiten Zeile wird ein besserer Näherungswert x ( xneu ) mit xneu = 0,5*(xalt + c/xalt) bestimmt. xneu wird nach einem Doppelklick auf der dritten Zeile angezeigt. Anschließend wird xneu (z.B. 21) mit der Taste „Zeilenwechsel“ vom Ausdruck „ x =“ getrennt in eine tiefere Zeile gerückt. Nun wird wieder die zweite Zeile doppelt angeklickt und dann wieder die dritte usw..
Zur Anzeige eines neuen Wertes von x wird x = und nicht etwa x = 21 angeklickt. Beim Doppelklick auf x = 21 wird für x der Wert 21 festgelegt.
1.) |x|c|=|1|41|: x = geschätzte Lösung zur Gleichung c = x² ( c= 41)
2.) x:=0.5*(x+c/x)
3.) x =
6.4031242600343
6.4036622562695
6.48667004126815
7.52440229203715
11.4761904761905
21
Es ist erkennbar, dass die beiden letzten x-Werte 6.4036622562695 und 6.403124260034 in den drei ersten Stellen hinter dem Komma übereinstimmen. Sie weichen demnach nur noch um höchstens 0,001 vom wahren Wert ab.
Nach Eingabe von „3“ und „START“ (siehe unten) kann die Iteration mit dem folgenden, kleinen Programm durchgeführt werden.
|c|x|f|=|41|1|1|: Anfangsbedingungen doppelt anklicken !
Wiederhole bis f < 0.00000001: dann diese Zeile doppelt anklicken !
x = (1/2)*(x + c/x )
f = abs(x-b)
b = x
wenn f < 0.00000001
? x =
?b
ohnewenn
zurück
f ist der Unterschied zweier aufeinander folgender Werte. abs(x-a) = |x-a|
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. Im obigen Programm stehen die Druckbefehle zwischen „wenn“ und „ohnewenn“. Sie werden nur dann ausgeführt, wenn die hinter wenn angegebene Bedingung (f <0.00000001) zutrifft.