+
    i3                         ^ 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Ht ^ RIHt ]R 4       tR tR	 tR
 tR t R t!R# )    )symbolsMatrixcossinatansqrtRational)sympify)simplify)solve)dynamicsymbolsReferenceFramePointdotcrossinertiaKanesMethodParticle	RigidBody
LagrangianLagrangesMethod)slowc                     \        R 4      w  rr#p\        R4      ;w  rVrxrpV Uu. uF  qP                  V 4      NK  	  up;w  rppppp\        R4      p\        R4      ;w  pppppppV Uu. uF  pVP                  V 4      NK  	  upw  ppppp 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&V#P                  R
VV"P                  ,          V	V"P                  ,          ,           V
V"P                  ,          ,           4      p'V&P                  V"4      p(V%P                  V"4      p)V&P                  V"VV%P                  ,          VV%P                  ,          ,           VV%P                  ,          ,           4       V'P                  V#4      P                  V"4      p*V'P                  V"VV&P                  ,          VV&P                  ,          ,           VV&P                  ,          ,           4       V'P                  RVV%P                  ,          4      p+V+P                  V'V"V&4       \!        V
\#        V'P                  V+4      V"P                  4      ,
          .4      p,\!        V& U-u. uF  p-\#        V+P%                  V"4      V-4      NK   	  up-4      p.\!        V% U-u. uF%  p-\#        V(V&P                  V"4      ,
          V-4      NK'  	  up-V" U-u. uF%  p-\#        V*V'P%                  V"4      ,
          V-4      NK'  	  up-,           4      p/\'        V/V4      p0V%P                  V"V)P)                  V04      4       V&P+                  V"V&P                  V"4      P                  V%4      \-        V%P                  V"4      V&P                  V"4      4      ,           4       W#,          V$P                  ,          p1W!^,          ,          ^,          p2W!^,          ,          ^,          p3\/        V&V2V3V24      p4\1        RV'V&VV4V'34      p5V5.p6V'V13.p7\3        V"WVWxV	.VVV.V/V
.V,VVV.V.R7      p8V8P5                  V6V74      w  p9p:V8P7                  4       p;V;P8                  V,8X  g   Q hV;P:                  V.8X  g   Q hV;P<                  V.P                  V 4      P)                  V8P?                  4       4      8X  g   Q h\'        V;P@                  V;PB                  ,           V4      p<V0PE                  4        F  pV<V,          V0V,          8X  d   K  Q h	  \G        V;PH                  V;PJ                  ,           V9,
          V:,
          4      \!        . RO4      8X  g   Q hW) \M        V4      ,          /p=V^ V\O        V4      V,          V,           V\M        V4      V,          VV) \O        V4      V,          V,           ,          \M        V4      ,          V^ VV) \O        V4      V,          V,           ,          \O        V4      ,          /p>V^ VV) \O        V4      V,          V,           ,          \M        V4      ,          VV) \O        V4      V,          V,           ,          \O        V4      ,          V^ /p?V^V,          \O        V4      ,          ^V,          ,          \O        ^V,          4      V^,          ,          ^,          ,           ^\M        V4      ,          V,          V,          ^,          ,           V^ V^ VV\O        V4      \O        V4      ,          V,          V,          \O        V4      V^,          ,          ,           ,          V V^V,          \O        V4      ,          ^V,          ,          \O        ^V,          4      V^,          ,          ^,          ,           ^\M        V4      ,          V,          V,          ^,          ,           ,          V!V) \O        V4      \M        V4      ,          V,          V,          \M        V4      V^,          ,          ,           ,          /p@V;PQ                  V=V>V?V@.RRR7      w  p$p%V^ V^ V^V^V^/pA\!        . RO. RO. RO\O        V4      V,          ^ ^ ^ ^ \O        V4      ) \M        V4      ) ^ .\M        V4      ) V,          ^ ^ ^ ^ \M        V4      \O        V4      ) ^ .^ \S        ^^4      ^ ^ ^ ^ ^ ^V,          ^,          .. RO^ ^ ^ ^ ^ RV,          ^ ^ ..4      pB\!        . 4      pCV$P)                  VA4      VB8X  g   Q hV%P)                  XA4      XC8X  g   Q h\U        V$P)                  XA4      P)                  V^\W        ^4      ,          4      4      PY                  4       ^ ^/8X  g   Q hV8P7                  RR7      p;V;PQ                  V=V>V?X@.RRR7      w  p$p%V$P)                  XA4      XB8X  g   Q hV%P)                  XA4      XC8X  g   Q hR# u upi u upi u up-i u up-i u up-i )z	t r m g vzq1:7zu:6zu1:7NNOAAxisBCCOPDisc)kd_eqsq_dependentconfiguration_constraintsu_dependentvelocity_constraintsTop_pointA_and_Br   GJ)linear_solverN)r   r   r   )r   r   r   r   r   r   r      )r   r   r   r   r   r-   r   r   )r   r   r   r   r   r   r-   r   )r   r   r   r   r   r   r   r   )-r   r   diffr   r   	orientnewzxy	locatenew
