Ë
    7^(h‡'  ã                   ó°   — d dl mZmZmZmZmZmZmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZmZmZ d dlmZ d dlmZ d dlmZ d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zy)é    )ÚdynamicsymbolsÚReferenceFrameÚPointÚ	RigidBodyÚLagrangesMethodÚParticleÚinertiaÚ
Lagrangian)Ú
DerivativeÚFunction)Úpi)Úsymbols)ÚcosÚsinÚtan)ÚMatrix)Úsimplify)Úraisesc                  ó  ‡‡‡— t        d«      \  } }}t        d«      Št        d«      t        d«      }}|j                  |d«       t	        dt        d«      |«      Š‰j
                  j                  || t        ‰«      |j                  z  t        ‰«      |j                  z  z
  z  «       ||z  ‰j
                  j                  |«      j                  |j                  «      z  ‰_        t        |‰«      Št        t         ˆˆˆfd„«       y )Núl m gÚqÚNÚOr   ÚPc                  ó"   •— t        ‰ ‰g‰¬«      S )N©Úbodies)r   )ÚLr   r   s   €€€úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/physics/mechanics/tests/test_lagrange.pyú<lambda>z*test_invalid_coordinates.<locals>.<lambda>   s   ø€ œ¨q°1°#¸aÔ@€ ó    )r   r   r   Úset_velr   ÚpointÚset_posr   Úxr   ÚyÚpos_fromÚdotÚpotential_energyr
   r   Ú
ValueError)ÚlÚmÚgr   r   r   r   r   s        @@@r   Útest_invalid_coordinatesr.      sÇ   ú€ ä�gÓ�G€A€qˆ!Ü�‹€AÜ˜#Ó¤ c£
€q€AØ‡I�Iˆa�„OÜ�”e˜C“j !Ó$€AØ‡G�G‡O�O�A�qœC ›F Q§S¡S™L¬3¨q«6°A·C±C©<Ñ7Ñ8Ô9Ø˜Q™ §¡×!1Ñ!1°!Ó!4×!8Ñ!8¸¿¹Ó!=Ñ=€AÔÜ�1�aÓ€AÜ
Œ:Õ@ÕAr!   c                  óæ  — t        d«      \  } }t        dd«      \  }}t        d«      \  }}}}}t        d«      }	|	j                  ddt        dz  |z
  |	j
                  g«      }
|
j                  dd| |
j
                  g«      }t        d	«      }|j                  |	||
j                  z  «       ||dz  z  dz  |j
                  z  |j
                  z  }t        d
|||||f«      }||z  || z
  z  t        |«      z  |_        t        |	|«      }| |g}| ||z  z
  g}t        |||¬«      }|j                  «        |j                  «       }|j!                  «        |d   d|z  t        |«      z  dz  k(  sJ ‚y )Nzy thetaé   zm g R l alphar   ÚAÚAxisé   ÚBÚDoÚD)Ú
hol_coneqsé   )r   r   r   Ú	orientnewr   Úzr   r"   r%   r   r   r)   r
   r   Úform_lagranges_equationsÚrhsr   )r&   ÚthetaÚydÚthetadr,   r-   ÚRr+   Úalphar   r1   r4   r5   ÚIr6   r   r   r7   r<   s                      r   Útest_disc_on_an_incline_planerC      sr  € ô ˜iÓ(�H€A€uÜ 	¨1Ó-�J€BˆÜ Ó0Ñ€A€qˆ!ˆQ�ô 	�sÓ€AØ	�‰�C˜¤" Q¡$¨¡,°·±Ð!4Ó5€AØ	�‰�C˜ 5 &¨!¯#©# Ó/€Aô
 
ˆt‹€BØ‡J�Jˆq�"�q—s‘s‘(ÔØ	ˆAˆq‰D‰�‰
�Q—S‘SÑ˜1Ÿ3™3Ñ€AÜ�#�r˜1˜a ! R Ó)€Að
 ˜Q™ ! a¡%™¬3¨u«:Ñ5€AÔÜ�1�aÓ€Að 
ˆEˆ
€AØ�a˜%‘i‘-�€JÜ˜˜1¨Ô4€AØ×ÑÔ Ø
�%‰%‹'€CØ‡L�L„NØˆq‰6�Q�q‘Sœ˜U›‘^ AÑ%Ò%Ð%Ñ%r!   c                  ó€  — t        d«      \  } }t        dd«      \  }}t        d«      \  }}}t        d«      }|j                  dd| |j                  g«      }|j                  |||j                  z  «       t        d«      }	|	j                  |d	«       |	j                  d
||j                  z  «      }
|
j                  |	||«       t        d|
|«      }| |z  |z  t        | «      z  |_        t        ||«      }t        || g«      }|j!                  «        |j#                  «       }|d   | t%        | «      z  |z  k(  sJ ‚y )Nzq uzq u r0   r   r   r1   r2   r   r   r   ÚPa)r   r   r   r9   r:   Úset_ang_velr   r"   Ú	locatenewr%   Úv2pt_theoryr   r   r)   r
   r   r;   r<   r   )r   ÚuÚqdÚudr+   r,   r-   r   r1   r   r   rE   r   ÚlmÚRHSs                  r   Útest_simp_penrN   J   s,  € ô ˜%Ó �D€A€qÜ˜F AÓ&�F€BˆÜ�gÓ�G€A€qˆ!ô
 	�sÓ€AØ	�‰�C˜ ! Q§S¡S Ó*€AØ‡M�M�!�R˜!Ÿ#™#‘XÔô
 	ˆc‹
