1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2017
    Messages : 33
    Points : 21
    Points
    21

    Par défaut Matrice, scalaire, vecteurs : comment se retrouver dans les opérations possibles ?

    Bonjour,

    J'aimerai savoir s'il y'à des règles générales lorsqu'on réalise des produits de vecteur, de matrice ou de scalaire entre eux?

    Si on considère le vecteur "X" de taille (1 x N), "Y" un scalaire et "I" une matrice (N x N).

    Peut-on réaliser par exemple ce genre de produit sur matlab ?

    exemple 1 : XH.X

    exemple 2 : y(X.XH + yl)

    exemple 3 : XH.X(X.XH)-1 + y(XH + XH .X.XH )

    exemple 4 : XH .X +2y + X.XH.y

    exemple 5 : XH.X.XH.X.XH.X

  2. #2
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 491
    Points : 123 752
    Points
    123 752

    Par défaut



    Reviens aux fondamentaux des opérations, tu verras que les conditions sur les dimensions sont assez normales. L'ordre dans la multiplication est très important (sauf avec des scalaires).

    La multiplication par un scalaire est toujours possible. Le produit scalaire (entre deux vecteurs) n'est possible que s'ils ont le même nombre d'éléments : 1xN puis Nx1. Le produit dyadique (toujours entre deux vecteurs), même chose, en inversant les deux vecteurs : Nx1 et 1xN, ça donne une matrice NxN. Le produit vectoriel n'est pas défini dans toutes les dimensions. Le produit vecteur-matrice ne peut se faire qu'entre un vecteur 1xN et une matrice NxM (l'ordre est important) ; un produit matrice-vecteur, qu'entre une matrice MxN et un vecteur Nx1.

    Pour généraliser, pour des vecteurs et des matrices, tu peux toujours effectuer un produit si les dimensions sont compatibles : (MxN) (NxO), peu importe M et O. Ainsi, le nombre de lignes du premier élément doit correspondre au nombre de colonnes du deuxième. Toujours de manière générale, toutes ces opérations sont des spécialisations du produit matriciel, qui s'effectue "ligne par colonne", un petit moyen mnémotechnique pour régler ces cas (https://fr.wikipedia.org/wiki/Produi...ciel_ordinaire).

    Enfin, ne te stresse pas trop non plus : peu importe le nombre d'années de pratique, ça arrive toujours d'avoir un problème de dimensions pour une multiplication .
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    février 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2017
    Messages : 33
    Points : 21
    Points
    21

    Par défaut

    Bonjour,

    Merci d'avoir répondu.

    Je me permets de re-résumer, ton explication pour savoir si j'ai bien compris.
    - le produit d'un vecteur colonne (1 x N) et d'un vecteur ligne (N x 1 ) = matrice
    - le produit d'une matrice (N x N) et d'un scalaire donnera toujours une matrice = matrice
    - le produit d'un vecteur (1 x N) et d'une matrice (N x M) = matrice
    - le produit d'une matrice (N x N) et un vecteur (Nx1) = matrice

    Que donne dans ces cas la :

    - le produit d'un scalaire et d'un vecteur ligne ?
    - le produit d'un scalaire et d'un vecteur colonne ?
    - la somme d'un vecteur et d'un scalaire ou la somme d'une matrice et d'un scalaire ?

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    décembre 2013
    Messages
    1 533
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : décembre 2013
    Messages : 1 533
    Points : 3 188
    Points
    3 188

    Par défaut

    2 règles générales :
    - Le produit d'un scalaire par un Truc-quelconque ne change pas la nature du Truc-quelconque. Application : Un scalaire multiplié par un vecteur ligne, ça donne un vecteur ligne. Et dans le cas d'un scalaire, Scalaire x Truc, ou Truc x Scalaire, ça donne le même résultat. (alors que si on veut multiplier un vecteur par une matrice par exemple, l'ordre est important)
    - Pour les sommes, on ne peut pas additionner 2 éléments s'ils ne sont pas de même nature. Application; on ne peut pas additionner un scalaire avec un vecteur, ou un vecteur avec une matrice...
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  5. #5
    Responsable Qt


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherches
    Inscrit en
    août 2008
    Messages
    22 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherches
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 22 491
    Points : 123 752
    Points
    123 752

    Par défaut

    Citation Envoyé par treeselectif Voir le message
    Je me permets de re-résumer, ton explication pour savoir si j'ai bien compris.
    - le produit d'un vecteur colonne (1 x N) et d'un vecteur ligne (N x 1 ) = matrice
    - le produit d'une matrice (N x N) et d'un scalaire donnera toujours une matrice = matrice
    - le produit d'un vecteur (1 x N) et d'une matrice (N x M) = matrice
    - le produit d'une matrice (N x N) et un vecteur (Nx1) = matrice
    Pas vraiment. Quand tu regardes les dimensions, le produit (MxN) (NxO) donnera une matrice MxN (matrice étant un terme plus générique que vecteur ou scalaire). Ainsi, un produit entre une matrice et un vecteur ne donnera jamais une matrice.

    Ensuite, il existe des opérations un peu différentes, moins usuelles, comme le produit de Hadamard (produit élément par élément) : appliqué à deux vecteurs (deux lignes ou deux colonnes), il donne un vecteur de même dimension, ce qu'il est impossible de faire avec les multiplications "normales". Avec MATLAB, si tu additionnes un scalaire à une matrice, tu effectueras cette opération sur tous les éléments (https://nl.mathworks.com/help/matlab/ref/plus.html). Maintenant, ces opérations ne sont pas du tout habituelles et utilisent des notations différentes (sauf côté programmation, en général, mais ça dépend des langages).
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Membre éprouvé

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    décembre 2010
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : décembre 2010
    Messages : 489
    Points : 947
    Points
    947
    Billets dans le blog
    5

    Par défaut

    Bonjour,

    Citation Envoyé par dourouc05 Voir le message
    ... Quand tu regardes les dimensions, le produit (MxN) (NxO) donnera une matrice MxN (matrice étant un terme plus générique que vecteur ou scalaire). Ainsi, un produit entre une matrice et un vecteur ne donnera jamais une matrice ...
    Scilab (comme probablement son double payant Matlab) considère toutes données numériques comme des matrices: en ce sens, le produit évoqué conduit encore à une matrice, uniligne (vecteur ligne) ou unicolonne (vecteur colonne); pour reprendre la notation utilisée:
    Mat(M, N)*Vect_Col(N) = (M, N)*(N,1) = (M, 1) = Vect_Col(M)
    Vect_Lig(N)*Mat(N, O) = (1, N)*(N, O) = (1, O) = Vect_Lig(O)

    Et dans le droit fil de cette logique, tout scalaire est une matrice réduite à une seul élément; d'où la définition du produit scalaire de deux vecteurs, et du carré de leur norme euclidienne, qui font intervenir la transposition:
    Ps(Vect1, Vect2) = Vect_Lig1(N)│Vect_Lig2(N) = (1, N)*t(1, N) = (1, N)*(N, 1) = (1, 1)
    Ps(Vect1, Vect2) = Vect_Col1(M)│Vect_Col2(M) = t(M, 1)*(M, 1) = (1, M)*(M, 1) = (1, 1)
    Norm2(Vect_Lig[N)) = (1, N)*t(1, N) = (1, N)*(N, 1) = (1, 1)
    de même que la norme euclidienne d'une matrice:
    Norm2(Mat(M, N)) = Tr(Mat(M, N)*tMat(M, N) = Tr((M, N)*(N, M)) = Tr((M, M)) = (1, 1) .


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

Discussions similaires

  1. Comment se retrouver dans l'arborescence de JDK ?
    Par Serge55 dans le forum Débuter
    Réponses: 13
    Dernier message: 19/02/2016, 12h16
  2. Comment se repérer dans les licences professionnelles de Microsoft ?
    Par Gordon Fowler dans le forum Actualités
    Réponses: 0
    Dernier message: 16/12/2010, 14h24
  3. Réponses: 13
    Dernier message: 21/02/2009, 11h30
  4. Réponses: 1
    Dernier message: 12/02/2009, 17h51
  5. Comment s'y retrouver dans les fonctions?
    Par Boursicotteur dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 21/10/2007, 19h08

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