ang_vel_inset_ang_velpos_fromdtset_velv2pt_theoryr   r   velr   subsset_ang_accr   r   r   r   kanes_equationsto_linearizerf_cf_vf_akindiffdictf_0f_1keysr   f_2f_3r   r   	linearizer	   r
   r   	eigenvals)Dtrmgvq1q2q3q4q5q6qqiq1dq2dq3dq4dq5dq6dqduu1u2u3u4u5u6uiu1du2du3du4du5du6dr   r   r   r   r   r    w_c_n_qdw_b_n_qd	v_co_n_qdr!   r@   uvrA   kindiffsqdotsF_COIJI_C_COr"   BLFLKMfrfr_star
linearizersolq_opu_opqd_opud_opupright_nominalA_solB_solsD                                                                       j/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/mechanics/tests/test_linearize.py test_linearize_rolling_disc_kaner      sy    K(MA! "0!77BBBQ>?(@aa(@@ Cc3S2 	uA!/!77BBBQ9:#;2BGGAJ#; Cc3S 	sA	tB	C"acc+A	C"acc+A	C"acc+A	dBqssFRVObf4	5B ||AH||AH MM!RVbf_r!##v-. B""1%I JJq"QSS&2acc6/BqssF*+ 	S!ACC% AMM"a "s2;;q>133//0
1C a0a#aeeAh#a0
1C QGQrs8all1o5r:QGBCD!BY2B7!DE FH(BE MM!X]]5)*MM!Q\\!_''*U1<<?ALLQRO-TTU 3qss7D 
TQA	
TQAQ1a FVRA|4D
Bt*B	Q,r2rl8R3
@B &&r2.MR !!#J>>S   >>S   >>SXXa[--bnn.>????

/
4Cjjl2w%)### JNNZ^^3b87BCviGXXXX 3r7
DBc!BCGCK#%&s2w.CGCK#%&s2w.0D !1"c"gckC'(R01"c"gckC'(R0!E !A#c"g+qs#c!B$iQ&6q&881SW9S=;LQ;NN!!!SWSW_S(,s2wsAv~=>!QqSR[!A#&QrT36)9!);;aBimC>OPQ>QQR1"c"gc"goc)#-BQ>?AE $eU)CT\`aDAqAr1aAq!Q7O ,,,WS[!Q1s2whR!D"gXc\1aAs2wR!DA1aAquQw?,1aBsFAq13 4E 2JE 66/"e+++66/"e+++ 166/*//QtAwY?@JJLQRTUPVVVV !!!5J$eU)C(,t   =DAq66/"e+++66/"e+++s )A
 $<> 1 HDs   g5,g:3$g?'+h+h	
c                     \        R 4      p \        R4      p\        R ^4      p\        R4      w  r4pRp\        R4      p\        R4      pVP	                  V^ 4       VP                  RRWP                  .4      p	V	P                  WqVP                  ,          4       VP                  RW9P                  ,          4      p
V
P                  WV	4       \        R	W4      p\        W!,
          .4      pWF,          VP                  ,          p\        Wp.V.VR
7      pVP                  V.W3.4      w  ppVP                  RRR7      w  p	ppV	\        ^ ^.R\!        V 4      ,          V,          ^ ..4      8X  g   Q hV\        . 4      8X  g   Q hR# )rP   r`   L, m, t皙#@r   N*r   axisr!   pP)q_indu_indr#   T)r*   r   N皙#)r   r   r   r   r9   r0   r1   r6   r4   r2   r:   r   r   r   r>   rI   r   )rP   r`   rX   LrM   rK   rN   r   pNr   r!   r   kdeRry   rz   frstarr   inp_vecs                      r   $test_linearize_pendulum_kane_minimalr      s`   		B		B
q
!Ci GA!A 	sA	tBJJq! 	
C"cc+AMM!V 	S!CC% AMM"	$	B #(
C 	
ACCA 
Qd2$s	;B%%rdaVH5LR LLL=MAq'Ac"ga 345555r
??    c                     \        R 4      w  r\        R ^R7      w  r#\        R4      w  rE\        R^R7      w  rg\        R4      w  rp
Rp\        R4      p\        R4      pVP	                  V^ 4       \        W,          4      pVP                  RRWP                  .4      pVP                  R	WP                  ,          WP                  ,          ,           4      p\        R
VV	4      p\        W$,
          W5,
          .4      p\        VW#.4      pVP	                  VVP                  V4      P                  V4      P!                  V4      4       \        VP                  V4      P#                  4       V,
          .4      p\        VP%                  V4      P'                  V4      P)                  VP                  4      .4      pVP+                  4        VP-                  V
