2. F90 - Beispiel
Aufgabenstellung:
Es ist ein Unterprogramm zu entwickeln, das eine Nullstelle eines
Polynoms nach folgender Methode berechnet:
Sekantenverfahren
Der Verlauf einer Kurve kann durch die Sekante approximiert werden, d.h.:
Ausgehend von einem geeigneten Startwert kann man die Kurve durch
ihre Sekante (gegeben durch ein geeignetes Δx) annähern,
da die Sekante eine Gerade ist, kann deren Schnittpunkt mit der x-Achse
leicht berechnet werden.
Dieser Schnittpunkt wird dann als neuer Startwert verwendet, solange, bis
eine vorgegebene Genauigkeit erreicht ist.
Ausgangslage:
Startwert x0 und Δx
(und damit x1, y0 und
y1)
Iteration:
Die Sekante durch die beiden Punkte
(xi,yi) und
(xi+1,yi+1)
mit xi+1 = xi + Δx
läßt sich aus folgender Gleichung berechnen:
yi |
= |
a . xi + b |
yi+1 |
= |
a . xi+1 + b |
für den Schnittpunkt xi+2 dieser Gerade mit
der x-Achse gilt dann:
a . xi+2 + b = 0 oder anders
geschrieben: xi+2 = - b/a
Programmtyp
FUNCTION
Übergabeparameter
- IN: Feld mit den Koeffizienten
- IN: Startwert
- IN: Genauigkeit
Zum Test ist ein geeignetes Hauptprogramm zu schreiben, das die
Koeffizienten eines Polynoms 3. Grades (hat immer mindestens
1 Nullstelle) und den Startwert x einliest
und als Ergebnis eine Nullstelle (x,y) ausgibt.
Hinweis
Beachten Sie das Problem eines geeigneten Δx zB bei
der Funktion y = 5x3 - 3x + 2
Lösung
Hauptprogramm
Fehlerabfrage
Funktionswert
Sekantenverfahren