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 :

Calcul d'angle entre deux vecteurs


Sujet :

Fortran

  1. #1
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut Calcul d'angle entre deux vecteurs
    Bonjour,
    J'ai écrit un programme pour calculer l'angle entre deux vecteurs, par la formule Cos(alpha)=A.B/(|A|.|B|), mais la réponse c est toujours NAN,
    alors où est l'erreur dans mon code ci-dessous ?
    Merci
    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
    30
    31
    32
     
                 program alphae
                 real A(3),B(3)
                 real alpha
                 read*,(A(i),i=1,3)
                 read*,(B(i),i=1,3)
                 alpha=ACOS(DOTT(A,B,3)/(MODU(A,3)*MODU(B,3)))
                 print*,'alpha=',alpha
                 end
     
     
                 function DOTT(H, P, L)
                 integer L
                 real H(L)
                 real P(L),DOT 
                 DOT = 0.0
                 do 10 i  = 1,L
                    DOT = DOT + H(i)*P(i)
    10           continue
                 return
                 end  
     
                 function MODU(V,N)
                 integer N
                 real V(N),Z
                 Z=0.0
                 do 20 i=1,N
                    Z = Z+V(i)**2
    20           continue
                 Z=sqrt(Z) 
                 return
                 end

  2. #2
    Membre du Club Avatar de phy4me
    Inscrit en
    Octobre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 116
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par feynman Voir le message

    real A(3),B(3)
    Produit scalaire dans l'espace ??? les vecteurs A et B ne devront avoir que deux coordonnées je vois pas la raison de mettre A(3)

  3. #3
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    Oui, le produit scalaire peut etre dans dimension N>3
    A.B= sum(i=1,N)A(i)*B(i)

  4. #4
    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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Comment veux-tu que ta fonction DOTT sache qu'elle doit prendre la valeur que tu as mise dans la variable locale DOT? Idem pour MODU et Z.

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    Tu as raison,
    alors qu est ce qu il faut modifier?

  6. #6
    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 : 83
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Ta fonction DOTT doit se terminer par une instruction
    DOTT=DOT
    et ta fonction MODU par
    MODU=Z

    JMB
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  7. #7
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    Le alpha est en radian ou degre?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 107
    Points
    107
    Par défaut
    salut,

    Les angles renvoyés par les fonctions réciproques trigo sont en radian. L'indéterminations liée à l'usage de acos ([0,pi]) doit être levée avec un asin et l'usage d'un produit vectoriel, si toutefois c'est un angle orienté que tu cherches ...

  9. #9
    Débutant
    Inscrit en
    Juillet 2007
    Messages
    386
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 386
    Points : 119
    Points
    119
    Par défaut
    D accord
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calculer l'angle entre deux segments
    Par Riham Darine dans le forum Mathématiques
    Réponses: 5
    Dernier message: 22/04/2011, 00h39
  2. [GLSL] Calculer un angle entre deux vecteurs.
    Par who_knows dans le forum OpenGL
    Réponses: 5
    Dernier message: 05/05/2010, 17h40
  3. Programmation Python angles entre deux vecteurs
    Par Manudu38 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 18/11/2009, 18h17
  4. Calcul d'angle entre deux segments pour algo de Jarvis
    Par Niko_de_bordo dans le forum Mathématiques
    Réponses: 14
    Dernier message: 25/06/2009, 23h36
  5. Calcul d'angle entre 2 vecteurs - direction
    Par lothei dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 03/09/2007, 19h29

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