4      pVP+                  4        W,          VP                  ,          p\/        W.V.V .V.VVVVR7	      pVP1                  V.VV3.4      w  ppWV^ /pV^ V^ /pV^ V^ /pVP3                  VVV.RRR7      w  pppVP5                  4       \        ^ ^.RV,          ^ ..4      8X  g   Q hV\        . 4      8X  g   Q hVP3                  VVV.RRRR7      w  pppVP5                  4       \        ^ ^.RV,          ^ ..4      8X  g   Q hV\        . 4      8X  g   Q hVP3                  VVV.RRR R7      w  pppVP5                  4       \        ^ ^.RV,          ^ ..4      8X  g   Q hV\        . 4      8X  g   Q hR# )q1:3levelzu1:3r   r   r   r   r   r   P1r   )r   r   r$   r&   r%   r'   acceleration_constraintsr#   Tr(   r+   )r)   r*   r   r,   c                 $    V P                  V4      # NLUsolver   bs   &&r   <lambda>9test_linearize_pendulum_kane_nonminimal.<locals>.<lambda>   s    AIIaLr   Nr   )r   r   r   r   r9   r   r0   r1   r4   r2   r3   r   r   r   r7   r8   r<   	magnituder;   expressr   r   r/   r   r>   rI   expand) rP   rQ   rX   rY   r`   ra   rg   rh   r   rM   rK   rN   r   r   theta1r   r!   r   r   dq_dictr@   rA   rB   r   ry   rz   r   r~   r   r   r   r   s                                    r   'test_linearize_pendulum_kane_nonminimalr      sC    F#FBfA.HCF#FBfA.HCi GA!A 	sA	tBJJq! "%[F	C&##/A 	T2cc6BssF?+A	$1	B #(( CC#$G IIaB""1%**734 !**R.**,q01
2C !%%(""1%))!##./
0CLLN ((1+CLLN 	
ACCA 
Qd2$RD!$s3
PB %%rdaVH5LR 2q>D2q>D!S!ELL4u*=t*. ! 0MAq' 88:!Q$q&! 56666r
?? LL4u*=t)-T ! CMAq' 88:!Q$q&! 56666r
??LL4u*=)-*./H ! JMAq'
 88:!Q$q&! 56666r
??r   c                     \        R 4      p \        R ^4      p\        R4      w  r#pRp\        R4      p\        R4      pVP	                  V^ 4       VP                  RRWP                  .4      pVP                  WaVP                  ,          4       VP                  RW(P                  ,          4      p	V	P                  WvV4       \        RW4      p
\        Wj4      p\        W.WV,          VP                  ,          3.VR	7      pVP                  4        VP                  V .V.R
R7      w  rp\!        V4      \#        ^ ^.R\%        V 4      ,          V,          ^ ..4      8X  g   Q hV\#        . 4      8X  g   Q hVP                  V .V.R
RR7      w  rp\!        V4      \#        ^ ^.R\%        V 4      ,          V,          ^ ..4      8X  g   Q hV\#        . 4      8X  g   Q hR# )rP   r   r   r   r   r   r   r!   r   )	forcelistframeT)r*   r+   )r*   r,   Nr   )r   r   r   r   r9   r0   r1   r6   r4   r2   r:   r   r   r   form_lagranges_equationsrI   r   r   r   )rP   rX   r   rM   rK   rN   r   r   r   r!   r   LagLMr   r   s                  r   (test_linearize_pendulum_lagrange_minimalr     s   		B
q
!Ci GA!A 	sA	tBJJq! 	
C"cc+AMM!W 	S!CC% AMM"	$	B Q
C	dQ3qss7|nA	FB! LL"udL;MA'A;&1a&4B<>1*=!>????r
?? LL"ud$LOMA'A;&1a&4B<>1*=!>????r
??r   c                     \        R 4      w  r\        R ^R7      w  r#\        R4      w  rEpRp\        R4      p\        R4      p	V	P	                  V^ 4       \        W,          4      p
VP                  RRWP                  .4      pV	P                  RWP                  ,          WP                  ,          ,           4      pVP	                  WP                  V	4      P                  V4      4       \        R	W4      p\        V ^,          V^,          ,           V^,          ,
          .4      p\        W4      p\!        WV.WWW,          VP                  ,          3.VR
