+
    i=                     f    ^ RI HtHtHtHtHtHtHt ^ RIH	t	H
t
HtHtHtHt R tRR ltR tR tR# )	    )zerosMatrixsymbolslambdifysqrtpisimplify)dynamicsymbolscrossinertia	RigidBodyReferenceFrameKanesMethodc                     \         P                  p \        R 4      w
  rr4rVrxr\        R4      w  rp\        R4      p\        RVR7      pW^,          ,          ^,          \	        VP
                  ^^^4      ,          VP                  3Vn        VP                  P                  VP
                  ^ 4       VP                  P                  VP
                  ^ 4       \        R4      pVP                  VP
                  W^ 3R4       VP
                  P                  VVP                  V4       VP
                  P                  VP
                  4      pVP
                  P                  VP
                  WoP                  ,          WP                  ,          ,           WP                  ,          ,           4       VP                  P!                  RWNP                  ,          W^P                  ,          ,           4      pVP                  VP
                  WP                  ,          WP                  ,          ,           4       VP                  P#                  VVVP                  ,          4       VP                  P                  VP
                  \%        VP
                  P                  VP
                  4      VP                  P'                  V4      4      4       VP)                  VP                  4      V,
          VP)                  VP                  4      V,
          VP)                  VP                  4      V,
          VP+                  V 4      V	,
          VP+                  V 4      V
,
          .pVP-                  VP
                  4      \%        VP
                  P                  V4      VP'                  VP                  4      4      ,           pVP)                  VP                  4      VP)                  VP                  4      .pVP                  VP.                  ) V,          VP                  ,          3.pV.pRVP
                  R	WW4V.R
WgV.RW.RVRVRVRV/# )z	q1:6 u1:6g r mgrounddisk)mass	int_framezxycontact_pointframeq_indu_indu_depkdesfnhbodiesloads)r
   _tr   r   r   r   
