AW: Warum funktioniert diese Sub nicht?
09.04.2015 10:39:38
Malte
Hallo,
vielen Dank für die Antwort.
Nun bin ich komplett verwirrt.
In meiner Tabelle, wo exakt dieselbe Rechnung vorkommt, steht bereits im Modulkopf Option Explicit. Dennoch funktioniert zur Laufzeit die o.g. Rechnung nicht.
Die Variable ist innerhalb der Funktion deklariert, Zuweisung funktioniert, Wurzel ziehen nicht.
Hier mal der besagte Teil der Funktion in einem Modul (u entspricht dabei meinem a mit dem Wert -1.97E-14)
Option Explicit
Function cardanische_gleichung(ByVal p As Double, ByVal a As Double, ByVal b As Double, ByVal T _
_
As Double) As Variant
Dim a0 As Double, a1 As Double, a2 As Double
Dim j As Double, q As Double, Delta As Double, u As Double, w As Double
Dim arr(1) As Double
'Parameter berechnen
a2 = -(R * T - b * p) / p
a1 = -(2 * R * T * b - a + 3 * b ^ 2 * p) / p
a0 = (R * T * b ^ 2 - a * b + b ^ 3 * p) / p
j = (3 * a1 - a2 ^ 2) / 3
q = 2 * (a2 ^ 3) / 27 - a2 * a1 / 3 + a0
Delta = (q / 2) ^ 2 + (j / 3) ^ 3
'Folgende Zeile erzeugt den Fehler
u = (-q / 2 + (Delta ^ 0.5)) ^ (1 / 3)
w = -j / 3 / u
arr(0) = (u + w) - a2 / 3
cardanische_gleichung = arr()
End Function
Gruß!
Malte