€AØ‡I�Iˆa�„OØ	�‰�C˜˜QŸS™S™Ó!€AØ‡M�M�!�Q˜Ôô 
�$˜˜1Ó	€BØ˜# ™' A™+¬¨A«Ñ.€BÔÜ�1�bÓ€Aô 
˜˜Q˜CÓ	 €BØ×ÑÔ!Ø
�&‰&‹(€CØˆq‰6�a�Rœ˜A›‘Y˜q‘[Ò Ð Ñ r!   c            	      óÌ  — t        d«      \  } }t        dd¬«      \  }}t        d«      \  }}}d}t        d«      }t        d«      }	|	j	                  |d«       |	j                  d	| |j                  z  ||j                  z  z   «      }
|
j	                  ||
j                  |	«      j                  |«      «       t        d
|
|«      }t        | dz  |dz  z   |dz  z
  g«      }t        ||«      }t        || |g||
||z  |j                  z  fg|¬«      }|j                  «        |j                  d   }t        |t!        | ||«      z  d|z  z
  d|z  | z  z   g|t!        |||«      z  d|z  |z  z   gg«      }|j"                  |k(  sJ ‚t        d| z  d|dz  z  z   d|dz  z  z   d| dz  z  |z  d|dz  z  |z  z   z  g«      }t%        |j'                  d¬«      «      t%        |«      k(  sJ ‚y )Nzq1:3r0   )ÚlevelzL, m, tgš™™™™™#@r   zN*r   ÚP1ÚpPr3   )r7   Ú	forcelistÚframe)r   r   gš™™™™™3@é   r   )Úsol_type)r   r   r   r   r"   rG   r%   r&   r'   Údtr   r   r
   r   r;   Úlam_vecr   Úeomr   Úsolve_multipliers)Úq1Úq2Úq1dÚq2dr   r,   Útr-   r   ÚpNr   rR   Úf_cÚLagÚLMÚlam1Úeom_solÚlam_sols                     r   Útest_nonminimal_pendulumrg   s   sú  € Ü˜FÓ#�F€BˆÜ˜f¨AÔ.�H€CˆÜ�iÓ �G€A€qˆ!Ø€Aä�sÓ€AÜ	ˆt‹€BØ‡J�Jˆq�!Ôà
�‰�T˜2˜aŸc™c™6 B q§s¡s¡F™?Ó+€AØ‡I�Iˆa�—‘˜B“×"Ñ" 1Ó%Ô&Ü	�$˜˜1Ó	€Bä
�"�a‘%˜"˜a™%‘- ! Q¡$Ñ&Ð'Ó
(€Cä
�Q˜Ó
€CÜ	˜˜r 2˜h°3Ø˜1˜Q™3˜qŸs™s™7�|�n¨Aô
/€Bà×ÑÔ!à�:‰:�dÑ€DÜ�qœ B¨¨1Ó-Ñ-°°A±Ñ5¸¸$¹¸r¹	ÑAÐBØœ B¨¨1Ó-Ñ-°°$±°r±	Ñ9Ð:ð<ó =€Gà�6‰6�WÒÐÐä�t˜B‘w  3¨¡6¡Ñ)¨A¨c°1©f©HÑ4°q¸¸Q¹±w¸q±yÀ1ÀRÈÁUÁ7È1Á9Ñ7LÑMÐNÓO€GÜ�B×(Ñ(°(Ð(Ó;Ó<ÄÈÓ@QÒQÐQÑQr!   c                  óò  — t        d«      \  } }t        dd«      \  }}t        dd«      \  }}t        d«      \  }}t        dd«      \  }}	t        d«      \  }
}}t        d«      }|j                  dd| |j                  g«      }|j                  d	d||j                  g«      }|j                  |||j                  z  «       |j                  |||j                  z  «       t        d
«      }|j                  d|
|j                  z  «      }|j                  d|
|j                  z  «      }|j                  |d«       |j                  |||«       |j                  |||«       t        d||«      }t        d||«      }| |z  |
z  t        | «      z  |_        | |z  |
z  t        | «      z  ||z  |
z  t        |«      z  z
  |_        t        |||«      }t        || |g||g¬«      }|j!                  «        t#        |
