Funktionsgleichung in VBA definieren
Frank
ich befasse mich gerade mit der Nullstellenberechnung mittels dem Halley-Verfahren. Nun habe ich ein kleines Programm in VBA geschrieben, mit dem das geht. Problem dabei ist, dass ich die Funktionsgleichung ändern möchte ohne in den Quellcode einzugreifen. Gibt es eine elegantere Lösung dafür, dass sich beispielsweise ein Eingabefeld öffnet, wo ich z.B. x^4+3*x^2-2 eingeben kann? Noch eine kurze Frage in diesem Zusammenhang. Wie kann ich mehr Stellen nach dem Komma ausgeben lassen - der Datentyp Decimal funktioniert nicht.
Code:
Sub Halley_Verfahren()
'### Das Halley-Verfahren dient zur Bestimmung von Nullstellen und besitzt die _
Konvergenzordnung 3 ###
Dim x_i As Double
Dim x_j As Double
Dim f As Double 'Funktion
Dim f_1 As Double 'erste Ableitung
Dim f_2 As Double 'zweite Ableitung
'# Startwert
x_i = 2
f = x_i ^ 3 + x_i - 1
f_1 = 3 * x_i ^ 2 + 1
f_2 = 6 * x_i
Debug.Print x_i
Do
x_j = x_i - (2 * f * f_1) / (2 * f_1 ^ 2 - f * f_2)
x_i = x_j
f = x_i ^ 3 + x_i - 1
f_1 = 3 * x_i ^ 2 + 1
f_2 = 6 * x_i
Debug.Print x_i
Loop Until f
Ich wäre euch dankbar, wenn Ihr mir helfen könntet.Vielen Dank und viele Grüße
Frank