+
    i8K                         ^ RI HtHtHtHtHtHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHtHtHtHtHtHtHtHtHtHt R tR tR tR	 tR
# )    )cosMatrixsinzerostanpisymbols)simplify)trigsimp)solve)
crossdotdynamicsymbolsfind_dynamicsymbolsKanesMethodinertiainertia_of_point_massPointReferenceFrame	RigidBodyc                     \        R 4      w  rr#rE\        R4      w  rgp\        R4      p	V	 U
u. uF  qP                  V 4      NK  	  pp
\        R4      pV Uu. uF  qP                  V 4      NK  	  pp\        \	        VR.\        V4      ,          4      4      p\        R4      p\        \	        VR.\        V4      ,          4      4      p\        R4      pVP                  RRV	^ ,          VP                  .4      pVP                  R	RV	^,          VP                  .4      pVP                  R
RV	^,          VP                  .4      pVP                  VV^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           4       VP                  VVP                  V4      P                  V V4      \        VP                  V4      VP                  V4      4      ,           4       \        R4      pVP!                  VV^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           4       VP#                  RV	^,          VP                  ,          V\%        V	^,          4      ,          VP                  ,          ,           4      pVP!                  VV^,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           4       VP'                  VVP)                  V4      P                  V V4      \        VP                  V4      VP)                  V4      4      ,           4       V^ ,          VP                  ,          V^,          VP                  ,          ,           V^,          VP                  ,          ,           pVP+                  V4      P                  V V4      \        VP                  V4      VP+                  V4      4      ,           p\-        V Uu. uF%  p\/        VVP                  V4      ,
          V4      NK'  	  up\/        VVP)                  V4      ,
          VP                  4      .,           4      p\1        VV4      p\1        VP3                  V^,          ^ V^,          ^ /4      V4      pVP5                  V^,          ^ V^,          ^ /4       VV,            Uu. uF$  pVP                  V4      P                  VV4      NK&  	  ppVV,            Uu. uF$  pVP)                  V4      P                  VV4      NK&  	  ppVV,            Uu. uF$  pVP)                  V4      P                  VV4      NK&  	  p p\-        \/        V) VP                  ,          VP                  4      V	^,          ,
          .4      p!\-        V U"u. uFq  p"\/        VP)                  V4      VP)                  V4      \        VP                  V4      VP+                  V4      4      ,           ,
          V"4      P7                  4       NKs  	  up"4      p#\        VP                  V4      VP+                  V4      4      p$V$P                  V V4      \        VP                  V4      V$4      ,           p%\-        V U"u. uF%  p"\/        VP9                  V4      V%,
          V"4      NK'  	  up"4      p&\;        ^^	4      p'\=        ^4       F<  p(\?        VV,           4       F#  w  p)pV#V(,          P                  V4      V'V(V)3&   K%  	  K>  	  V'R,          p*V'R,          p+V'R,          p,V*PA                  V,4      p-V+PC                  4       ) V-,          p.V.R,          \-        VR,          4      ,          p/\        \	        VR,          V/4      4      p0W#,          VP                  ,          p1VVP                  ,          VVP                  ,          ,           VVP                  ,          ,           p2\-        \	        VV 4       U3U4u. uF#  w  p3p4\/        V1V34      \/        V2V44      ,           NK%  	  up4p34      p5V) VP9                  V4      ,          p6\E        VWEV4      p7\/        V7VPG                  V4      4      \        VP                  V4      \/        V7VP                  V4      4      4      ,           ) p8\-        \	        VV4       U9U:u. uF#  w  p9p:\/        V6V94      \/        V8V:4      ,           NK%  	  up:p94      p;V5R,          PI                  V5R,          4      V.PJ                  V5R,          ,          ,           p<V;R,          PI                  V;R,          4      V.PJ                  V;R,          ,          ,           p=V=P3                  V4      P3                  V04      P3                  V4      P3                  V	^,          V) \M        V	^,          4      ,          /4      P7                  4       p>V7V3p?\O        RVVVV?4      p@V@.pAVV13pBVV23pCVBVC.pD\Q        VV	R,          VR,          VV	R,          V!VR,          V#VR7	      pEVEPS                  VAVD4      w  pFpGVGP3                  V4      P3                  V04      P3                  V4      P3                  V	^,          V) \M        V	^,          4      ,          /4      P7                  4       pHVEPU                  4       pI\-        V<4      P7                  4       VFP7                  4       8X  g   Q h\-        V=P3                  XI4      4      P7                  4       XGP7                  4       8X  g   Q h\W        \-        V>4      P7                  4       4      PY                  ^ R/4      \W        XHP7                  4       4      PY                  ^ R/4      8X  g   Q h\[        XEP\                  4      pJV F  pKVKXJ9  d   K  Q h	  R# u up
