[Users-fr] multiplication matricielle

Pascal Boulet pascal.boulet at univ-amu.fr
Lun 20 Juin 16:29:58 CEST 2016


Bonjour,

Je travaille avec des atomes (dans une molécule) auxquels je veux appliquer une matrice de transformation 3x3. Les atomes sont repérés par des coordonnées x, y et z. En fait j’ai une liste de ’nat' atomes. Actuellement, pour appliquer la matrice à chacun des atomes je fais une boucle sur les atomes, tel que:

for i=1:nat
        pos(:)=x(i,:)
        frac=M*pos'
        mfprintf(fd,'%3s %10.5f %10.5f %10.5f\n',lab(i),frac(1),frac(2),frac(3))
    end
Les positions de tous les atomes sont contenues dans la matrice x(1:nat,1:3). Dans la boucle chaque position est stockée dans pos(1:3) puis multipliée par la matrice de transformation M. Ensuite j’écris le résultat dans un fichier.

Je voudrais simplement savoir s’il y a une méthode plus efficace qui permettrait de s’affranchir de la boucle sur le nombre d’atomes et pour bénéficier de la vectorisation de Scilab.

Merci de votre réponse.
Cordialement,
Pascal


-
Pascal Boulet - MCF HDR, Resp. L1 MPCI - DEPARTEMENT CHIMIE
Aix-Marseille Université - ST JEROME - Avenue Escadrille Normandie Niemen - 13013 Marseille
Tél: +33(0)4 13 55 18 10 - Fax : +33(0)4 13 55 18 50
Email : pascal.boulet at univ-amu.fr


-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20160620/07774b07/attachment.htm>


Plus d'informations sur la liste de diffusion users-fr