|
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
bendesarts
Inscrit le: 27 Fév 2009 Messages: 234
|
Posté le: 17 Nov 2012 20:46 Sujet du message: Jeu d'indices sur des vecteurs |
|
|
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 |
|
|
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 18 Nov 2012 8:17 Sujet du message: |
|
|
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 |
|
|
bendesarts
Inscrit le: 27 Fév 2009 Messages: 234
|
Posté le: 19 Nov 2012 10:02 Sujet du message: |
|
|
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 |
|
|
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 19 Nov 2012 12:29 Sujet du message: |
|
|
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 |
|
|
bendesarts
Inscrit le: 27 Fév 2009 Messages: 234
|
Posté le: 20 Nov 2012 12:20 Sujet du message: |
|
|
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 |
|
|
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 20 Nov 2012 13:44 Sujet du message: |
|
|
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 |
|
|
|
|
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
|
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.
|