Bonjour à tous,
Je suis nouveau sur le forum et j'aurais besoin de votre aide.
Je suis étudiant et je travaille sur une simulation thermique et j'aimerai utiliser VBA afin de me simplifier les calculs.
J'ai créé une fonction qui permet de résoudre une équation non linéaire complexe qui tient dans la longueur d'une feuille A3... et il est donc impossible d'isoler l'inconnue. En fait je calcul une température à un instant t + dt en fonction des valeurs de l'instant précédant t. Je fais donc appel à chaque instant à ma fonction pour calculer T(t+dt). La résolution d'une valeur prend pas mal de temps et n'est pas précise. Je me tourne vers vous afin de réduire la complexité de ma fonction et de l'optimiser.
Le programme renvoie la valeur de X en fonction du temps (X est ma température à t+dt), pour laquelle l'équation est environ égale à 0. Je vous simplifie le programme, le principe est :
Function Resoud(X0 As Double, A As Double, B As Double, C As Double) As Double
Dim X As Double
Dim Z As Double
X = X0
Z= A*X + B*X*X + Log(B*X-C)/C
While (Z < -0.1 Or Z > 0.1) And (X > 0)
X = X - 0.01
Z= A*X + B*X*X + Log(B*X-C)/C
Wend
Resoud=X
End Function
Je serais extrêmement reconnaissant si l'un d'entre vous pourrait m'aider.