secans methode - Secant method

Image
De eerste twee iteraties van de secansmethode. De rode curve toont de functie f , en de blauwe lijnen zijn de secans. Voor dit specifieke geval zal de secansmethode niet convergeren naar de zichtbare wortel.

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 .

Voorbeeldcode secansmethode result.svg

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

Externe links