7      pVP#                  4        WV^ V^ V^ VP%                  V4      ^ VP%                  V4      ^ /pVP'                  VR7      pVP)                  V4       VP+                  V.V.V .V.VRR7      w  ppp\-        V4      \        ^ ^.RV,          ^ ..4      8X  g   Q hV\        . 4      8X  g   Q hVP+                  V.V.V .V.VRR R7      w  ppp\-        V4      \        ^ ^.RV,          ^ ..4      8X  g   Q hV\        . 4      8X  g   Q hR# )r   r   r   r   r   r   r   r   r   r   )
hol_coneqsr   r   )r)   T)r)   r*   c                 $    V P                  V4      # r   r   r   s   &&r   r   =test_linearize_pendulum_lagrange_nonminimal.<locals>.<lambda>L  s    !"1r   )r)   r*   r,   Nr   )r   r   r   r   r9   r   r0   r1   r4   r2   r3   r7   r8   r   r   r   r   r   r/   solve_multipliersupdaterI   r   )rP   rQ   rX   rY   r   rM   rK   rN   r   r   r   r   r!   r   r@   r   r   r)   lam_opr   r   s                        r   +test_linearize_pendulum_lagrange_nonminimalr   )  s9   F#FBfA.HCi GA!AsA	tBJJq!"%[F	C&##/A
T2cc6BssF?+AIIaB""1%&	$	B
"a%"a%-!Q$&'
(C
Q
C	2h3qs133w<.XY	ZB!r1c1c1chhqk1chhqk1MH!!8!4FOOFLL"urdSEt ! -MAq'A;&1a&461+!67777r
?? LL"urdSEH)- >. ! /MAq' A;&1a&461+!67777r
??r   c                  ~   \        R 4      ;w  rr#\        R ^4      ;w  rErg\        R4      w  rp
\        R4      pVP                  RRWP                  .4      pVP                  RRWP
                  .4      pVP                  RRW-P                  .4      p\        R4      pVP                  V^ 4       VP                  RWP                  ,          4      pVP                  WV4       \        W^,          V^,          ,          V	^,          V^,          ,          V	^,          V^,          ,          4      p\        R	VWVV34      pV	) V
,          V,          \        V4      ,          Vn        \        VV4      p\!        VV4      pVP#                  4        V ^ V^ V^ V^ V^ VP%                  4       ^ VP%                  4       ^ VP%                  4       ^ /pVP'                  W7VR
R7      ^ ,          p\)        . RO. RO. RO^ ^ ^ ^ RV,          ^ .^ RV
,          ^V,          ,          ^ ^V,          ^,          ^ ^ .. RO.4      pVV8X  g   Q hR# )zq1 q2 q3zr m gr   Yr   r   r   r   DmcBodyDT)r   qd_indr)   r*   N)r   r   r   r-   r   r   )r   r   r   r   r-   r   )r   r   r   r   r   r-   i)r   r   r   r   r   r   )r   r   r   r0   r1   r2   r3   r   r9   r4   r:   r   r   r   potential_energyr   r   r   r/   rI   r   )rP   rQ   rR   rV   rX   rY   rZ   r^   rL   rM   rN   r   r   r   r   r   r   rt   r   r   lr)   r   r}   s                           r   $test_linearize_rolling_disc_lagranger   Q  s   #J//JBB'
A66MCcgGA!sA	C"cc+A	C"cc+A	C"cc+Ac
AIIaO
++eQW
%COOA!q51a4<QAq1uq!t|<AgsA1c(3E S1Wq[3r72E
Q
CQA  Ar1b!QQ
Asxxz1chhj!=H 	
!4HKA
$$$aAr#vq)bdAaCj!QsU1Wa3$& 'C 8O8r   N)"sympyr   r   r   r   r   r   r	   sympy.core.sympifyr
   sympy.simplify.simplifyr   sympy.solvers.solversr   sympy.physics.mechanicsr   r   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r   r   r   r   r   r    r   r   <module>r      se    A A A & , '    & , ,B#JNb#L&P#r   