IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Résolution de l'équation Y - B*EXP(-A*X*Y) = 0


Sujet :

Mathématiques

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    14
    Points
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Points : 8
    Par défaut Résolution de l'équation Y - B*EXP(-A*X*Y) = 0
    salut,

    j' écris un programme en fortran par lequel je veux résoudre l'équation suivante:

    Y + B*EXP(-A*X*Y) = 0

    A et B est une constante
    X variable à l'entrée
    Y le résultat à la sortie

    lorsque j'écris l'équation telle quelle est j'aurai un message d'erreur après la compilation. y' a t il une astuce pour le faire?

    mon programme est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    program autocoherence
      double precision      A, B, Y
      double precision      X(6)
      B=1.8D0
      open(1,file='data',status='old')
      do k=1,6
        read(2,*) X(k)
        write(*,*) ' X(',k,')= ', X(k)
      end do
      A=4.45D0
      do k=1,6
        Y + B*EXP(-A*Y*X(k)) = 0 
        write(*,*) 'Y=', Y
      end do
    end
    merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    110
    Points
    130
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 110
    Points : 130
    Par défaut
    Bonjour,

    si le Fortran pouvait faire des choses comme cela, ca ferait longtemps qu'on aurait arrêté de faire des mathématiques...
    Excuse moi de me moquer de toi mais je pense que tu devrais te documenter un peu plus d'une part sur ton équation et d'autre part l'informatique notamment la programmation en général.
    Si une personne t'a dit qu'on pouvait faire cela avec Fortran, alors tu devrais te tourner vers cette personne et la harceler.

    Peut-être que d'autres personnes auraient le courage de mieux te répondre. Encore une fois désolé.

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Points
    5 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Par défaut
    Salut !

    Quelques citations tirées de "L'Art poétique" de Nicolas Boileau (1636 - 1711) que chacun devrait méditer avant d'essayer de s'adresser à un ordinateur pour lui confier une tâche:
    Avant donc que d'écrire, apprenez à penser.
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    Hâtez-vous lentement, et sans perdre courage,
    Vingt fois sur le métier remettez votre ouvrage,
    Polissez-le sans cesse, et le repolissez,
    Ajoutez quelquefois, et souvent effacez.
    Ce que tu écris dans ton titre Y + B*EXP(-A*X*Y) = 0 est une équation à deux inconnues. Tu ne pourras donc pas la résoudre. Ce que tu sembles vouloir faire en réalité, c'est calculer Y pour diverses valeurs de X; il s'agit donc de tabuler une fonction et non de résoudre une équation. En principe, on peut envisager trois manières de faire fondamentalement différentes:
    • Tu essaies d'exprimer analytiquement la fonction Y(X), ce qui n'est pas toujours possible; un programme de calcul formel comme Mathematica ou Maple peut t'aider. Ensuite, tu tabules cette fonction.
    • Tu considères X comme un paramètre, au même titre que A et B. Tu obtiens obtiens donc, pour chaque valeur de X, une équation non linéaire à une inconnue Y, que tu peux résoudre par une méthode classique (dichotomie, regula falsi, Newton).
    • Tu commences par te demander comment tu es arrivé à cette affreuse équation et si tu n'as pas compliqué inutilement un problème a priori beaucoup plus simple.


    Jean-Marc Blanc

    PS: Ton problème n'est pas un problème de Fortran, mais d'algorithmique. La prochaine fois, poste dans le bon forum !

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Points
    16 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Par défaut
    Citation Envoyé par supraconductivité Voir le message
    salut
    j' écris un programme en fortran par lequel je veux résoudre l'équation suivante
    Y + B*EXP(-A*X*Y) = 0
    bonsoir,

    Sans parler de programmation, est-ce que tu as déjà une idée de méthode pour résoudre ton équation ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Points
    1 913
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Par défaut
    j' écris un programme en fortran par lequel je veux résoudre l'équation suivante
    Y + B*EXP(-A*X*Y) = 0

    A et B est une constante
    X variable à l'entrée
    Y le résultat à la sortie
    Une équation possède (par définition) UNE ou PLUSIEURS inconnues.
    Si on commençait par le début.
    Quelle est l'inconnue ?
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  6. #6
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Points
    1 213
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Par défaut
    Citation Envoyé par Zavonen Voir le message
    Une équation possède (par définition) UNE ou PLUSIEURS inconnues.
    Si on commençait par le début.
    Quelle est l'inconnue ?
    Il l'a dit: Y (a,b et X sont paramètres)

    Pour simplifier, posons c=a*X

    Considérons les fonctions f(y)=-y et g(y)=exp(-cy)

    Il cherche les intersections f(y)=g(y), à savoir l'intersection de la droite centrée en 0 de pente -1 avec l'exponentielle: ça semble assez facile de connaitre le nombre de solutions: 1

  7. #7
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Points
    1 913
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Par défaut
    Il l'a dit: Y (a,b et X sont paramètres)
    Il a dit que A et B sont des constantes, donc des paramètres, mais il n'a pas dit s'il cherchait à résoudre en X ou en Y.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Points
    16 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Par défaut
    Citation Envoyé par Nemerle Voir le message
    ça semble assez facile de connaitre le nombre de solutions: 1
    ou 0... ou 2...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Points
    982
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Par défaut
    Pour peut être t'aider à démarrer je te propose cette démarche :

    Je suppose que tu connais X car tu as dis que c'est une variable d'entré ! Donc si je comprend bien tu cherches Y car tu connais aussi A et B.

    Donc il faut que tu crées un boucle sur Y et que tu testes qu'elle valeur de Y te donne une valeur de ta fonction la plus proche de 0.

    Exemples

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Y0 =
    pas =
    Do i=1,N
      Y = Y0 + i * pas
     
      val = f(Y)  ! tu calcules ici ta fonction
     
       If( abs( f(Y)) <  sueil) exit
    Enddo
     
    write(*,*) Y,f(Y)
     
    end
    Je te laisse te débrouiller pour les déclarations et la programmation de ta fonction ! Attention ce que j'ai écris dépend fortement du pas que tu vas mettre ! Tu risque de ne jamais sortir de la boucle !

    Il existe des choses plus raffinées, par exemple tu peux chercher la valeur de Y pour laquelle ta fonction change de signe !

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Points
    5 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Par défaut
    Salut !

    Désolé, Ladgalen, mais la méthode que tu proposes est d'une effroyable inefficacité. Depuis Isaac Newton, on sait qu'on peut faire beaucoup mieux.

    Jean-Marc Blanc

  11. #11
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    14
    Points
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Points : 8
    Par défaut la variable est Y
    salut
    la variable est Y

  12. #12
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Points
    1 213
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    ou 0... ou 2...
    j'attendais... y-a qu'pseudocode qui suit

  13. #13
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    14
    Points
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Points : 8
    Par défaut
    salut
    je veux trouver la méthode pour la calculer
    c'est ça mon problème.
    la seule idée qui me vient dans la tête c'est la résolution graphique.
    peut être il faut changer la forme de l'équation ou faire un changement de variable .

    à Nemerle:
    Envoyé par pseudocode Voir le message
    ou 0... ou 2...
    j'attendais... y-a qu'pseudocode qui suit
    NON IL YA UNE SEULE VALEUR DE Y QUI VERIFI L'EQUATION Y - B*EXP(-C*Y) = 0 POUR UNE VALEUR DE C DONNEE

  14. #14
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Points
    1 213
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Par défaut
    Citation Envoyé par supraconductivité Voir le message
    NON IL YA UNE SEULE VALEUR DE Y QUI VERIFI L'EQUATION Y - B*EXP(-C*Y) = 0 POUR UNE VALEUR DE C DONNEE
    PAS VRAI DU TOUT (si tu veux parler fort)

    exp(-Y/2) et -Y ne se coupent pas par exemple...

  15. #15
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Points
    982
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Par défaut
    Oui ! je n'aurait pas fait comme ça !!!

    Mais comme il sais pas faire autant qu'il commence par un truc tout bête !

  16. #16
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Points
    1 913
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Par défaut
    Je confirme l'affirmation de pseudocode:
    C=1 pas de solution
    C=-1 une solution
    C=0.2 deux solutions
    On cherche les annulations de y+exp(-cy)
    Il suffit d'étudier la variation de :
    f(y)=y+exp(-cy)
    par le signe de sa dérivée
    puis les limites aux bornes
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  17. #17
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    14
    Points
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 14
    Points : 8
    Par défaut à Nemerle
    non je parle de la fonction Y - B*EXP(-C*Y) = 0 c'est à dire
    Y=B*EXP(-C*Y)
    et comme tu le sais Y et EXP(-C*Y) se coupent en un seul point!


    Remarque j'ai déjà édité mon sujet, tu va trouver la fonction correcte dans mon premier message

  18. #18
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Points
    422
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Par défaut
    personne n'a donné de réponse encore à sa question finalement ???

    voici les méthodes qu'il faut utiliser à priori
    http://wims.u-psud.fr/wims/wims.cgi?...s%2Fdoczero.fr

  19. #19
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Points
    16 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 084
    Par défaut
    Citation Envoyé par supraconductivité Voir le message
    et comme tu le sais Y et EXP(-C*Y) se coupent en un seul point!
    non, non et non. Elles se coupent en 0,1 ou 2 points suivant la valeur de C.
    Comme l'a dit Zavonen, essaye de tracer l'exponentiel avec les valeurs C=1, C=1 et C=0.2.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #20
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Points
    1 913
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Par défaut
    j' écris un programme en fortran par lequel je veux résoudre l'équation suivante:
    Y + B*EXP(-A*X*Y) = 0
    Puis plus tard !
    non je parle de la fonction Y - B*EXP(-C*Y) = 0 c'est à dire
    Y=B*EXP(-C*Y)
    Inconnue d'abord non précisée, puis confusion sur les équations, et puis quoi encore ???
    Et pourquoi perdre du temps sur un problème archi connu dont les solutions se trouvent partout (dichotomie, parties proportionnelles, sécantes, newton, itérations successives, etc...)?
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Résolution d'une équation trigonométrique
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 20/08/2009, 18h47
  2. Résolution d'une équation
    Par johnvox dans le forum Delphi
    Réponses: 6
    Dernier message: 13/02/2007, 11h04
  3. Réponses: 1
    Dernier message: 08/12/2006, 18h13
  4. Résolution d'une équation par Gauss
    Par rahmani01 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/11/2006, 23h15
  5. résolution de l'équation f(y)=0
    Par salseropom dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 28/05/2006, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo