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

SERIEUXETCOOL 336 Messages postés dimanche 3 avril 2011Date d'inscription 12 juin 2012 Dernière intervention - 11 févr. 2012 à 01:16 - Dernière réponse : SERIEUXETCOOL 336 Messages postés dimanche 3 avril 2011Date d'inscription 12 juin 2012 Dernière intervention
- 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.
Afficher la suite 

11 réponses

Répondre au sujet
SERIEUXETCOOL 336 Messages postés dimanche 3 avril 2011Date d'inscription 12 juin 2012 Dernière intervention - 11 févr. 2012 à 13:08
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de SERIEUXETCOOL
Utilisateur anonyme - 11 févr. 2012 à 02:29
0
Utile
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
Commenter la réponse de Utilisateur anonyme
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 07:45
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 07:49
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 08:22
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 08:41
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 16:16
0
Utile
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
Commenter la réponse de ucfoutu
SERIEUXETCOOL 336 Messages postés dimanche 3 avril 2011Date d'inscription 12 juin 2012 Dernière intervention - 11 févr. 2012 à 16:31
0
Utile
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é
Commenter la réponse de SERIEUXETCOOL
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 16:32
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 11 févr. 2012 à 16:40
0
Utile
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
Commenter la réponse de ucfoutu
SERIEUXETCOOL 336 Messages postés dimanche 3 avril 2011Date d'inscription 12 juin 2012 Dernière intervention - 11 févr. 2012 à 18:32
0
Utile
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é
Commenter la réponse de SERIEUXETCOOL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.