i u upi u upi u upi u upi u upi u up"i u up"i u up4p3i u up:p9i )zt r m g I JzFx Fy Fzzq:4zu:6g        zua:3NAAxisBCPON   Nr    NNdisc)q_indu_indkd_eqsq_dependentconfiguration_constraintsu_dependentvelocity_constraintsu_auxiliaryN)NNNr   )r+   r       N)r+   r-   NN)r   r+   )r.   r+   )r,   r+   )/r	   r   diffdictziplenr   	orientnewzxyset_ang_velset_ang_acc
ang_vel_inr   r   set_vel	locatenewr   set_accvelpos_fromr   r   r   subsupdateexpandaccr   range	enumeraterow_joininvr   
ang_acc_incol_joinTr   r   r   kanes_equationskindiffdictr
   xreplacer   forcing)LtrmgIJFxFyFzqqiqduuiudud_zerouaua_zeror   r   r   r   r   r   w_c_n_qdv_o_n_qduvkindiffsqd_kdsteady_conditionspartial_w_Cpartial_v_Opartial_v_Pf_caif_vv_o_na_o_nf_aM_vijM_v_iM_v_dM_v_aux	M_v_i_auxA_rsu_dep
u_dep_dictF_OF_Ppv_opv_pFr_uR_star_OI_C_OT_star_Cpvpav	Fr_star_uFr_c	Fr_star_cFr_star_steady
iner_tupler"   bodyListF_oF_p	forceListkanefrfrstarfrstar_steadykddsyms_in_forcingqdisL                                                                               f/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/mechanics/tests/test_kane2.pytest_aux_depr      s	   " }-A!$JBB& 	uA 	!q''!*qB	!uA 	!q''!*qB	!3rB4B<()G		B3rB4B<()G 	sA	C!A$-A	C!A$-A	C!A$-A MM!QqT!##X!QSS(1Q4834MM!Q\\!_))!Q/1<<?ALLO<= > 	c
AIIaAqssRU133Y&Aqss23	C1accAc!A$iKO34AIIa1accAaDH$qtACCx/0IIaqq!$uQ\\!_aeeAh'GGH !uQSSy2a59$r!uQSSy0Hzz!}!!!Q'%QA*OOHQGQrs8all1o5r:QG8aeeAh.456 7H(BE hmmRUQ1,BCQGbeaA34 :;R@21<<?''A.K@23b&9&B1558==Q'&K923b&9&B1558==Q'&K9 #qbfacc"QqT)*
+C
01301" aeeAh!%%(U1<<?	

1. # #VX&013 4C!,,q/1::a=1EJJq!uQ\\!_e<<E
a8a#aeeAh&+a8
9C 1+C1Xq2v&EArABC1I '  JEKE%jGw'IYY[=9$DK&2-'Ec!B%'(J #acc'C
qss(R!##X
QSS
(C[)+) 8BtT3sD>CTN22)+ ,D r!%%({HAqQEUALLO,a#eQ\\!_*EFG HHK575 DK2sHb)C#,>>>57 8I
 ;U,tvvV/DDD% )))E*:;&&9V,,-I^^G,11*=T#$TT1Q4!C!I*>%?  JVQ1j1DvH c(Cc(CsI 	!B%"hbEsbE	
D &&x;LRKK(--j9>>?PQT1Q4!C!I./ 



C$< BIIK///)..%&--/6==?BBB VN+2245>>#wG]))+,55qg>? @ ? *$,,7O/))) e 
"	!J H A993 96+7s<   pp+p*p *p%*p*A7p/$+p4)p9
)p?
c                     \        R 4      w  rp\        R ^R7      w  r4p\        R4      w  rgrp
\        R4      w  rrppp\        R4      w  pppppppp\        R4      w  ppp\        R4      w  ppp\        R4      p V P                  RR	V) V P                  .4      p!V!P                  R
R	V V!P
                  .4      p"V"P                  V VV"P
                  ,          VV"P                  ,          ,           4       V"P                  RR	VV"P                  .4      p#V"P                  RR	VV"P                  .4      p$V#P                  V"V	V"P                  ,          4       V$P                  V"V
V"P                  ,          4       \        R4      p%V%P                  V"^ 4       V%P                  V VV"P                  ,          4       V%P                  RVV"P                  ,          4      p&V%P                  RVV"P                  ,          VV"P
                  ,          ,
          4      p'V&V'3 F  p(V(P                  V%V V"4       K  	  V%P                  RVV"P                  ,          4      p)V%P                  RVV"P                  ,          4      p*V%P                  RV) V"P                  ,          4      p+V)V*V+3 F  p(V(P                  V%V V"4       K  	  V*P                  RV) V"P
                  ,          4      p,V+P                  RV) V"P
                  ,          4      p-V,P                  V*V V#4       V-P                  V+V V$4       W6,
          WI,
          WZ,
          .p.V,V-3 U(u. uF(  p(\        V(P                  V 4      V"P                  4      NK*  	  p/p(\        V"VVV^ V^ 4      p0\        V#VVV4      p1\        V$VVV4      p2\        RV)V"VV0V)34      p3\        RV*V#VV1V*34      p4\        RV+V$VV2V+34      p5\!        V WV.Wg.V.W.V/V.R7      p6V&V) V,          V P
                  ,          3V'VV"P
                  ,          VV"P                  ,          ,           VV"P                  ,          ,           3.p7V3V4V5.p8V6P#                  V8V74      w  p9p:\%        V/W.4      p;\'        V^V,          V^,          ,          V^,          ,          ,           ^V,          ,           VV^,          ,          ,           ^V,          V^,          ,          ,           ) VP)                  V4      ,          VV,          V,          V,          ,
          V^V,          ,           ^V,          V^,          ,          ,           ) VP)                  V4      ,          VV,          V^,          ,          ,           ^ .4      p<\+        V:P-                  V;4      P-                  V^ /4      4      P/                  4       P1                  4       pV<V,
          P1                  4       \3        ^^4      8X  g   Q h. p=\5        V3V4V5.V0V1V2.4       F  w  p>p?V?\7        V>P8                  V>P:                  P=                  V%4      V>P>                  4      ,           p@V=PA                  \        RV>P:                  V>P>                  V>P8                  V@V%34      4       K  	  V6P#                  V=V74      w  pApB\+        VBP-                  V;4      P-                  V^ /4      4      P/                  4       pV<V,
          P1                  4       \3        ^^4      8X  g   Q hR# u up(i )q1:4levelzu1:6u' R, M, g, e, f, thetaa b mA mB IA J K tz	Q1, Q2 Q3IA22 IA23 IA33Fr   axisr   r   r   DS*QA*B*C*B^C^rbArbBrbC)r#   r$   r%   r(   r)   r*    N)!r   r	   r   r3   r6   r5   r7   r4   r   r:   r;   v2pt_theoryr   r=   r   r   r   rJ   r   r   r/   r   r?   doitrA   r   r1   r   mass
masscenterr>   frameappend)Cq1q2q3q1dq2dq3du1u2u3u4u5u_primeRMrQ   efthetaabmAmBIArS   KrN   Q1Q2Q3IA22IA23IA33r   r   r   r   r   pDpS_starpQppA_starpB_starpC_starpB_hatpC_hatkdevc	inertia_A	inertia_B	inertia_Cr   r   r   kmforcesbodiesr   fr_starvc_mapfr_star_expectedbodies2rbI_starrR   fr2fr_star2sC                                                                      r   test_non_central_inertiar      s
     'JBB"63MCc'/BBB$+,F$G!GaE '(< =Aq"b"aA%JBB/0D$ 	sA	C5&!##/A	C"acc+AMM!RVbf_%	C"acc+A	C"acc+AMM!R!##XMM!R!##X 
sBJJq!JJq"qss(ll4133'G	c1QSS51QSS5=	)Br]	b!Q  ll4133'Gll4133'Gll4!ACC(Gw(	b!Q ) taRV,FtaRV,F
w1%
w1% 8SXsx
(C'-v&6	7&6#aeeAh
&6B	7 2tT1dA6I1a#I1a#I E7ArIw+?
@C
E7ArIw+?
@C
E7ArIw+?
@C	Qrrl2(3"$"$
'B 1QSS!B133ACC"QSS&(@#ABF3_F$$VV4KB2x F 1Q3q!t8AqD= 1Q3&Ag"QT	" #%'WWQZ024Q$r'"*=1R4i1QT!"RWWQZ/"Q$r1u*<	 
 	f%**B73499;BBDA!))+uQ{:;: G3S/Iy)+LM
F*277+-==+A+A"+E+-885 5 	yR]]BHHbgg"#R* 	+	 N &&w7MCv&++RG45::<Aq ((*eAqk999] 
8s   
.\c            	         \        R 4      w  rp\        R ^R7      w  r4p\        R4      w  rgp\        R4      w  rrrp\        R4      w  pppppppp\        R4      w  ppp\        R4      w  ppp\        R4      pVP                  RR	V) VP                  .4      pVP                  R
R	V VP
                  .4      p V P                  VVV P
                  ,          VV P                  ,          ,           4       V P                  RR	VV P                  .4      p!V P                  RR	VV P                  .4      p"\        R4      p#V#P                  V ^ 4       V#P                  VVV P                  ,          4       V#P                  RVV P                  ,          4      p$V#P                  RVV P                  ,          V
V P
                  ,          ,
          4      p%V#P                  RVV P                  ,          4      p&V#P                  RVV P                  ,          4      p'V#P                  RV) V P                  ,          4      p(V$V%V&V'V(3 F  p)V)P                  V#VV 4       K  	  V'P                  RV
) V P
                  ,          4      p*V(P                  RV
) V P
                  ,          4      p+V*P                  V'VV!4       V+P                  V(VV"4       V*V+3 U)u. uF(  p)\        V)P                  V4      V P                  4      NK*  	  p,p)V,Wc,
          .,          p,\        V,W4V.4      p-\        V-P!                  4       4       F)  w  p.p/V/P#                  V4      V-V.P#                  V4      &   K+  	  \%        V VVV^ V^ 4      p0\%        V!VVV4      p1\%        V"VVV4      p2\'        RV&V VV0V&34      p3\'        RV'V!VV1V'34      p4\'        RV(V"VV2V(34      p5\)        VWV.Wg.V,V.R7      p6V$V) V,          VP
                  ,          3V%VV P
                  ,          VV P                  ,          ,           VV P                  ,          ,           3.p7V3V4V5.p8\+        VV,          W,          V,          \-        V4      ,          \/        V 4      ,          ,           VW,          \-        V4      ,          \-        V 4      ,          ,           W,          V,          \/        V4      ,          VV,          ,
          VV
