Résoudre une équation (un système d'équation ???) avec le solveur Excel 2007

Résolu
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 11 févr. 2012 à 01:16
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 - 11 févr. 2012 à 18:32
Bonsoir le Forum,

Je me casse la tête sur la résolution d'une équation assez complexe (du moins pour moi !). Je crois que je vais avoir besoin d'un peu d'aide de personnes plus calées en maths et qui maitrisent le solveur Excel 2007^^

Tout d'abord je découvre le solveur. Donc je ne gère pas la bête et je n'ai pas réussi à trouver mon bonheur sur le net.

Bref voici l'équation :

Viscosité = x * Exponentiel(y/(Température - z))


Cette équation donne la viscosité d'une huile pour une certaine température. Donc on entre une température, et on cherche à savoir quelle est la viscosité de l'huile à cette température.
Sauf qu'il reste les 3 coefficients x, y, z et je ne sais pas quoi en faire.

Est il possible de résoudre cette équation avec le solveur Excel 2007 ou faut t'il plus d'infos pour la résoudre ? Sinon en pratique, les gens font 3 mesures de viscosité de la même huile à 3 températures différentes. De cette façon, ils déterminent les coefficients x, y , z et sont capables d'utiliser l'équation initiale sans soucis.

Je suis un peu perdu dans la méthodologie de résolution !

Si quelqu'un pouvais me donner des conseils et m'apporter un peu d'aide pour cette équation, ce serait sympa.

Cordialement,

André

Ps : Je donne (au cas ou c'est important) les valeurs expérimentales de viscosité d'une huile pour 3 essais à température différente.

0,0099 = x * Exponentiel(y/(100- z))
0,0351= x * Exponentiel(y/(60- z))
0,387 = x * Exponentiel(y/(20- z))

Re PS : La finalité est de programmer tout ça par macro. Mais dans un premier temps on fera sans macro pour voir si ça marche, et si c'est pas trop compliquer comme résolution.
A voir également:

11 réponses

SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
11 févr. 2012 à 13:08
Bonjour le Forum,

Je viens de lire vos premières réponses et elles sont intéressantes. Je vous remercie déjà pour ça.

Acive : Dans mon équation, la fonction Exponentielle...est la fonction Exponentielle quoi. Dsl je ne saisis pas les nuances dont tu fait part. Et à mon avis il n'est pas besoin de se casser la tête sur le type possible de l'Exponentielle. Il s'agit de la fonction que tout le monde connait je pense. Sous Excel, "EXP(X)" tout simplement. La même que celle que l'on entrerait dans une calculatrice quoi.
Je me trompe peut être, mais je vois les choses comme ça.


Ucfoutu : Toi ici ??? Mais tu es présent sur tous les types de posts dis donc. En maths, en développement VBA piouf ! Ta pas finis de me surprendre.
Sinon je suis d'accord avec toi quand tu dis qu'il faut passer par la résolution algébrique avant de parler de programmation. On est d'accord. Sauf que justement, la résolution d'une telle équation m'est difficile^^
Cela dis j'ai obtenue une réponse quand à la méthodologie de résolution de cette équation. Voici ce qui est proposé :

Méthode :
Linéarisez l'équation.
V x * Exp(y/(T- z)) équivaut à ln(V) ln(x)+y/(T- z).

Vos trois mesures permettent d'écrire trois équations de la forme

T.(ln(V)-ln(x))-z.ln(V)=y-z.ln(x)

que vous réduisez, par élimination de y-z.ln(x), à un système de deux équations linéaires en ln(x) et z.
Vous en tirez les valeurs de ln(x) et z desquelles vous déduisez la valeur de y.
Les calculs effectifs sont simplissimes comme vous le verrez dans le classeur joint.


J'en suis la pour le moment. Je cherche à analyser sa réponse. Elle semble bien posée. Mais j'ai du mal à suivre la fin de son raisonnement. Il faut que je prenne un stylo et une feuille pour le refaire moi même... La courbe qu'il propose dans son classeur est tout à fait similaire à ce que je trouve dans la littérature. Donc il doit y avoir une bonne part de justesse dans son raisonnement.

Je post le classeur ci-après pour ceux que ça pourrais intéresser. Je vais réviser mes cours de maths entre temps^^

Donc a priori la méthode de résolution d'une telle équation serait résolue. (Ucfoutu tu étais dans le vrai avec ce que tu proposais !)

André

PS : Le lien pour télécharger le fichier
http://www.packupload.com/1RQZDFYKMXU
3
Utilisateur anonyme
11 févr. 2012 à 02:29
Salut sérieux,

Il faudrait déjà déterminer de quel genre d'application il s'agit:

- La fonction exponentielle, exp(x)=ex
- L'exponentielle de base a, expa(x)=ax
- La croissance/décroissance exponentielle
- La loi exponentielle en probabilité
- L'application exponentielle pour la géométrie différentielle (à mon avis c'est la bonne)
- L'exponentielle de matrice
ou encore:
- l'exponentielle complexe



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 07:45
Bonjour,
si je comprends bien, tu cherches à résoudre un système de 3 équations à 3 inconnues (x,y et z)
du genre
x * (exp(y/(a-z)) = 0
Cela passera d'abord (avant de parler de code), par la résolution algébrique !
La connais-tu ? Sinon >>> vers un forum dédié aux mathématiques d'abord !

Cecxi étant dit :
Je remarque ceci, dans l'exemple que tu montres :

On passe facilement d'un système de 3 équations à 3 inconnues à un système de plusieurs équations à 2 inconnues en divisant :
la première par la seconde
la premmière par la 3ème
etc ...
(car à chaque fois, l'inconnue x disparait ===>> = 1)

Comment ensuite traiter tout cela ? ===>> j'ai l'impression de ce que tu devras passer par les logarithmes de ce qui est en exponentielle, calculer, puis remettre en exponentielle.
Mais cela, ce n'est pas du développement informatique, mais de l'algèbre.
Lorsque tu auras résolu algébriquement (et seulement alors) , nous pourrons t'aider à écrire en VBA la succession des opérations qui conduisent aux valeurs de x, de y, et de z.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 07:49
Pardon :
lire du type
x * (exp(y/(a-z))- b = 0
où a et b sont connus et x,y et z inconnus

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 08:22
Je vais essayer (sans aller trop loin car plus du code, mais de l'algèbre) de te "mettre sur une voie".
Regarde ce que fait ceci :
  toto = Exp(20 / 2)
  titi = Log(20) - Log(2)
  tata = Exp(Exp(titi))
  MsgBox toto & "  = " & tata


Je n'irai pas plus loin car principalement algèbre et non développement
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 08:41
Ah oui :
J'appelle enfin ton attention sur un point à ne pas rater :
si par exemple, dans :
x * Exponentiel(y/(a- z))+ b = 0
/quote
z est > a ===>> Erreur , hein !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 16:16
Je ne vois aucun code dans le classeur du lien !
Il semble toutefois qu'il passe, comme je te l'ai dit, par le calcul logarithmique (ln, c'est le logarithme népérien)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
11 févr. 2012 à 16:31
Bonjour le Forum,

Bien après avoir étudier de beaucoup plus prêt la méthode de résolution de l'équation je suis parvenu à tout refaire seul. Il m'a quand même fallu 3 pages d'équations pour arriver à trouver les constantes X, Y et Z !!! Piouf tout de même.

Donc je ne proposerai pas d'autre solution car le fichier Excel que j'ai mis en lien de téléchargement ainsi que la méthode de résolution de l'équation sont très bien explicités.

Les formules du classeurs sont justes (du moins je retrouve exactement les même résultats).

Je suis pleinement satisfait de la réponse.

En ce qui concerne la partie programmation, je pensais initialement devoir utiliser le solveur pour résoudre le système d'équations. Et je voulais donc intégrer par code l'utilisation du solveur sous VBA pour automatiser l’ensemble.
Maintenant les choses sont différentes car l'utilisation du solveur n'est plus nécessaire. Du coup il n'y a pas besoin de grandes connaissances pour coder la résolution de l'équation. Il s'agit seulement d'entrer les formules pour X, Y, Z et l'équation est résolue.

Je le redis, la méthode de résolution qui est donnée 2 posts au dessus est parfaitement claire et adaptée. Le classeur qui résume l'ensemble contient tout ce dont il faut avoir.

Merci Ucfoutu pour le débroussaillage de l'équation. J'avais un peu de mal à la bricoler cette équation^^

Bien cordialement,

André
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 16:32
Il a, lui, choisi de traiter par l'addition (la multiplication devient addition en log)
et tu as donc un système de 3 équations à trois inconnues traditionnel, ou chaque équation devient du type :
ln(V) = ln(x)+y/(T- z).
où :
ln(V) est une valeur connue (puisque V est connu)
T est par définition une valeur connue
ln(x) est une inconnue
y est une inconnue
z est une inconnue

Il te suffit, après avoir traité de manière traditionnelle (celle de ton choix selon ton goût) ces 3 inconnues :
de ne rien toucher à y et à z
de recalculer x, qui n'est autre que Exp(ln(x))


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
11 févr. 2012 à 16:40
Ah !
Une dernière chose;
Tes calculs étant faits en VBA, utilise donc directement la fonction Log de vba plutôt que Worksheetfunction.Ln (qui, elle, fait appel à une fonction de Excel et est donc un détour à éviter).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
SERIEUXETCOOL Messages postés 336 Date d'inscription dimanche 3 avril 2011 Statut Membre Dernière intervention 12 juin 2012 1
11 févr. 2012 à 18:32
C'est exactement cela en effet.

J'ai fait même mieux maintenant. Une fois la résolution analytique des coefficients X, Y et Z déterminés j'ai osé TOUT réinjecter dans l'équation de base. Ainsi je n'ai plus qu'une seule équation à une seule inconnue (la viscosité). Toute l'équation ne dépends plus que des paramètres d'entré.

Disons que cela m'évite de créer des cellules qui ne me serviront à rien d'autre que de stocker les coefficients X, Y et Z. Ce qui au final ne me fait plus que coder une seule formule. Bon la formule est chiante à rentrer car bien longue. Mais une fois que c'est codé avec soin, le tour est joué. On a plus que les paramètres d'entrés et la "boîte noire" nous sors la viscosité. Le tout avec le minimum de cellules.

André
0
Rejoignez-nous