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

Fortran Discussion :

Système d'équations à deux inconnues


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut Système d'équations à deux inconnues
    Bonjour,
    J'ai à écrire un programme pour résoudre un système d'équations linéaires à deux inconnues; la seule chose que je n'arrive pas à faire est de faire apparaître le système (avant de le résoudre) sur l'écran.
    Voilà mon programme, merci de me signaler quoi ajouter
    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
    17
    18
    19
    20
    21
    22
    23
    24
    implicit none
    real u1,u2,v1,v2,x,y,w1,w2,delta_1,delta_2,delta_3,delta_4
    print* ,'entrer le nombre u1:'
    read*, u1
    print*, 'entrer le nombre u2:'
    read*, u2
    print* ,'entrer le nombre v1:'
    read*, v1
    print*, 'entrer le nombre v2'
    read*, v2
    print*,' entrer le nombre w1'
    read*, w1
    print* ,'entrer le nombre w2:'
    read*, w2
    delta_1=v1*w2-v2*w1
    delta_2=u2*v1-u1*v2
    delta_3=w2*u1-u2*w1
    delta_4=v2*u1-v1*u2
    x=delta_1/delta_2
    y=delta_3/delta_4
     
    print*,x 
    print*,y
    end program jjjj

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    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
    Par défaut système d equations a deux inconnus
    Salut!
    Quelques commentaires sur ton problème:

    1) Tu utilises la méthode de Cramer que, malheureusement on continue d'enseigner dans de nombreuses écoles. Pour un système de deux équations à deux inconnues, ça peut encore aller, mais pour des systèmes plus gros, le temps de calcul devient prohibitif (n factorielle pour Cramer et n**3 pour les "bonnes" méthodes. Si tu tombes sur des systèmes plus gros, je te recommande la bibliothèque gratuite LinPack, que tu trouveras sur le site www.netlib.org .

    2) Tu sembles ignorer que le Fortran permet de traiter des tableaux, correspondant aux matrices en mathématiques.

    3) Tu as calculé deux fois la même chose: delta_2 et delta_4 sont égaux au signe près.

    4) Pourquoi n'utilises-tu pas le paramètre Advance='No' dans ton dialogue interactif?

    5) Pourquoi n'utilises-tu pas les formats pour l'affichage du système et de la solution?

    Voici comment je programmerais ton problème (sous réserve des inévitables fautes de frappe et autres, car je n'ai pas eu le temps de tester!) :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Implicit None
    Real*8 A(2,2),B(2),X(2)
    Write (*,'(A11)'),Advance='No') 'Tapez A11: '
    Read (*,*) A(1,1)
    Write (*,'(A11)'),Advance='No') 'Tapez A12: '
    Read (*,*) A(1,2)
    Write (*,'(A10)'),Advance='No') 'Tapez B1: '
    Read (*,*) B(1)
    Write (*,'(A11)'),Advance='No') 'Tapez A21: '
    Read (*,*) A(2,1)
    Write (*,'(A11)'),Advance='No') 'Tapez A22: '
    Read (*,*) A(2,2)
    Write (*,'(A10)'),Advance='No') 'Tapez B2: '
    Read (*,*) B(2)
     
    Write (*,'(/A18/)') 'Système à résoudre'
    Do I=1,2
      Write (*,'(2EN12.3,5X,EN12.3)') (A(I,J),J=1,2),B(I)
    End Do
     
    Delta=A(1,1)*A(2,2)-A(1,2)*A(2,1)
    X(1)=(B(1)*A(1,2)-B(2)*A(2,2))/Delta
    X(2)=(A(1,1)*B(2)-A(2,1)*B(1))/Delta
     
    Write (*,'(/A19/)') 'Solution du système'
    Write (*,'(2EN12.3)') (B(J),J=1,2)
     
    Stop
    End
    Bonne chance
    Jean-Marc Blanc

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut
    Merci pour ta reponse,
    mais excuse moi, je ne suis qu un debutant en fortran, et j apprends les choses pas a pas

  4. #4
    Membre éclairé
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Par défaut
    D'autre part tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Write (*,'(A11)'),Advance='No') 'Tapez A11: '
    Je vois 3 parenthèses fermées et 2 ouvertes, alors où est-ce que je dois mettre la 3ème parenthèse pour ne plus avoir d'erreurs ?

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    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
    Par défaut Système d equations a deux inconnus
    Je t'avais bien dit de te méfier de mes fautes de frappe. L'instruction devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Write (*,'(A11)',Advance='No') 'Tapez A11: '

Discussions similaires

  1. Système d'équations à deux inconnues
    Par Anakin Skywalker dans le forum Mathématiques
    Réponses: 4
    Dernier message: 27/09/2019, 09h20
  2. Réponses: 5
    Dernier message: 18/12/2010, 21h46
  3. TP:Système d'équation à deux inconnues
    Par tayaa dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 19/11/2010, 16h46
  4. Ecrire une équation sur deux colonnes
    Par evincent dans le forum Mathématiques - Sciences
    Réponses: 1
    Dernier message: 22/03/2007, 07h55
  5. Déclarer une fonction avec deux inconnues
    Par a.ahmed dans le forum MATLAB
    Réponses: 6
    Dernier message: 27/02/2007, 09h43

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