secans methode - Secant method
In numerieke analyse is de secansmethode een wortelzoekalgoritme dat een opeenvolging van wortels van secanslijnen gebruikt om een wortel van een functie f beter te benaderen . De secansmethode kan worden gezien als een eindige-verschilbenadering van de methode van Newton . De secansmethode is echter meer dan 3000 jaar ouder dan de methode van Newton.
De methode
De secansmethode wordt gedefinieerd door de herhalingsrelatie
Zoals blijkt uit de recursierelatie, vereist de secansmethode twee beginwaarden, x 0 en x 1 , die idealiter dicht bij de wortel moeten worden gekozen.
Afleiding van de methode
Beginnend met de beginwaarden x 0 en x 1 construeren we een lijn door de punten ( x 0 , f ( x 0 )) en ( x 1 , f ( x 1 )) , zoals weergegeven in de afbeelding hierboven. In helling-snijvorm is de vergelijking van deze lijn
De wortel van deze lineaire functie, dat is de waarde van x zodat y = 0 is
We gebruiken dan deze nieuwe waarde van x als x 2 en herhalen het proces, met x 1 en x 2 in plaats van x 0 en x 1 . We gaan door met dit proces, waarbij we oplossen voor x 3 , x 4 , enz., totdat we een voldoende hoog niveau van precisie bereiken (een voldoende klein verschil tussen x n en x n −1 ):
Convergentie
De iteraties van de secansmethode convergeren naar een wortel van als de beginwaarden en zijn voldoende dicht bij de wortel. De volgorde van convergentie is φ , waarbij
is de gulden snede . In het bijzonder is de convergentie superlineair, maar niet helemaal kwadratisch .
Dit resultaat geldt alleen onder bepaalde technische voorwaarden, namelijk dat twee keer continu differentieerbaar is en dat de betreffende wortel eenvoudig is (dwz met veelvoud 1).
Als de beginwaarden niet dicht genoeg bij de wortel liggen, is er geen garantie dat de secansmethode convergeert. Er is geen algemene definitie van "dichtbij genoeg", maar het criterium heeft te maken met hoe "wiggly" de functie op het interval is . Als bijvoorbeeld differentieerbaar is op dat interval en er is een punt waar op het interval, dan kan het algoritme niet convergeren.
Vergelijking met andere methoden om root te vinden
De secansmethode vereist niet dat de wortel tussen haakjes blijft, zoals de bisectiemethode doet, en daarom convergeert deze niet altijd. De valse positiemethode (of regula falsi ) gebruikt dezelfde formule als de secansmethode. Het past echter niet de formule op en toe , zoals de secansmethode, maar op en op de laatste iteratie zodat en een ander teken hebben. Dit betekent dat de valse-positiemethode altijd convergeert; echter alleen met een lineaire volgorde van convergentie. Bracketing met een superlineaire convergentievolgorde als de secansmethode kan worden bereikt met verbeteringen aan de valse positiemethode (zie Regula falsi § Verbeteringen in regula falsi ) zoals de ITP-methode of de Illinois-methode .
De herhalingsformule van de secansmethode kan worden afgeleid uit de formule voor de methode van Newton
met behulp van de eindige-verschil benadering
De secansmethode kan worden geïnterpreteerd als een methode waarbij de afgeleide wordt vervangen door een benadering en is dus een quasi-Newtonmethode .
Als we de methode van Newton vergelijken met de secansmethode, zien we dat de methode van Newton sneller convergeert (orde 2 tegen φ ≈ 1.6). De methode van Newton vereist echter de evaluatie van beide en de afgeleide bij elke stap, terwijl de secansmethode alleen de evaluatie van . Daarom kan de secansmethode in de praktijk soms sneller zijn. Als we bijvoorbeeld aannemen dat evalueren net zoveel tijd kost als het evalueren van de afgeleide en we alle andere kosten verwaarlozen, kunnen we twee stappen van de secansmethode uitvoeren (de logaritme van de fout met een factor φ 2 ≈ 2,6 verlagen ) voor hetzelfde kosten als één stap van de methode van Newton (waardoor de logaritme van de fout met een factor 2 wordt verlaagd), dus de secansmethode is sneller. Als we echter parallelle verwerking overwegen voor de evaluatie van de afgeleide, bewijst de methode van Newton zijn waarde, omdat hij sneller is in de tijd, maar toch meer stappen kost.
generalisaties
De methode van Broyden is een generalisatie van de secansmethode naar meer dan één dimensie.
De volgende grafiek toont de functie f in rood en de laatste secanslijn in vet blauw. In de grafiek lijkt het x- snijpunt van de secanslijn een goede benadering te zijn van de wortel van f .
rekenvoorbeeld
Hieronder wordt de secansmethode geïmplementeerd in de programmeertaal Python .
Het wordt dan toegepast om een wortel te vinden van de functie f ( x ) = x 2 − 612 met beginpunten en
def secant_method(f, x0, x1, iterations):
"""Return the root calculated using the secant method."""
for i in range(iterations):
x2 = x1 - f(x1) * (x1 - x0) / float(f(x1) - f(x0))
x0, x1 = x1, x2
return x2
def f_example(x):
return x ** 2 - 612
root = secant_method(f_example, 10, 30, 5)
print("Root: {}".format(root)) # Root: 24.738633748750722
Opmerkingen:
Zie ook
Referenties
- Avriel, Mordechai (1976). Niet-lineair programmeren: analyse en methoden . Prentenzaal. blz. 220-221. ISBN 0-13-623603-0.
- Allen, Myron B.; Isaacson, Eli L. (1998). Numerieke analyse voor toegepaste wetenschap . John Wiley & zonen . blz. 188-195. ISBN 978-0-471-55266-6.
Externe links
- Secant Method Notes, PPT, Mathcad, Maple, Mathematica, Matlab bij Holistic Numerical Methods Institute
- Weisstein, Eric W. "Secant-methode" . MathWereld .