Résolution d'une équation itérative
blalaa
Messages postés
167
Date d'inscription
Statut
Membre
Dernière intervention
-
blalaa Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
blalaa Messages postés 167 Date d'inscription Statut Membre Dernière intervention -
bonjour
sil vous plait aidez moi dans ce probleme
je voudrais ressoude une équation itérative par la programmation vba
voici lequation que je voudrais résoudre (k) :
1/sqr(k)= (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))
voici le programr que jai mis
Dim k As Currency, r As Currency
k = 0
r = 0
'--------------------------
Dim re As Double, psi As Double, d As Double
psi = 0.002
d = 0.007
re = 4046
'--------------------------
While r <= 1
k = k + 0.0001
r = (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re)))) / (Log(10))) * Sqr(k)
Wend
MsgBox ("Pour re = " & re & vbCrLf & "k = " & Format(k, "0.0000"))
End Sub
le probleme c que ca marche pour les petites valeur de "psi" et les grandes valeures de "d" ( exemple psi =0.002, d=0,007 la ca marche ou psi = 0,002 , d= 7 ca marche ) mais pour les grandes valeurs de "psi" et les petites de valeures de "d" le programme bloque (psi = 0,03 d= 0,007 le programe bloque, ou encore si je mis psi = 0.002 , et que d= 0,000007 ca bloque aussi )
je ne sais pas ou est le probleme
sachant que d, re , et psi sont variable donc a chaque fois je les varies
merci davence pour votre aide
sil vous plait aidez moi dans ce probleme
je voudrais ressoude une équation itérative par la programmation vba
voici lequation que je voudrais résoudre (k) :
1/sqr(k)= (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))
voici le programr que jai mis
Dim k As Currency, r As Currency
k = 0
r = 0
'--------------------------
Dim re As Double, psi As Double, d As Double
psi = 0.002
d = 0.007
re = 4046
'--------------------------
While r <= 1
k = k + 0.0001
r = (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re)))) / (Log(10))) * Sqr(k)
Wend
MsgBox ("Pour re = " & re & vbCrLf & "k = " & Format(k, "0.0000"))
End Sub
le probleme c que ca marche pour les petites valeur de "psi" et les grandes valeures de "d" ( exemple psi =0.002, d=0,007 la ca marche ou psi = 0,002 , d= 7 ca marche ) mais pour les grandes valeurs de "psi" et les petites de valeures de "d" le programme bloque (psi = 0,03 d= 0,007 le programe bloque, ou encore si je mis psi = 0.002 , et que d= 0,000007 ca bloque aussi )
je ne sais pas ou est le probleme
sachant que d, re , et psi sont variable donc a chaque fois je les varies
merci davence pour votre aide
A voir également:
- Résolution d'une équation itérative
- Editeur d'équation - Télécharger - Vie quotidienne
- Réduire résolution image - Guide
- Formule équation - Télécharger - Études & Formations
- Resolution changer pc - Télécharger - Divers Utilitaires
- Résolution native ✓ - Forum Ecran
2 réponses
Bonjour
Peut être n'y a t'il pas de solution lorsque ça bloque
Une autre méthode qui ne bloque pas en l'absence de solution
https://www.cjoint.com/c/HEjnSgCYlnB
Donner les valeurs des constantes et les bornes pour la recherche
puis
Ctrl+k pour lancer la macro
RQ. IL manque une parenthèse fermante quelque part
1/sqr(k)= (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))
je l'ai ajoutée à la fin ...
Cdlmnt
Peut être n'y a t'il pas de solution lorsque ça bloque
Une autre méthode qui ne bloque pas en l'absence de solution
https://www.cjoint.com/c/HEjnSgCYlnB
Donner les valeurs des constantes et les bornes pour la recherche
puis
Ctrl+k pour lancer la macro
RQ. IL manque une parenthèse fermante quelque part
1/sqr(k)= (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))
je l'ai ajoutée à la fin ...
Cdlmnt
blalaa
Messages postés
167
Date d'inscription
Statut
Membre
Dernière intervention
merci pour votre reponse
Bonjour
l'équation dans la boucle est incorrecte, c'est peut-être pour ça que "ça bloque"
équation de départ
1/sqr(k)= (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re)))))
équation équivalente
1 = (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))) * Sqr(k)
donc la boucle dans le programme:
l'équation dans la boucle est incorrecte, c'est peut-être pour ça que "ça bloque"
équation de départ
1/sqr(k)= (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re)))))
équation équivalente
1 = (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))) * Sqr(k)
donc la boucle dans le programme:
While r <= 1
k = k + 0.0001
r = (-2 * (Log((psi / (3.7 * d)) + (2.52 / (Sqr(k) * re))))) * Sqr(k)
Wend