Pour mon travail je dois trouver la solution d'une équation de la forme xLN(x)+ax = b.
a et b sont connus.
Je dois faire varier a et b et trouver x à chaque fois.
Voici un exemple :
42.9 x LN(x) + 111.277 x + 0.572 = 0
La solution étant x = ~ 0.06
On m'a dit que je peux résoudre cette équation directement avec Excel en utilisant Solveur avec une macro.
Quelqu'un peut-il m'en dire plus, car j'avoue que cela ne me parle pas beaucoup.
J'utilise Excel 2003 et j'ai déjà installé Solveur, mais je ne sais pas comment m'en servir.
Je vous remercie pour votre aide.
A tout hasard, car je ne vois pas la correspondance entre l'équation et l'exemple fourni...42.9 x...
Voici une appli. utilisant le solveur en VBA (ALT+F11 pour voir le code)
Il faut activer les macros. Le fichier est protégé mais sans mot de passe.
Les cellules de la feuille sont nommées. La modification de l'une des cellules jaunes lance le solveur. J'ai mis une contrainte X>= 0,000001 pour éviter une erreur.
A toutes fins utiles, j'ai ajouté un second fichier avec les instructions pour le cas ou le solveur ne serait pas installé...
Merci pour ton aide, mais j'ai un petit problème, lorsque je modifie les cellules jaunes, j'ai le message suivant : "erreur de compilation. projet ou bibliothèque introuvable".
J'ai bien installé le solveur comme indiqué dans le fichier joint à ta réponse.
Peux-tu me dire comment je dois procéder.
Merci.
Comme l'équation proposée possède souvent deux solutions, voici une proposition employant des moyens superflus.
(Proposition non testée avec Excel2003)
Bonne soirée.
ℝOGER2327 #7686
Dimanche 15 As 142 (Navigation du Dr Faustroll - fête Suprême Première seconde) 27 Brumaire An CCXXIII, 7,1131h - macjon 2014-W47-1T17:04:17Z
C'est possible mais je ne me sers jamais de valeur cible...
En revanche, j'ai utilisé l'équation xLN(x)+ax = b et non l'autre (Tamatave n'a pas dit laquelle des deux est la bonne, comme je l'avais demandé!) et si je la mets dans ton fichier, cela tourne sans résultat... mais peut-être ne l'ai-je pas bien fait...
Le VBA est très superflu, mais si l'on y tient utiliser l'enregistreur de macro pour créer le code.
Le VBA n'est pas spécialement nécessaire pour le calcul mais pour l'automatisation au changement de valeur...j'imaginais même qu'il faudrait peut-être traiter ensuite un tableau des coeff. a et b ; voilà la raison...
Merci beaucoup, j'avais corrigé l'erreur dans le premier fichier et le résultat était correct.
Pouvez-vous me donner la solution pour que ce calcul se fasse automatiquement lorsqu'on change les termes a, b et c de l'équation :
a*x*ln(x)+b*x+c = 0.
Dans l'exemple on a :
a = 42.9
b = 111.277
c = 0.572.
Pour faire de nombreux calculs bien sûr utiliser VBA.
La macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E3:G3]) Is Nothing Then _
[C4].GoalSeek Goal:=0, ChangingCell:=[C8]
End Sub