Boucle sans Faire d'erreur
Je suis en train de mettre en œuvre une simple méthode de Newton solveur itératif à l'aide d'Excel VB (je n'ai jamais utilisé VB.)
Je reçois l'erreur loop without a Do
et je ne peux pas comprendre ce que je fais mal ici.
J'essaie de trouver les racines de la fonction z^3 - z^2 - (B^2 + B - A)z - A*B
appelé le facteur de compressibilité.
Ma source MSN
Function zCalculation(ByVal temp As Double, ByVal press As Double) As Double
Dim tempCr As Double
Dim pressCr As Double
Dim A As Double
Dim B As Double
tempCr = temp / 238.5
pressCr = press / 547.424092
A = pressCr / tempCr
A = A / (9 * (2 ^ (1 / 3) - 1))
B = pressCr / tempCr
B = B * (2 ^ (1 / 3) - 1) / 3
Dim zNot As Double
Dim counter As Integer
counter = 0
zNot = 1#
Do
counter = counter + 1
zNot = zNot - (zNot ^ 3 - zNot ^ 2 - (B ^ 2 + B - A) * zNot - A * B) / (3 * zNot ^ 2 - 2 * zNot - (B ^ 2 + B - A))
If counter > 1000 Then
Exit Do
Loop Until eval(zNot, A, B) < 0.000001
zCalculation = zNot
End Function
pause
Function eval(ByVal z As Double, ByVal A As Double, ByVal B As Double) As Double
eval = z ^ 3 - z ^ 2 - (B ^ 2 + B - A) * z - A * B
End Function
OriginalL'auteur Felix Castor | 2013-12-09
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un:
dans votre code.
Pas de votre faute............Excel, le message d'erreur dans ce cas est mal conduit.
ne peux pas croire que j'ai fait une recherche sur stackoverflow avant de vérifier ce
J'ai eu le même problème! Je me sens gênée! 🙂
OriginalL'auteur Gary's Student
Vous pouvez essayer:
Pas de problème l'homme. Je suis heureux de vous aider.
OriginalL'auteur Makah
OriginalL'auteur user8646115