[Users-fr] multiplication matricielle
Pascal Boulet
pascal.boulet at univ-amu.fr
Lun 20 Juin 17:48:25 CEST 2016
Super! merci!
Pascal
Le 20 juin 2016 à 17:09, users-fr-request at lists.scilab.org a écrit :
> Envoyez vos messages pour la liste users-fr à
> users-fr at lists.scilab.org
>
> Pour vous (dés)abonner par le web, consultez
> http://lists.scilab.org/mailman/listinfo/users-fr
>
> ou, par email, envoyez un message avec 'help' dans le corps ou dans le
> sujet à
> users-fr-request at lists.scilab.org
>
> Vous pouvez contacter l'administrateur de la liste à l'adresse
> users-fr-owner at lists.scilab.org
>
> Si vous répondez, n'oubliez pas de changer l'objet du message afin
> qu'il soit plus spécifique que "Re: Contenu du digest de users-fr..."
>
>
> Thèmes du jour :
>
> 1. multiplication matricielle (Pascal Boulet)
> 2. Re: multiplication matricielle (Samuel Gougeon)
> 3. Re: multiplication matricielle (Samuel Gougeon)
> 4. Sortie de Scilab 6.0.0 beta 2 (Scilab Team)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Mon, 20 Jun 2016 16:29:58 +0200
> From: Pascal Boulet <pascal.boulet at univ-amu.fr>
> To: users-fr at lists.scilab.org
> Subject: [Users-fr] multiplication matricielle
> Message-ID: <0DADA45A-1E93-4D36-B587-55D9D627A9DC at univ-amu.fr>
> Content-Type: text/plain; charset="windows-1252"
>
> 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: <http://lists.scilab.org/pipermail/users-fr/attachments/20160620/07774b07/attachment-0001.html>
>
> ------------------------------
>
> Message: 2
> Date: Mon, 20 Jun 2016 16:53:26 +0200
> From: Samuel Gougeon <sgougeon at free.fr>
> To: French users mailing list for Scilab <users-fr at lists.scilab.org>
> Subject: Re: [Users-fr] multiplication matricielle
> Message-ID: <57680366.9060308 at free.fr>
> Content-Type: text/plain; charset="windows-1252"; Format="flowed"
>
> Bonjour,
>
> Le 20/06/2016 16:29, Pascal Boulet a écrit :
>> 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.
> .
> Oui, il suffit de transposer votre matrice x avant de multiplier M par elle:
> newX = M*x.' // où x(:,i) désignent les coordonnées initiales de
> l'atome n°i, et newX(:,i) ses coordonnées finales.
>
> rotate3d() utilise cette méthode pour donner les coordonnées après une
> rotation en 3D :
> https://fileexchange.scilab.org/toolboxes/369000
>
> Bonne continuation
> Samuel
>
> -------------- section suivante --------------
> Une pièce jointe HTML a été nettoyée...
> URL: <http://lists.scilab.org/pipermail/users-fr/attachments/20160620/495621bb/attachment-0001.html>
>
> ------------------------------
>
> Message: 3
> Date: Mon, 20 Jun 2016 17:07:23 +0200
> From: Samuel Gougeon <sgougeon at free.fr>
> To: French users mailing list for Scilab <users-fr at lists.scilab.org>
> Subject: Re: [Users-fr] multiplication matricielle
> Message-ID: <576806AB.6030703 at free.fr>
> Content-Type: text/plain; charset="windows-1252"; Format="flowed"
>
> Le 20/06/2016 16:29, Pascal Boulet a écrit :
>> 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
> .
> Pour être concret :
>
> frac = M*x.'; // pour tester la sortie formatée dans la console, sans
> boucle : frac = frac.'; mprintf('%3s %10.5f %10.5f %10.5f\n', lab(:),
> frac(:,1), frac(:,2), frac(:,3))
>
>
> SG
>
> -------------- section suivante --------------
> Une pièce jointe HTML a été nettoyée...
> URL: <http://lists.scilab.org/pipermail/users-fr/attachments/20160620/bb1312c8/attachment-0001.html>
>
> ------------------------------
>
> Message: 4
> Date: Mon, 20 Jun 2016 17:09:09 +0200
> From: Scilab Team <yann.debray at scilab-enterprises.com>
> To: users-fr at lists.scilab.org
> Subject: [Users-fr] Sortie de Scilab 6.0.0 beta 2
> Message-ID: <57680715.30408 at scilab-enterprises.com>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> Cher utilisateur de Scilab,
>
> Nous avons publié la beta-2 de Scilab 6.0.0, la version revisitée de
> notre plateforme open-source pour la modélisation, la simulation et
> l'analyse de données scientifiques.
>
> Cette beta-2 est une candidate à la version finale pour tous les
> utilisateurs, commerciaux ou de la communauté.
>
> Télécharger Scilab 6.0.0 beta-2
> <http://www.scilab.org/download/6.0.0-beta-2>
>
> *Spécifique à cette version :
>
> *--> Xcos - l'outil pour le design & simulation de systèmes dynamiques -
> utilise le nouveau moteur de Scilab et se lance en natif, ce qui doit
> fournir de bien meilleures performances et supporter de bien plus grands
> modèles. Xcos peut charger et simuler des diagrammes créés avec
> d'anciennes versions de Scilab,
>
> --> Stabilité pour la migration de toolbox - le logiciel est désormais
> suffisamment stable pour que vous portiez votre code vers Scilab 6 !
> Postez votre nouvelle version sur ATOMS <https://atoms.scilab.org/add/>.
>
> *Nouveau dans Scilab 6 :*
>
> --> Nouveau coeur de calcul permettant l'utilisation de larges sets de
> données,
>
> --> Outils de productivité pour le développement
> <http://scilab.io/products/scilab/algo-dev/> : debugger, profiler et
> coverage.
>
> Merci de nous communiquer vos retours.
> Nous poursuivons nos efforts pour améliorer Scilab pour tout le monde.
> Nous espérons que vous apprécierez cette version.
>
> --
> The Scilab Team
>
> -------------- section suivante --------------
> Une pièce jointe HTML a été nettoyée...
> URL: <http://lists.scilab.org/pipermail/users-fr/attachments/20160620/c7abad44/attachment.html>
>
> ------------------------------
>
> Subject: Pied de page des remises groupées
>
> _______________________________________________
> users-fr mailing list
> users-fr at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users-fr
>
>
> ------------------------------
>
> Fin de Lot users-fr, Vol 44, Parution 1
> ***************************************
Plus d'informations sur la liste de diffusion users-fr