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

Python Discussion :

produit scalaire vecteurs


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut produit scalaire vecteurs
    Bonjour a tous
    je dois realiser un programme pour calculer le cosinus de deux vecteurs dans deux listes
    j'ai fait ceci mais ca ne fonctionne pas pouvez-vous m'aidez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    from math import*
    x1=float(input ("saisir un x1="))
    y1=float(input ("saisir un y1="))
    z1=float(input ("saisir un z1="))
    x2=float(input ("saisir un x2="))
    y2=float(input ("saisir un y2="))
    z2=float(input ("saisir un z2="))
    L1=[x1,y1,z1]
    L2=[x2,y2,z2]
    alpha=((L1*L2)/(sqrt(L1*L1)*sqrt(L2*L2))
    print('alpha=',alpha)
    Merci de votre réponse

  2. #2
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    Bonsoir briguiiii
    Si cela peut aider
    Trouvé ici http://revue.sesamath.net/spip.php?article385

    Le calcul du produit scalaire de deux vecteurs représentés par des listes s’effectue en utilisant les primitives sum et zip
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> u = [1, 4, 7, 8, -2]
     
    >>> v = [0, 11, -7, 1, -3]
     
    >>> sum([x * y for x, y in zip(u, v)])
     
    9

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 5
    Par défaut
    je ne comprends pas a quoi correspond la commande sum et zip

  4. #4
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    zip voir:
    La fonction zip est une fonction très simple nous venant des langages fonctionnels tels que Objective Caml ou Haskell, et permettant de combiner plusieurs listes en une seule, de manière à rendre les itérations plus efficaces.

    En effet, imaginons que nous voulions itérer sur deux listes. La solution naïve venant à l'esprit est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i in xrange(min(len(liste1), len(liste2))):
     
        e1, e2 = liste1[i], liste2[i]
     
        # Actions en utilisant e1 et e2
    Cependant, comme il a été dit dans la partie sur enumerate, les indices sont à éviter le plus possible dans ce genre de contexte. Pour réaliser cela, on a donc recours à la fameuse fonction zip qui nous permet de faire cette itération sur deux listes facilement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for e1, e2 in zip(liste1, liste2):
     
     # Actions en utilisant e1 et e2
    Ceci s'explique par la définition de zip que l'on peut trouver dans la documentation de Python.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    zip(...)
     
        zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]
     
        Return a list of tuples, where each tuple contains the i-th element
     
        from each of the argument sequences. The returned list is truncated
     
        in length to the length of the shortest argument sequence.
    zip réalise donc la fonction suivante : pour une liste [a, b, c] et une autre liste [d, e, f], zip nous donnera une liste [(a, d), (b, e), (c, f)]. En effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> zip(['a', 'b', 'c'], ['d', 'e', 'f'])
     
    [('a', 'd'), ('b', 'e'), ('c', 'f')]

  5. #5
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut
    voir ici (site :/www.science-emergence.com)
    Pour sommer tous les éléments d'une liste sous python il existe la fonction "Built-in" sum(), illustration:

    >>> list = [1,2,3,4]
    >>> sum(list)
    10

  6. #6
    Membre émérite

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Billets dans le blog
    1
    Par défaut Une solution
    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
     
    from math import*
     
    L1=[1, 4, 7]
    L2=[0, 11, -7]
    Liste_produits=[x*y for x, y in zip(L1,L2)]
    produitScalaire=sum(Liste_produits)
    print(Liste_produits)
    print(produitScalaire)
    L1Carre=[x*x for x in L1]
    L2Carre=[x*x for x in L2]
    normeL1=sqrt(sum(L1Carre))
    normeL2=sqrt(sum(L2Carre))
    print(normeL1, normeL2)
    Cos_alpha=produitScalaire/(normeL1*normeL2)
     
    print('cos(alpha)=',Cos_alpha)

Discussions similaires

  1. Produit scalaire de vecteurs
    Par SRoiya dans le forum Assembleur
    Réponses: 3
    Dernier message: 12/03/2017, 14h38
  2. produits scalaire entre vecteur et matrice?
    Par FATENMRABET dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 02/10/2013, 15h26
  3. Produit scalaire de deux vecteurs
    Par adrian07 dans le forum Débuter
    Réponses: 3
    Dernier message: 11/06/2012, 10h55
  4. produit scalaire de 2 vecteurs
    Par aroua dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 07/04/2008, 13h06

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