masscenterset_velr   orient_body_fixedorient_axisy
ang_vel_inset_ang_velxz	locatenewset_posr   pos_fromdotdiffvelr   )tq1q2q3q4q5u1u2u3u4u5grmr   discr   g_w_dcpr   v0r   r   r   s                           f/var/www/html/photoedit/myenv/lib/python3.14/site-packages/sympy/physics/mechanics/tests/test_kane5.py_create_rolling_discrC      s&   A-;K-H*BBBBBgGA!x FV!$DQJNWTZZAq%AAOO%DL
fllA.OODJJ*{+Irqk5AJJ9ikk26JJ!!&,,/EJJ6<<;ff4rFF{BD 
			$	$_%'((]R((]%B
DBJJv||R((]R((]:;OOBIKK0OOFLL%

fll+T__-E-Eb-I+K L IIdff"EIIdff$5$:IIdff"BGGAJORWWQZ"_FD 
	

i("++doo*F!H 
HB66&((RVVFHH-
.Coo		zA~89:EVF"""%"""s&	 	    c                   aa \        R 4      \        R4      \        R4      rCp\        W#V3V P                  V P                  3RR7      oV3R lp\        W#R,          V3V P
                  \        VR,          4      ,          RR7      pRoRpRp. ROp	V	P                  V! WV4      R,          4       \        . RO4      p
\        ;QJ d-    V3R lV! WV4      V
,
           4       F  '       d   K   R	M"	  RM! V3R lV! WV4      V
,
           4       4      '       g   Q hRp. ROp	V	P                  V! WV4      R,          4       \        . RO4      p
\        ;QJ d-    V3R
 lV! WV4      V
,
           4       F  '       d   K   R	M"	  RM! V3R
 lV! WV4      V
,
           4       4      '       g   Q hV'       d!   RpRp	V! WV4      \        ^
^4      8X  g   Q hR# R# )q1:6u1:6r   T)csec                 H   < \         P                  ! R  S! WV4       4       !  # )c              3   8   "   T F  p\        V4      x  K  	  R # 5iN)r   ).0mats   & rB   	<genexpr>E_verify_rolling_disc_numerically.<locals>.<lambda>.<locals>.<genexpr><   s     	3!2#&++!2s   )r   LUsolve)qupeval_syss   &&&rB   <lambda>2_verify_rolling_disc_numerically.<locals>.<lambda>;   s    	3!!2	3!5rD   :N   N绽|=c              3   @   <"   T F  p\        V4      S8  x  K  	  R # 5irK   absrL   r(   epss   & rB   rN   3_verify_rolling_disc_numerically.<locals>.<genexpr>I          ?< !"s1v|<   Fc              3   @   <"   T F  p\        V4      S8  x  K  	  R # 5irK   rZ   r\   s   & rB   rN   r^   T   r_   r`   N)Q#@gp=
ף?gq=
ףp@)g333333?g?gQ?ffffffֿ)\(@)gɿg?g333333?):N   Nr   )
g3Ԏ4?g5k?g8{?ga@w?gHyR?gZg	gyU@g?Ugtu#?)g(\@gQѿgffffff @rc   rd   )g      пgףp=
?)
g7?gWw`?gF-g[!?gz?gs4?g4;eg^] gw{Dÿg-}¿r   r   r   r   r   )
r
   r   r   mass_matrix_fullforcing_full_Arsr   extendallr   )kaneall_zerorQ   rR   rS   	solve_syssolve_u_depp_valsq_valsu_valsexpectedr]   rT   s   &&         @@rB    _verify_rolling_disc_numericallyru   7   s   V$nV&<gg>N!Aq	D$9$94;L;L#M "H5IAua=$))fQrUm*CNK
CF*FF
MM+ff5e<=  H
 3 ?&&1H<?333 ?&&1H<? ? ? ? ? -F F
MM+ff5e<=  H
 3 ?&&1H<?333 ?&&1H<? ? ? ? ?  0E"aL@@@ rD   c                      \        4       p \        V R ,          V R,          V R,          V R,          V R,          V R,          V R,          V R,          RR	R
7
      pVP                  4        \        V4       R# )r   r   r   r   r   r   r   r   FLU)u_dependentvelocity_constraintsr   	forcelistexplicit_kinematicsconstraint_solverN)rC   r   kanes_equationsru   )propsrm   s     rB   test_kane_rolling_disc_lur   \   sc     "EuW~uW~uW~V}%.,1%L#How+0D	JD
 	$T*rD   c                    a \        4       p \        V R ,          V R,          V R,          V R,          V R,          V R,          V R,          V R,          RR	 R
7
      p\        R4      \        R4      \        R4      rCp\        R^4      p\	        W%W43\        VP                  4       P                  4       4      4      pRoRpRp\        ;QJ d&    V3R lV! WW4       4       F  '       d   K   RM	  RM! V3R lV! WW4       4       4      '       g   Q h\        \        \        \        ^,          \        ^,          \        ^,          RR34      4      p	\        \        \        ^R^^\        ^4      ,          ,
          R^\        ^4      ,          ^,
          ,          R^\        ^4      ,
          ,          34      4      p
\        \        \        R^RRR^\        ^4      ,          ,           ,          R\        ^4      ) ^,           ,          34      4      p\        ;QJ d&    V3R lV! WW4       4       F  '       d   K   RM	  RM! V3R lV! WW4       4       4      '       g   Q hR# )r   r   r   r   r   r   r   r   Fc                 6    \        V P                  V4      4      # rK   )r	   rP   )Abs   &&rB   rU   6test_kane_rolling_disc_kdes_callable.<locals>.<lambda>n   s    8AIIaL#9rD   )rx   ry   r   rz   r{   kd_eqs_solverrF   rG   r   rX         ?c              3   P   <"   T F  w  r\        W,
          4      S8  x  K  	  R # 5irK   rZ   rL   qdifuir]   s   &  rB   rN   7test_kane_rolling_disc_kdes_callable.<locals>.<genexpr>v   s&      CA )1s39~#A   #&TgzG?rf   c              3   P   <"   T F  w  r\        W,
          4      S8  x  K  	  R # 5irK   rZ   r   s   &  rB   rN   r      s%      ;9 )1s39~#9r   N)rb   r   g      @rg   gUUUUUU?)rC   r   r
   r   r   tuplekindiffdictitemsrl   mapfloatr   r   )r~   rm   rQ   rR   rS   qd	eval_kdesrq   	zero_valsrr   qd_valsrs   r]   s               @rB   $test_kane_rolling_disc_kdes_callabler   g   s     "Egggf'NuX%.!9;D V$nV&<gg>N!A		"B!d.>.>.@.F.F.H(IJI
CFI3 CyAC333 CyAC C C C C 3urAvrAvrAvtTBCDFC5!a$q'k/ $DGa 8 $DG 4 6 7 8G 3ur1eTR!d1g+5E-F#Qx!|46 7 8F3 ;&9;333 ;&9; ; ; ; ;rD   N)F)sympyr   r   r   r   r   r   r	   sympy.physics.mechanicsr
   r   r   r   r   r   rC   ru   r   r    rD   rB   <module>r      s7   * * *B B-`"AJ+;rD   