,          ,
          .4      p9\+        V^V,          V^,          ,          V
^,          ,          ,           ^V,          ,           VV^,          ,          ,           ^V,          V^,          ,          ,           ) VP#                  V4      ,          VV,          V,          V,          ,
          V^V,          ,           ^V,          V
^,          ,          ,           ) VP#                  V4      ,          VV,          V^,          ,          ,           ^ .4      p:V6P1                  V8V74      w  p;p<V;P3                  4       V9P3                  4       8X  g   Q hV:\5        V<4      ,
          P3                  4       \7        ^^4      8X  g   Q hR# u up)i )r   r   zu1:4r   r   r   zQ1 Q2 Q3r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r%   r*   N)r   r	   r   r3   r6   r5   r7   r4   r   r:   r;   r   r   r=   r   listitemsr/   r   r   r   r   r   r   rJ   rA   r   r   )=r   r   r   r   r   r   r   r   r   r   r   r   rQ   r   r   r   r   r   r   r   r   rS   r   rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   kde_mapkvr   r   r   r   r   r   r   r   r   fr_expectedr   r   r   s=                                                                r   test_sub_qdotr   *  sV   
  'JBB"63MCc'JBB$+,F$G!GaE '(< =Aq"b"aA/0D$$JBB 	sA	C5&!##/A	C"acc+AMM!RVbf_%	C"acc+A	C"acc+A 