|z  d|z  t%        | «      z  |
t%        | «      z  t%        |«      z  |z  z   |
t%        | «      z  t        |«      z  |dz  z  z   |
t%        |«      z  t        | «      z  |dz  z  z
  |
t        | «      z  t        |«      z  |z  z   d|
z  |z  z   z  |j&                  d   z
  «      dk(  sJ ‚t#        |
|z  |t%        |«      z  |
t%        | «      z  t%        |«      z  |z  z   |
t%        | «      z  t        |«      z  |dz  z  z
  |
t%        |«      z  t        | «      z  |dz  z  z   |
t        | «      z  t        |«      z  |z  z   |
|z  z   z  |j&                  d   z
  «      dk(  sJ ‚|j(                  ||gk(  sJ ‚y )Nzq1 q2r0   r3   zu1 u2r   r   r1   r2   r4   r   r   r@   r   ÚParPÚParRr   )r   r   r   r9   r:   rF   r   rG   r%   r"   rH   r   r   r)   r
   r   r;   r   r   rY   r   )r[   r\   r]   r^   Úq1ddÚq2ddÚu1Úu2Úu1dÚu2dr+   r,   r-   r   r1   r4   r   r   r@   ri   rj   r   rL   s                          r   Útest_dub_penrq   ‘   sz  € ô ˜GÓ$�F€BˆÜ˜g qÓ)�H€CˆÜ ¨Ó+�J€Dˆ$Ü˜GÓ$�F€BˆÜ˜g qÓ)�H€CˆÜ�gÓ�G€A€qˆ!ä�sÓ€AØ	�‰�C˜ " a§c¡c Ó+€AØ	�‰�C˜ " a§c¡c Ó+€Aà‡M�M�!�S˜1Ÿ3™3‘YÔØ‡M�M�!�S˜1Ÿ3™3‘YÔäˆc‹
€AØ	�‰�C˜˜QŸS™S™Ó!€AØ	�‰�C˜˜QŸS™S™Ó!€Aà‡I�Iˆa�„OØ‡M�M�!�Q˜ÔØ‡M�M�!�Q˜Ôä�F˜A˜qÓ!€DÜ�F˜A˜qÓ!€Dà˜C !™G a™K¬#¨b«'Ñ1€DÔØ˜C !™G a™K¬#¨b«'Ñ1°A¸±E¸A±IÄÀBÃÑ4GÑG€DÔÜ�1�d˜DÓ!€AÜ	˜˜R ˜H¨d°D¨\Ô	:€BØ×ÑÔ!ä�A�a‘C˜˜1™œS ›W™ q¬¨R«¡y´°R³Ñ'8¸Ñ'=Ñ=Ø
ŒC�‹G‰)”C˜“GÑ
˜C ™FÑ
"ñ#Ø%&¤s¨2£w¡Y¬s°2«wÑ%6°s¸A±vÑ%=ñ>à
ŒC�‹G‰)”C˜“GÑ
˜DÑ
 ñ!à#$ Q¡3 t¡8ñ,ñ -à/1¯v©v°a©yñ9ó :à=>ò?ð ?ð ?ô �A�a‘C˜œ3˜r›7™ Q¤s¨2£w¡Y¬s°2«wÑ%6°tÑ%;Ñ;Ø
ŒC�‹G‰)”C˜“GÑ
˜C ™FÑ
"ñ#Ø%&¤s¨2£w¡Y¬s°2«wÑ%6°s¸A±vÑ%=ñ>à
ŒC�‹G‰)”C˜“GÑ
˜DÑ
 ñ!à#$ T¡6ñ*ñ +à-/¯V©V°A©Yñ7ó 8à;<ò=ð =ð =ð �9‰9˜˜t˜Ò$Ð$Ñ$r!   c            
      ó
  — t        d«      \  } }}t        dd«      \  }}}t        d«      \  }}}t        d«      }	|	j                  dd| |	j                  g«      }
