Newton Raphson

Mit Bisektion kann man schon sehr gut die Nullstelle einer Funktion oder den Schnittpunkt zweier Funktionen finden.

Schneller geht es meistens mit dem Newtonverfahren. Im folgenden Quellcodebeispiel ist das Newtonverfahren mit VBA für die Klasse Polynomials umgesetzt.

Zusätzlich habe ich das Newtonverfahren in die Klasse clsPolynomial integriert.

Sub NewtonRaphson()
    Dim new_x As Double, old_x As Double
    Dim dblAccuracy As Double
    Dim myFunktion As clsPolynomial
    Dim myFunktion_Derivative As clsPolynomial

    'Initialize
    Set myFunktion = New clsPolynomial
    myFunktion.Prefactors = Array(2, 0, -1)
    myFunktion.PrintStrPolynomial
    Set myFunktion_Derivative = myFunktion.GetDerivative

    dblAccuracy = 0.000000000000001
    new_x = 10

    Do
        old_x = new_x
        new_x = old_x - myFunktion.y(old_x) / myFunktion_Derivative.y(old_x)
    Loop Until Abs(old_x - new_x) < dblAccuracy

    Debug.Print new_x
    Debug.Print 2 ^ 0.5
End Sub

Code eingefügt mit Syntaxhighlighter 4.15
Your rating: Keine Average: 5 (1 vote)