sBJJq!JJq"qss(ll4133'G	c1QSS51QSS5=	)Bll4133'Gll4133'Gll4!ACC(Gr7GW5	b!Q 6 taRV,FtaRV,F
w1%
w1% )/'7
8'7!3quuQx'7C
8BH:CC#C)GW]]_%1VVAYq	 & 2tT1dA6I1a#I1a#I E7ArIw+?
@C
E7ArIw+?
@C
E7ArIw+?
@C 
Qrhs	MB1QSS!B133ACC"QSS&(@#ABF3_F bD13q5U#CG++SZB''CE#e*r!t#bd*, -K
 1Q3q!t8AqD= 1Q3&Ag"QT	" #%'WWQZ024Q$r'"*=1R4i1QT!"RWWQZ/"Q$r1u*<	  $$VV4KBIIK;--//0/ 1199;uQ{JKJS 9s   .Y!c                  	   \        R 4      w  rr#rEp\        R4      p\        R^R7      p\        R4      p	\        R4      p
V
P                  RRV^ ,          V
P                  .4      pVP                  RR\
        ^,          V^,          ,
          VP                  .4      pVP                  RRV^,          VP                  .4      p\        R	4      pVP                  V
^ 4       VP                  R
V^,          V
P                  ,          V^,          V
P                  ,          ,           4      pVP                  WP                  V4      P                  Wj4      4       VP                  V^ 4       VP                  R^ 4      pVP                  V^ 4       VP                  RW\P                  ,          4      pVP                  V^ 4       VP                  V^ 4       VP                  WV4       VP                  VW4       W*P                  ,          W:P                  ,          ,           WJP                  ,          ,           pV) V ,          V
P                  ,          pVV3VV3.pV Uu. uF  pVP                  V
4      V,          NK  	  ppVVR,          ,          p\        V	V4       UUu. uF  w  ppVV,
          NK  	  ppp\!        WV	V4      pVP#                  . V4      w  ppV	R,          p\%        \'        V	4      \'        V4      ,
          4      pV