|
j                  dd||
j
                  g«      }|j                  dd||j                  g«      }t        d	«      }|j                  |	d
«       |j                  d||j                  z  «      }|j                  ||	|«       t        ||dz  |dz  z  |dz  |dz  z  |dz  |dz  z  «      }t        d|||||f«      }| |z  |z  t        |«      z  |_        t        |	|«      }| ||g}t!        d«      } t!        d«      }t!        d«      }t#        ||«      }|j%                  «        |j'                  «       }|j)                  «        t        d«      }|j*                  dd d
d|z  |dz  z  dz  d
gk(  sJ ‚|d   j)                  «       d|z  t-         ||«      «      z  |dt-        d ||«      z  «      z  t/         | |«      |«      z  dt         ||«      «      z  t/         ||«      |«      z  z   z  t/         | |«      |«      z  z   d|z  z  k(  sJ ‚|d   dt         ||«      «      z  t/         | |«      |«      z  dt1         ||«      «      z  t/         ||«      |«      z  z   dt/         | |«      |«      z  t         ||«      «      z  z   t/         ||«      |«      z  k(  sJ ‚y )Nzq1 q2 q3r0   zr m gr   ÚYr2   r   r@   ÚCr   ÚDmcrU   r3   ÚBodyDr[   r\   Úq3r_   r8   é   é   iøÿÿÿé   é
   éûÿÿÿ)r   r   r   r9   r:   r%   r&   r   r"   rG   rH   r	   r   r   r)   r
   r   r   r;   r<   r   Úmass_matrixr   r   r   )r[   r\   rw   r]   r^   Úq3dÚrr,   r-   r   rs   r   r@   rt   ru   rB   rv   rb   r   r+   rM   r_   s                         r   Útest_rolling_discr€   Â   s  € ô   
Ó+�J€BˆˆBÜ" :¨qÓ1�M€CˆˆcÜ�gÓ�G€A€qˆ!ô 	�sÓ€AØ	�‰�C˜ " a§c¡c Ó+€AØ	�‰�C˜ " a§c¡c Ó+€AØ	�‰�C˜ " a§c¡c Ó+€Aô 	ˆc‹
€AØ‡I�Iˆa�„OØ
�+‰+�e˜Q §¡™WÓ
%€CØ‡O�O�A�q˜!Ôô 	��1�Q‘3˜˜A™‘:˜q ™s Q¨¡T™z¨1¨Q©3°°A±©:Ó6€AÜ�g˜s A q¨1¨c¨(Ó3€Eð  !˜S 1™W q™[¬3¨r«7Ñ2€EÔÜ
�Q˜Ó
€CØ	ˆR�ˆ€AÜ	�$‹€BÜ	�$‹€BÜ	�$‹€BÜ˜˜QÓ€AØ×ÑÔ Ø
�%‰%‹'€CØ‡L�L„NÜ�‹€Aà�M‰M˜!˜AÐ 1 a¨¡c¨!¨Q©$¡h¨q¡j°!Ð"4Ò4Ð5Ð4Øˆq‰6�?‰?ÓØ	ˆA‰Œc‘"�Q“%‹j‰˜1˜a¤ A¡b¨£e¡G£™n¬Z¹¸1»¸qÓ-AÑAØ
Œ3‰r�!‹u‹:‰”j¡ A£¨Ó*Ñ*ñ+ñ ,Ü,6±r¸!³u¸aÓ,@ñAñ 
AØCEÀaÁ4ñ	IòJð Jð Jð ˆq‰6�bœ™R ›U›‘m¤J©r°!«u°aÓ$8Ñ8¸1¼SÁÀAÃó >
ñ <
Ü
‘R˜“U˜AÓ
ñ<ñ Ø!"¤:©b°«e°QÓ#7Ñ!7¼¹B¸q»E»
Ñ!BñCä
‘R˜“U˜AÓ
ñò ð ñ r!   N) Úsympy.physics.mechanicsr   r   r   r   r   r   r	   r
   Úsympy.core.functionr   r   Úsympy.core.numbersr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.trigonometricr   r   r   Úsympy.matrices.denser   Úsympy.simplify.simplifyr   Úsympy.testing.pytestr   r.   rC   rN   rg   rq   r€   © r!   r   ú<module>rŠ      sQ   ð÷9÷ 9ó 9÷ 7Ý !Ý %ß DÑ DÝ 'Ý ,Ý 'ò
Bò-&ò`&!òRRò<.%ób5r!   