Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Funktionsgleichung in VBA definieren

Funktionsgleichung in VBA definieren
Frank
Hallo liebes Forum,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Funktionsgleichung in VBA definieren
30.07.2010 12:44:00
Rudi
Hallo,
mal primitiv:
Sub tt()
Dim x, s
x = 5
s = InputBox("Funktion")
MsgBox Evaluate(Replace(s, "x", x))
End Sub

Gruß
Rudi
AW: Funktionsgleichung in VBA definieren
30.07.2010 13:17:18
Frank
Hallo Rudi,
vielen Dank für deine Antwort. Aber so ganz ist mir damit noch nicht geholfen. Wie wandle ich die Zeichenkette aus der InputBox um und weise Sie dann y(x) zu? Also in etwa so:
Eingabe in die InputBox z.B. x^5+6*x^2
umwandeln in solch eine Form wie im Quelltext meine Funktion ist
und dann diese Zeichenfolge zuweisen z.B. zu y(x)= x^5+6*x^2 ?
Was bedeutet "Evaluate"? In der Hilfe steht lediglich Evaluate-Methode. Es wäre wirklich hilfreich, wenn die Antwort etwas beschrieben werden könnte, um auch Anfängern die Möglichkeit zu geben sich zu verbessern.
Viele Grüße Frank
Anzeige
AW: Funktionsgleichung in VBA definieren
30.07.2010 14:35:13
Rudi
Hallo,
so ganz verstehe ich dich nicht.
Sub tt()
Dim x, s, y
x = 5
s = InputBox("Funktion")
y=Evaluate(Replace(s, "x", x))
MsgBox "y=" & y
End Sub

Evaluate=Auswerten. Die Zeichenfolge wird ausgewertet.
In diesem Fall gib in die Inputbox mal x^5+6*x^2 ein.
Durch Replace(s, "x", x) wird der Ausdruck zu 5^5+6*5^2, da x ja =5 ist. y=3275
Gruß
Rudi
fkt = Inputbox(Prompt,Titel) 'f ist ein String oT
30.07.2010 12:44:26
jowe

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige