Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Jeu d'indices sur des vecteurs

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Maple en algèbre linéaire
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
bendesarts



Inscrit le: 27 Fév 2009
Messages: 234

MessagePosté le: 17 Nov 2012 20:46    Sujet du message: Jeu d'indices sur des vecteurs Répondre en citant

Bonjour,

J'ai un problème de notations sur des vecteurs.
J'ai un vecteur AiBi exprimé dans une base Bi.
Je note ceci :
A[i]B[i]_BS[i]:=<-e[i], 0, 0>;
Et j'aimerais que lorsque j'entre la commande :
A[1]B[1]_BS[1];
J'ai la réponse suivante : <-e[1], 0, 0>
En d'autres termes, j'aimerais faire un jeu d'indices intelligents.

De la même manière,

Code:
BiCi_F_i := Vector(3, {(1) = li*(-cos(phi[i](t))*cos(a[i])*cos(gamma[i](t))*cos(psi[i](t))+cos(phi[i](t))*cos(a[i])*sin(gamma[i](t))*sin(psi[i](t))+sin(a[i])*sin(phi[i](t))), (2) = li*(-cos(phi[i](t))*sin(a[i])*cos(gamma[i](t))*cos(psi[i](t))+cos(phi[i](t))*sin(a[i])*sin(gamma[i](t))*sin(psi[i](t))-cos(a[i])*sin(phi[i](t))), (3) = li*(sin(gamma[i](t))*cos(psi[i](t))+cos(gamma[i](t))*sin(psi[i](t)))*cos(phi[i](t))})


J'aimerais que une commande qui me permette d'avoir le vecteur B1C1_F_1 c'est-àdire le vecteur B1C1 preojeté dans la base B1 à partir du vecteur BiCi_F_i c'est à dire le vecteur BiCi_F_i que j'ai déterminé avec des composantes dont certaines variables sont indicés i.

J'espère que je me suis fait comprendre car je n'ai pas été très clair. J'en suis désolé.

Je vous remercie d'avance pour votre aide.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 18 Nov 2012 8:17    Sujet du message: Répondre en citant

Bonjour,
La forme que vous proposez conduit à une erreur de syntaxe.
Donc en notant AB_BS[i] le vecteur, ça permet de répondre à votre problème. Idem avec BC_F[i].

Code:

> for i to 3 do AB_BS[i]:=<-e[i], 0, 0> od:
>
> print(AB_BS[2]);
>

                               [-e[2]]
                               [     ]
                               [  0  ]
                               [     ]
                               [  0  ]

> for i to 3 do
> BC_F[i] := Vector(3, {(1) = li*(-cos(phi[i](t))*cos(a[i])*cos(gamma[i](t))*cos(psi[i](t))+cos(phi[i](t))*cos(a[i])*sin(gamma[i](t))*sin(psi[i](t))+sin(a[i])*sin(phi[i](t))), (2) = li*(-cos(phi[i](t))*sin(a[i])*cos(gamma[i](t))*cos(psi[i](t))+cos(phi[i](t))*sin(a[i])*sin(gamma[i](t))*sin(psi[i](t))-cos(a[i])*sin(phi[i](t))), (3) = li*(sin(gamma[i](t))*cos(psi[i](t))+cos(gamma[i](t))*sin(psi[i](t)))*cos(phi[i](t))}) od:
>
> print(BC_F[2]);

        [li (

        -cos(phi[2](t)) cos(a[2]) cos(gamma[2](t)) cos(psi[2](t))

         + cos(phi[2](t)) cos(a[2]) sin(gamma[2](t)) sin(psi[2](t))

         + sin(a[2]) sin(phi[2](t)))]

        [li (

        -cos(phi[2](t)) sin(a[2]) cos(gamma[2](t)) cos(psi[2](t))

         + cos(phi[2](t)) sin(a[2]) sin(gamma[2](t)) sin(psi[2](t))

         - cos(a[2]) sin(phi[2](t)))]

        [li (sin(gamma[2](t)) cos(psi[2](t))

         + cos(gamma[2](t)) sin(psi[2](t))) cos(phi[2](t))]

>


@ +
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
bendesarts



Inscrit le: 27 Fév 2009
Messages: 234

MessagePosté le: 19 Nov 2012 10:02    Sujet du message: Répondre en citant

Ok. MErci pour voter aide.

Par contre, j'ai essayé de réaliser la manip sur le vecteur final de mon calcul V_C_BTP_F_li[1] et celà n'a pas marché (voir ci-dessous). Celà provient peut-être de la définition de mon vecteur V_C_BTP_F_li[i] qui n'est pas tout à fait explicite.

[img][/img]

Avez-vous une idée pour que le vecteur V_C_BTP_F_li[1] soit calculé ?

Merci d'avance pour votre aide
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 19 Nov 2012 12:29    Sujet du message: Répondre en citant

peut-être faire une boucle pour i allant de 1 à 3, sinon c'est difficile de voir à partir de cette image le résultat escompté.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
bendesarts



Inscrit le: 27 Fév 2009
Messages: 234

MessagePosté le: 20 Nov 2012 12:20    Sujet du message: Répondre en citant

Bonjour,

j'ai essayé de faire une boucle for devant tout mon programme pour avoir mes expressions indicées de 1 à 4 mais ma boucle ne marche pas.

Voici mon code :

Code:

restart:
with(LinearAlgebra):
with(Student[MultivariateCalculus]):
for i to 4 do
Omega_BS_i_F_int_i_BBS_i[i]:=<0, diff(gamma[i](t), t), 0>;
Omega_int1_i_BS_i_Bint1[i]:=<0, diff(psi[i](t), t), 0>;
Omega_int2_i_int1_i_Bint2_i[i]:=<0,0,diff(phi[i](t),t)>;
Omega_BB_i_int2_i_BBB_i[i]:=<diff(theta[i](t),t),0,0>;
P_F_int_i_F[i]:=Matrix([<cos(a[i]),sin(a[i]),0>,<-sin(a[i]),cos(a[i]),0>,<0,0,1>]);
P_BS_i_F_int_i[i]:= Matrix([<cos(gamma[i](t)), 0, -sin(gamma[i](t))>,<0, 1, 0>,<sin(gamma[i](t)), 0, cos(gamma[i](t))>]);
P_int1_i_BS_i[i]:= Matrix([<cos(psi[i](t)), 0, -sin(psi[i](t))>,<0, 1, 0>,<sin(psi[i](t)), 0, cos(psi[i](t))>]);
P_int2_i_int1_i[i]:= Matrix([<cos(phi[i](t)), sin(phi[i](t)), 0>,<-sin(phi[i](t)), cos(phi[i](t)), 0>, <0, 0, 1>]);
P_BB_i_int2_i[i]:= Matrix([<0, cos(theta[i](t)), sin(theta[i](t))>,<1, 0, 0>,<0, -sin(theta[i](t)), cos(theta[i](t))>]);
AGBS_BS[i]:=<-(1/2)*d[i], 0, 0>;
AGBS_F[i] := simplify(P_F_int_i_F[i].P_BS_i_F_int_i.AGBS_BS[i]);
V_GBS_F[i] := simplify(map(diff, AGBS_F[i], t));
I_BS_G_BBS[i] := Matrix([<0, 0, 0>,<0, JBS[i] , 0>,<0, 0, JBS[i] >]);
I_BB_G_BBB[i] := Matrix([<0, 0, 0>,<0, JBB[i] , 0>,<0, 0, JBB[i] >]);
T_BS_0[i] := (1/2)*DotProduct(V_GBS_F[i], V_GBS_F[i], conjugate = false)+(1/2)*DotProduct(Omega_BS_i_F_int_i_BBS_i[i], MatrixVectorMultiply(I_BS_G_BBS[i], Omega_BS_i_F_int_i_BBS_i[i]), conjugate = false);
BGBB_BB[i]:=<-(1/2)*l[i], 0, 0>;
BGBB_F[i] := simplify(P_F_int_i_F[i].P_BS_i_F_int_i[i].P_int1_i_BS_i[i].P_int2_i_int1_i[i].P_BB_i_int2_i[i].BGBB_BB[i]);
V_GBB_F[i] := simplify(map(diff, AB_F[i]+BGBB_F[i], t));
Omega_int2_i_int1_i_BBB_i[i]:=simplify(MatrixVectorMultiply(MatrixInverse(P_BB_i_int2_i[i]), Omega_int2_i_int1_i_Bint2_i[i]));
Omega_int1_i_BS_i_BBB_i[i]:=simplify(MatrixVectorMultiply(MatrixMatrixMultiply(MatrixInverse(P_BB_i_int2_i[i]),MatrixInverse(P_int2_i_int1_i[i])),Omega_int1_i_BS_i_Bint1[i]));
Omega_BS_i_F_int_i_BBB_i[i]:=simplify(MatrixVectorMultiply(MatrixMatrixMultiply(MatrixInverse(P_BB_i_int2_i[i]), MatrixMatrixMultiply(MatrixInverse(P_int2_i_int1_i[i]), MatrixInverse(P_int1_i_BS_i[i]))), Omega_BS_i_F_int_i_BBS_i[i]));
Omega_BB_i_F_BBB_i[i]:=simplify(Omega_BB_i_int2_i_BBB_i[i]+Omega_int2_i_int1_i_BBB_i[i]+Omega_int1_i_BS_i_BBB_i[i]+Omega_BS_i_F_int_i_BBB_i[i]);
T_BB_0[i] := (1/2)*DotProduct(V_GBB_F[i],V_GBB_F[i],conjugate=false)+(1/2)*DotProduct(Omega_BB_i_F_BBB_i[i], MatrixVectorMultiply(I_BB_G_BBB[i], Omega_BB_i_F_BBB_i[i]), conjugate = false) od;


La boucle commence à s'effectuer et me fait les quatres premiers calculs, puis j'ai ce message d'erreur

Error, 1st Matrix dimension size (1..1) is too small to fit source size (1..3)

D'autre part, dans une boucle for, est-ce qu'il faut finir chaque expression de la boucle par un ";" ?

Cà serait super si vous pouviez m'aider.

Merci d'avance pour votre aide
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 20 Nov 2012 13:44    Sujet du message: Répondre en citant

Jour bon,

N'y a-t-il pas un problème avec la multiplication matricielle que vous semblez noter par un point, alors que sous Maple ça doit être &* ?

Sous Maple 15, j'ai aussi un affichage d'une table comportant une matrice, à la place d'avoir une matrice.

A revoir sans doute.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Maple en algèbre linéaire Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.