P                  V
P                  3 Uu. uF  pVP)                  V
4      V,          NK  	  pp\!        WVVVVR7      p V P#                  . V4      w  p!p\+        V) V ,          V,          \-        V^,          4      ,          V) V\/        V^ ,          4      ,          V\-        V^ ,          4      ,          ,           ,          \1        V^,          4      ,          WR\/        V^ ,          4      ,          V\-        V^ ,          4      ,          ,           ,          VV.4      p"\+        V) V ,          V,          \-        V^,          4      ,          ^ ^ .4      p#\3        VP5                  4       4      \3        V"P5                  4       4      8X  g   Q h\3        V!P5                  4       4      \3        V#P5                  4       4      8X  g   Q hR# u upi u uppi u upi )zg m Px Py Pz R tzq:5r   zu:5r   B_primer   r   r   r   r   r   r   r!   r   )r(   r)   N)r	   r   r   r3   r4   r   r5   r   r:   r;   r6   r>   r/   r   r9   r1   r   rJ   r   setr=   r   r   r   r   r   rA   )$rQ   rP   PxPyPzr   rN   rW   rY   rZ   r   r   r   r   pOpRr   pCsR_C_hatR_Csr   rb   u_exprr[   r   r   km1fr1_u_indeprw   r   km2r   fr1_expectedfr2_expecteds$                                       r   test_sub_qdot2r    s    %%78A""uA	Q	'BuA 	sAkk)VadACC[9G#v1qtWYY'?@A	C!A$-A 
sBJJq! 
c1Q48ad133h.	/BJJq++b/&&q,-JJq! \\$"F
NN1a 

433
'CKK1KK1 OOB1
sA! fr##vo33&G2a48Dw#t-F
 .//Qrall1o""QF/
bfF"1f~
.~eb!266~C
.
aAs
#C  V,FC eGQ#g,&'E()QSSz	2z&**Q-"

zB	2
aGS"'bBC  V,FC	
1Qs1Q4y	
Bs1Q4yL2c!A$i<'(QqT2	c!A$i<"S1Y,&'

 L 	
1Qs1Q4y		 L SZZ\"h|/B/B/D&EEFESZZ\"h|/B/B/D&EEFE5 0
. 
3s   !S!S"!SN)sympyr   r   r   r   r   r   r	   sympy.simplify.simplifyr
   sympy.simplify.trigsimpr   sympy.solvers.solversr   sympy.physics.mechanicsr   r   r   r   r   r   r   r   r   r   r   r   r   r       r   <module>r
     sF    ; ; ; , , '@ @ @y*xa:FVLpNGr	  