§
    OŠtjò'  ã                   óô   — d dl mZ d dl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mZmZmZmZmZmZ d dl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  ej!        Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*dS )é    )Úexpand)Úsymbols)ÚcosÚsin)ÚMatrix)Útrigsimp)	ÚPinJointÚJointsMethodÚ	RigidBodyÚParticleÚBodyÚKanesMethodÚPrismaticJointÚLagrangesMethodÚinertia)ÚdynamicsymbolsÚReferenceFrame)ÚraisesÚwarns_deprecated_sympy)Úzeros)Úlambdify)Úsolvec                  ó&  — t          ¦   «         5  t          d¦  «        } t          d¦  «        }d d d ¦  «         n# 1 swxY w Y   t          d| |¦  «        }t          d¦  «        \  }}t	          d¦  «        \  }}|                      || j        z  ¦  «         t          ¦   «         5  t          | |¦  «        }d d d ¦  «         n# 1 swxY w Y   |j        | j        k    sJ ‚|j	        || gk    sJ ‚|j
        | j        || j        j        z  fgk    sJ ‚|j        t          |g¦  «        k    sJ ‚|j        t          |g¦  «        k    sJ ‚|j        t          ||                     ¦   «         z
  g¦  «        k    sJ ‚|                     ¦   «         }|t          | |                     ¦   «         z  gg¦  «        k    sJ ‚|j        t          |gdgg¦  «        k    sJ ‚|j        t          ddgd|gg¦  «        k    sJ ‚t)          |j        t,          ¦  «        sJ ‚d S )NÚPÚCÚP1zC_ixx gz
q_P1, u_P1r   é   )r   r   r	   r   r   Úapply_forceÚyr
   ÚframeÚbodiesÚloadsÚ
masscenterÚqr   ÚuÚkdesÚdiffÚ	form_eomsÚforcing_fullÚmass_matrix_fullÚ
isinstanceÚmethodr   )	r   r   ÚPinÚC_ixxÚgr$   r%   r,   Úsolns	            úm/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/physics/mechanics/tests/test_jointsmethod.pyÚtest_jointsmethodr2      s�  € Ý	Ñ	!Ô	!ð ð Ý�‰IŒIˆÝ�‰IŒIˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �4˜˜AÑ
Ô
€CÝ�yÑ!Ô!�H€Eˆ1Ý˜,Ñ'Ô'�D€A€qØ‡M‚M�!�A”C‘%ÑÔÐÝ	Ñ	!Ô	!ð &ð &Ý˜a Ñ%Ô%ˆð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &àŒ<˜1œ7Ò"Ð"Ð"Ð"ØŒ=˜Q ˜FÒ"Ð"Ð"Ð"ØŒ<˜Qœ\¨1¨Q¬W¬Y©;Ð7Ð8Ò8Ð8Ð8Ð8ØŒ8•v˜q˜c‘{”{Ò"Ð"Ð"Ð"ØŒ8•v˜q˜c‘{”{Ò"Ð"Ð"Ð"ØŒ;�& ! a§f¢f¡h¤h¡, Ñ0Ô0Ò0Ð0Ð0Ð0Ø×ÒÑÔ€DØ•6˜U˜F 1§6¢6¡8¤8™OÐ,Ð-Ñ.Ô.Ò.Ð.Ð.Ð.ØÔ¥&¨1¨#°¨s¨Ñ"4Ô"4Ò4Ð4Ð4Ð4ØÔ"¥f¨q°!¨f°q¸%°jÐ-AÑ&BÔ&BÒBÐBÐBÐBÝ�f”m¥[Ñ1Ô1Ð1Ð1Ð1Ð1Ð1s   �:º>Á>Â%CÃCÃ	Cc            
      óP  — t          d¦  «        \  } }}t          d¦  «        }t          d|¬¦  «        }t          d¦  «        }t	          d¦  «        \  }}t          d||||||  |j        z  |j        ¬¦  «        }t          ¦   «         5  t          ||¦  «        }	d d d ¦  «         n# 1 swxY w Y   |	j
                             |j        ||z  |j        z  f¦  «         |	                     ¦   «          |	                     ¦   «         }
|
d	         | t          |¦  «        z  | z  k    sJ ‚d S )
Núl m gr   Úb©ÚmassÚb_frameúq ur   )ÚcoordinatesÚspeedsÚchild_interframeÚchild_pointÚ
joint_axisr   )r   r   r   r   r   r	   ÚxÚzr   r
   r"   Úappendr#   r(   Úrhsr   )ÚlÚmr/   r   r5   r8   r$   r%   r   r,   rB   s              r1   Ú&test_rigid_body_particle_compatibilityrE   *   s`  € Ý�gÑÔ�G€A€qˆ!Ý�#‰Œ€AÝ�˜1ÐÑÔ€AÝ˜YÑ'Ô'€GÝ˜%Ñ Ô �D€A€qÝ��a˜¨°!ÀgØ˜R '¤)™^¸¼ð	=ñ 	=ô 	=€Aå	Ñ	!Ô	!ð $ð $Ý˜a Ñ#Ô#ˆð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à
„L×Ò˜œ q¨1¡u¨q¬s¡{Ð3Ñ4Ô4Ð4Ø
×ÒÑÔÐØ
�*Š*‰,Œ,€CØˆqŒ6�a�R�˜A™œ‘Y˜q‘[Ò Ð Ð Ð Ð Ð s   ÂB%Â%B)Â,B)c                  ó8  ‡‡‡— t          ¦   «         5  t          d¦  «        Št          d¦  «        } t          d¦  «        }d d d ¦  «         n# 1 swxY w Y   t          d¦  «        \  }}t          d‰| |¦  «        Št	          d| ||¦  «        Št          ¦   «         5  t          t          ˆˆˆfd„¦  «         d d d ¦  «         n# 1 swxY w Y   t          d‰| |¬¦  «        Št	          d| ||¬¦  «        Št          ¦   «         5  t          t          ˆˆˆfd	„¦  «         d d d ¦  «         n# 1 swxY w Y   t          d‰| ||¦  «        Št	          d| |||¦  «        Št          ¦   «         5  t          t          ˆˆˆfd
„¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   ÚTr9   r   ÚP2c                  ó&   •— t          ‰ ‰‰¦  «        S ©N©r
   ©r   r   rH   s   €€€r1   ú<lambda>z?test_jointmethod_duplicate_coordinates_speeds.<locals>.<lambda>C   ó   ø€ ¥<°°2°rÑ#:Ô#:€ ó    )r;   c                  ó&   •— t          ‰ ‰‰¦  «        S rJ   rK   rL   s   €€€r1   rM   z?test_jointmethod_duplicate_coordinates_speeds.<locals>.<lambda>H   rN   rO   c                  ó&   •— t          ‰ ‰‰¦  «        S rJ   rK   rL   s   €€€r1   rM   z?test_jointmethod_duplicate_coordinates_speeds.<locals>.<lambda>M   rN   rO   )r   r   r   r	   r   r   Ú
ValueError)r   rG   r$   r%   r   r   rH   s       @@@r1   Ú-test_jointmethod_duplicate_coordinates_speedsrS   :   s¬  øøø€ Ý	Ñ	!Ô	!ð ð Ý�‰IŒIˆÝ�‰IŒIˆÝ�‰IŒIˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜%Ñ Ô �D€A€qÝ	�$˜˜1˜aÑ	 Ô	 €BÝ	˜˜a  AÑ	&Ô	&€BÝ	Ñ	!Ô	!ð <ð <Ý�zÐ:Ð:Ð:Ð:Ð:Ð:Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 
�$˜˜1 QÐ	'Ñ	'Ô	'€BÝ	˜˜a ¨1Ð	-Ñ	-Ô	-€BÝ	Ñ	!Ô	!ð <ð <Ý�zÐ:Ð:Ð:Ð:Ð:Ð:Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 
�$˜˜1˜a Ñ	#Ô	#€BÝ	˜˜a  A qÑ	)Ô	)€BÝ	Ñ	!Ô	!ð <ð <Ý�zÐ:Ð:Ð:Ð:Ð:Ð:Ñ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <sG   ’.AÁAÁAÂCÃCÃ	CÄD(Ä(D,Ä/D,Å'FÆFÆFc                  óÂ  — t          d¦  «        \  } }t          d¦  «        \  }}t          d¦  «        \  }}}t          ¦   «         5  t          d¦  «        }t          d|¬¦  «        }t          d|¬¦  «        }	d d d ¦  «         n# 1 swxY w Y   t	          d|||| | |j        z  |j        ¬	¦  «        }
t	          d
||	||| |	j        z  |j        ¬	¦  «        }|                     ||z  |j        z  ¦  «         |	                     ||z  |j        z  ¦  «         t          ¦   «         5  t          ||
|¦  «        }d d d ¦  «         n# 1 swxY w Y   | 	                    ¦   «          t          |j        ¦  «        t          g d¢g d¢ddd|dz  z  |z  t          |¦  «        z  d|dz  z  |z  z   |dz  |z  t          |¦  «        z  |dz  |z  z   gdd|dz  |z  t          |¦  «        z  |dz  |z  z   |dz  |z  gg¦  «        k    sJ ‚t          |j        ¦  «        t          t          |g|g| |z  |z  t!          | |z   ¦  «        t!          | ¦  «        z   z  ||z  |z  t!          | ¦  «        z  z
  |dz  |z  d|z  |z   z  |z  t!          |¦  «        z  z   g| |z  |z  t!          | |z   ¦  «        z  |dz  |z  |dz  z  t!          |¦  «        z  z
  gg¦  «        ¦  «        k    sJ ‚d S )Nzq1 q2zu1 u2zm l gr   r   r6   ÚRÚJ1©r;   r:   r=   r>   ÚJ2)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   )Úq1Úq2Úu1Úu2rD   rC   r/   r   ÚPartPÚPartRrV   rX   r,   s                r1   Ú$test_complete_simple_double_pendulumra   O   sò  € Ý˜GÑ$Ô$�F€BˆÝ˜GÑ$Ô$�F€BˆÝ�gÑÔ�G€A€qˆ!Ý	Ñ	!Ô	!ð "ð "Ý�‰IŒIˆÝ�S˜qÐ!Ñ!Ô!ˆÝ�S˜qÐ!Ñ!Ô!ˆð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ 
�$˜˜5¨¸Ø ˜b ¤™j°Q´Sð
:ñ 
:ô 
:€Bå	�$˜˜u¨R¸RØ ˜b ¤™j°U´Wð
>ñ 
>ô 
>€Bð 
×Ò�a˜‘c˜!œ#‘gÑÔÐØ	×Ò�a˜‘c˜!œ#‘gÑÔÐå	Ñ	!Ô	!ð )ð )Ý˜a  RÑ(Ô(ˆð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )à
×ÒÑÔÐå�&Ô)Ñ*Ô*­f°l°l°lØ6B°l°lØ78¸!¸Q¸qÀ!¹t¹VÀA¹XÅcÈ"ÁgÄgÑ=MÐPQÐRSÐUVÑRVÑPVÐWXÑPXÑ=XÐZ[Ð]^ÑZ^Ð_`ÑZ`ÕadÐegÑahÔahÑZhÐklÐnoÑkoÐpqÑkqÑZqÐ6rØ78¸!¸QÀ¹TÀ!¹VÅCÈÁGÄG¹^ÈaÐQRÉdÐSTÉfÑ=TÐVWÐYZÑVZÐ[\ÑV\Ð6]ð6_ñ /`ô /`ò `ð `ð `ð `õ �FÔ'Ñ(Ô(­HµV¸b¸TÀBÀ4È1È"ÈQÉ$ÈqÉ&ÕRUÐVXÐ[]ÑV]ÑR^ÔR^ÕadÐegÑahÔahÑRhÑJiØ+,¨Q©3¨q©5µ°R±´©=ñK9Ø;<¸a¹4À¹6À1ÀRÁ4È"Á9Ñ;MÈbÑ;PÕQTÐUWÑQXÔQXÑ;XñKYð JZà,-¨2¨a©4°©6µ#°b¸2±g±,´,Ñ+>ÀÀAÁÀaÁÈÈAÉÁÍcÐRTÉgÌgÑAUÑ+UÐ*Vð=Xñ 6Yô 6Yñ -Zô -Zò Zð Zð Zð Zð Zð Zs$   Á2BÂBÂBÄ%EÅEÅ
Ec                  óP  — t          d¦  «        \  } }}}t          d¦  «        \  }}}}}t          ¦   «         5  t          d¦  «        }	t          d|¬¦  «        }
t          d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t	          d|	|
| |¬¦  «        }t	          d	|
|||¬¦  «        }|	                     || z  |	j        z  |
¬
¦  «         |	                     ||z  |	j        z  |
¬
¦  «         |
                     ||z  |	j        z  |¬
¦  «         |
                     ||z  |	j        z  |¬
¦  «         t          ¦   «         5  t          |	||¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |j	        }|j
        }|                     |¦  «        }t          |d         ¦  «        t          | | z  ||z  z
  ||z  z   ||z  z   |z  ¦  «        k    sJ ‚t          |d         ¦  «        t          || z  ||z  z   d|z  |z  z
  d|z  |z  z
  |z  ¦  «        k    sJ ‚d S )Nzq1 q2 u1 u2zm c1 c2 k1 k2ÚWÚB1r6   ÚB2rV   )r:   r;   rX   )Úreaction_bodyr   r   rY   )r   r   r   r   r   r   r?   r
   r(   Úmass_matrixÚforcingÚLUsolver   )r[   r\   r]   r^   rD   Úc1Úc2Úk1Úk2rc   rd   re   rV   rX   r,   ÚMMrh   rB   s                     r1   Útest_two_dof_jointsro   k   sÒ  € Ý# MÑ2Ô2�N€BˆˆB�Ý Ñ0Ô0Ñ€A€rˆ2ˆr�2Ý	Ñ	!Ô	!ð  ð  Ý�‰IŒIˆÝ�$˜QÐÑÔˆÝ�$˜QÐÑÔˆð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ 
˜˜a °¸BÐ	?Ñ	?Ô	?€BÝ	˜˜b "°"¸RÐ	@Ñ	@Ô	@€BØ‡M‚M�"�R‘%˜œ‘)¨2€MÑ.Ô.Ð.Ø‡M‚M�"�R‘%˜œ‘)¨2€MÑ.Ô.Ð.Ø‡N‚N�2�b‘5˜œ‘9¨B€NÑ/Ô/Ð/Ø‡N‚N�2�b‘5˜œ‘9¨B€NÑ/Ô/Ð/Ý	Ñ	!Ô	!ð )ð )Ý˜a  RÑ(Ô(ˆð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )à
×ÒÑÔÐØ	Ô	€BØŒn€GØ
�*Š*�WÑ
Ô
€CÝ�#�a”&‰>Œ>�V b S¨2¡X°°R±Ñ%7¸"¸r¹'Ñ%AÀBÈÁGÑ%KÈQÑ$NÑOÔOÒOÐOÐOÐOÝ�#�a”&‰>Œ>�V R¨"¡W¨r°B©wÑ%6¸¸R¹À"¹Ñ%DÀqØ$&ñH'Ø)+ñH,ñ &,Ø/0ñ%1ñ 2ô 2ò 2ð 2ð 2ð 2ð 2ð 2s#   ¸2A6Á6A:Á=A:Ä?EÅE!Å$E!c            	      ó–  — t          d¦  «        \  } }}t          ¦   «         5  t          d¦  «        }t          d|¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          d¦  «        }t	          d|||                     t          ¦  «        ||  |j        z  |j        ¬¦  «        }| |z  | z  t          |¦  «        z  |_
        t          ¦   «         5  t          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     t          ¦  «         |                     ¦   «         }|d         | t          |¦  «        z  | z  k    sJ ‚d S )	Nr4   r   r5   r6   r$   r   rW   r   )r   r   r   r   r	   r'   Útr?   r@   r   Úpotential_energyr
   r(   r   rB   r   )	rC   rD   r/   r   r5   r$   r   r,   rB   s	            r1   Útest_simple_pedulumrs   ‚   s²  € Ý�gÑÔ�G€A€qˆ!Ý	Ñ	!Ô	!ð ð Ý�‰IŒIˆÝ�˜1ÐÑÔˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 	�sÑÔ€AÝ��a˜ 1§6¢6­!¡9¤9¸!Ø˜R !¤#™X°!´#ð	7ñ 	7ô 	7€Aà˜˜q™ 1™¥s¨1¡v¤vÑ-€AÔÝ	Ñ	!Ô	!ð $ð $Ý˜a Ñ#Ô#ˆð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $à
×Ò•_Ñ%Ô%Ð%Ø
�*Š*‰,Œ,€CØˆqŒ6�a�R�˜A™œ‘Y˜q‘[Ò Ð Ð Ð Ð Ð s#   ¢!AÁAÁAÃC.Ã.C2Ã5C2c                  óþ  — t          d¦  «        \	  } }}}}}}}}t          d¦  «        \  }	}
}}t          d¦  «        }t          d¦  «        }t          ¦   «         5  t	          d| |t          |||d¦  «        ¬¦  «        }t	          d||t          ||||¦  «        ¬¦  «        }t	          d	¦  «        }d d d ¦  «         n# 1 swxY w Y   t          d
|||	|| |j        z  |j        ¬¦  «        }t          d|||
|||z
  |j        z  |j        ¬¦  «        }| 	                    | |z  |j        z  ¦  «         | 	                    ||z  |j        z  ¦  «         t          ¦   «         5  t          |||¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |j        }|j        }|                     |¦  «        }d|z  |z  |z  t          |
¦  «        z  t!          |
¦  «        z  d|z  |z  |z  t          |
¦  «        z  t!          |
¦  «        z  z   ||z  | z  t          |	¦  «        z  z
  ||z  |z  t          |	¦  «        z  z
  ||t          |
¦  «        dz  z  z   |t!          |
¦  «        dz  z  z   |dz  | z  z   |dz  |z  z   z  }|d         |z
                       ¦   «         dk    sJ ‚||z
  |dz  z  t          |
¦  «        z  t!          |
¦  «        z  |z  }|d         |z
                       ¦   «         dk    sJ ‚d S )Nz)mA, mB, lA, lB, IAxx, IBxx, IByy, IBzz, gztheta phi omega alphaÚAÚBÚrodr   )r7   r    Úcentral_inertiaÚplater   rV   )r:   r;   r=   r>   rX   )r:   r;   Úparent_pointr>   éþÿÿÿrY   r   )r   r   r   r   r   r   r	   r@   r   r   r
   r(   rg   rh   ri   r   r   Úsimplify)ÚmAÚmBÚlAÚlBÚIAxxÚIBxxÚIByyÚIBzzr/   ÚthetaÚphiÚomegaÚalpharu   rv   rw   ry   r   rV   rX   r,   rn   rh   rB   Úxds                            r1   Útest_chaos_pendulumrŠ   ‘   sÌ  € å07Ð8cÑ0dÔ0dÑ-€BˆˆB��D˜$  d¨AÝ-Ð.EÑFÔFÑ€Eˆ3��uå�sÑÔ€AÝ�sÑÔ€Aå	Ñ	!Ô	!ð ð Ý�5˜r¨Ý#*¨1¨d°D¸!Ñ#<Ô#<ð>ñ >ô >ˆå�W 2¨QÝ%,¨Q°°d¸DÑ%AÔ%AðCñ Cô Cˆå�‰IŒIˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
�$˜˜3¨E¸%Ø!˜c C¤E™k°a´cð
;ñ 
;ô 
;€Bå	�$˜˜U°¸EØ " R¡¨3¬5Ñ0¸S¼Uð
Dñ 
Dô 
D€Bð ‡O‚O�B�q‘D˜œ‘HÑÔÐØ	×Ò�b˜‘d˜1œ3‘hÑÔÐå	Ñ	!Ô	!ð )ð )Ý˜a  RÑ(Ô(ˆð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )à
×ÒÑÔÐà	Ô	€BØŒn€GØ
�*Š*�WÑ
Ô
€CØ
ˆt‰)�eÑ
˜eÑ
#¥c¨#¡h¤hÑ
.µ°S±´Ñ
9¸AÀ¹HÀuÑ<LÈuÑ<TÕWZÐ[^ÑW_ÔW_Ñ<_Ý�‰HŒHñ=ñ Ø˜2‘v ‘{¥S¨¡Z¤ZÑ/ñ0Ø23°b±&¸2±+ÅÀEÁ
Ä
Ñ2JñKØOSÐVZÝ�C‘”˜!‘ñWñ PØ"¥S¨¡X¤X¨q¡[Ñ0ñP1Ø35°q±5¸2±:ñP>Ø@BÀAÁÈÁ
ñPKñ
L€Bð �ŒF�R‰K×!Ò!Ñ#Ô# qÒ(Ð(Ð(Ð(Ø
�‰+˜ ™Ñ	!¥C¨¡H¤HÑ	,­s°3©x¬xÑ	7¸$Ñ	>€BØ�ŒF�R‰K×!Ò!Ñ#Ô# qÒ(Ð(Ð(Ð(Ð(Ð(s%   ÁAB<Â<C ÃC ÅE=Å=FÆFc                  óÆ  ‡&‡'‡(— t          d¦  «        \  } }}}}}t          d¦  «        \  }}}}	Š(t          d¦  «        Š&ˆ&ˆ(fd„||||	fD ¦   «         }
t          ¦   «         5  t	          d‰&‰(|z  |
d         ¬¦  «        }t	          d‰(|z  |
d	         ¬
¦  «        }t	          d‰(|z  |
d         ¬
¦  «        }t	          d‰(|	z  |
d         ¬
¦  «        }d d d ¦  «         n# 1 swxY w Y   t          d||| ||j        |dz  |j        z  | dz  |j        z  ¬¦  «        }t          d|||||j        |dz  |j        z  | dz  |j        z  ¬¦  «        }t          d|||||j        |dz  |j        z  |	 dz  |j        z  ¬¦  «        }|j         	                    |j        ¦  «        |dz  |j        z  z   |	dz  |j        z  z   }t          |                     |j        ¦  «        |                     |j        ¦  «        g¦  «        }t          ¦   «         5  t          ||||¦  «        }d d d ¦  «         n# 1 swxY w Y   t           j        }t          |j        |                      |¦  «        |                     |¦  «        |                     |¦  «        g¦  «        }|                     |¦  «                             |¦  «        }t'          |j        | g|g||g||g|j        |||j        |j        ¬¦
  «
        }|                     ¦   «         \  }}|t1          d	¦  «        k    sJ ‚t          ||||	‰(g¦  «        }t          | ||g¦  «        }t          |||g¦  «        }t3          ||f|j        ¦  «        }t3          |||f|j        ¦  «        }t3          |||f|¦  «        } g d¢}!g d¢}"g d¢}#t          g d¢g d¢g d¢g¦  «        }$t          dgdgdgg¦  «        }%dŠ't9          ˆ'fd„ | |"|#|!¦  «        D ¦   «         ¦  «        sJ ‚t9          ˆ'fd„t           ||"|!¦  «        ¦  «        |$z
  D ¦   «         ¦  «        sJ ‚t9          ˆ'fd „t           ||"|#|!¦  «        ¦  «        |%z
  D ¦   «         ¦  «        sJ ‚d S )!Nz
q1:4, u1:4z	l1:5, rhoÚNc           
      óF   •— g | ]}t          ‰d d ‰|dz  z  dz  ¦  «        ‘ŒS )r   rZ   é   )r   )Ú.0rC   rŒ   Úrhos     €€r1   ú
<listcomp>zAtest_four_bar_linkage_with_manual_constraints.<locals>.<listcomp>º   s4   ø€ ÐNÐNÐN¸•˜˜1˜a  q¨A¡v¡°Ñ!2Ñ3Ô3ÐNÐNÐNrO   ÚLink1r   )r    r7   rx   ÚLink2r   )r7   rx   ÚLink3rY   ÚLink4rZ   rV   )r:   r;   r>   rz   r=   rX   ÚJ3)	Úq_indÚu_indÚq_dependentÚu_dependentÚkd_eqsÚconfiguration_constraintsÚvelocity_constraintsÚ	forcelistr!   )g¤p=
×£À?g¸…ëQ¸Î?gáz®GáÊ?gÃõ(\�ÂÕ?iå  )gÍÌÌÌÌÌ @gÐtM)Lå?gFªÂ!8@)gš™™™™™É?g6è8[þÆ¿gàµ„’‡ÁÀ?)gD†ÇówCA@gƒ_'@gÆ�Y>ÂÀ)g    Ð½gTBìÿ�„Ê?gvûÖ1Ò?)g_r=
×£À¿g0Ò S‚¿g©;àÞÇ?gàLßýõŸ¿gdžô¶`¢E¿gopÊñž¶]?g»½×Ùß|Û=c              3   ó>   •K  — | ]}t          |¦  «        ‰k     V — Œd S rJ   ©Úabs©r�   r?   Úepss     €r1   ú	<genexpr>z@test_four_bar_linkage_with_manual_constraints.<locals>.<genexpr>õ   s-   øè è € ÐFÐF �s�1‰vŒv˜Š|ÐFÐFÐFÐFÐFÐFrO   c              3   ó>   •K  — | ]}t          |¦  «        ‰k     V — Œd S rJ   r    r¢   s     €r1   r¤   z@test_four_bar_linkage_with_manual_constraints.<locals>.<genexpr>ö   s=   øè è € ð >ð > �s�1‰vŒv˜Š|ð >ð >ð >ð >ð >ð >rO   c              3   ó>   •K  — | ]}t          |¦  «        ‰k     V — Œd S rJ   r    r¢   s     €r1   r¤   z@test_four_bar_linkage_with_manual_constraints.<locals>.<genexpr>ø   sE   øè è € ð Ið I �s�1‰vŒv˜Š|ð Ið Ið Ið Ið Ið IrO   )r   r   r   r   r   r	   r@   r?   r#   Úpos_fromr   Údotr   r
   Ú_tr   r&   r'   Úsubsr   r    r"   r!   Úkanes_equationsr   r   rg   rh   Úall))r[   r\   Úq3r]   r^   Úu3Úl1Úl2Úl3Úl4ÚinertiasÚlink1Úlink2Úlink3Úlink4Újoint1Újoint2Újoint3ÚloopÚfhr,   rq   ÚqdotsÚfhdÚkaneÚfrÚfrsÚpr$   r%   Úeval_mÚeval_fÚeval_fhdÚp_valsÚq_valsÚu_valsÚ
mass_checkÚforcing_checkrŒ   r£   r�   s)                                         @@@r1   Ú-test_four_bar_linkage_with_manual_constraintsrË   µ   sç  øøø€ Ý+¨LÑ9Ô9Ñ€BˆˆB��B˜Ý! +Ñ.Ô.Ñ€BˆˆB��Cå�sÑÔ€AØNÐNÐNÐNÐN¸bÀ"ÀbÈ"Ð=MÐNÑNÔN€HÝ	Ñ	!Ô	!ð Jð JÝ�W A¨C°"©HØ%-¨a¤[ð2ñ 2ô 2ˆå�W 3¨¡8¸XÀa¼[ÐIÑIÔIˆÝ�W 3¨¡8¸XÀa¼[ÐIÑIÔIˆÝ�W 3¨¡8¸XÀa¼[ÐIÑIÔIˆðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jõ Øˆe�U¨°2À%Ä'Ø˜!‘V˜eœgÑ%°B°3¸±7¸U¼WÑ3DðFñ Fô F€Fõ Øˆe�U¨°2À%Ä'Ø˜!‘V˜eœgÑ%°B°3¸±7¸U¼WÑ3DðFñ Fô F€Fõ Øˆe�U¨°2À%Ä'Ø˜!‘V˜eœgÑ%°B°3¸±7¸U¼WÑ3DðFñ Fô F€Fð Ô×$Ò$ UÔ%5Ñ6Ô6Ø�!‰V�e”gÑñØ " Q¡¨¬Ñ 0ñ1€Dõ 
�—’˜%œ'Ñ"Ô" D§H¢H¨U¬WÑ$5Ô$5Ð6Ñ	7Ô	7€Bå	Ñ	!Ô	!ð =ð =Ý˜e V¨V°VÑ<Ô<ˆð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ 	Ô€AÝ�&”+ §¢¨¡
¤
¨B¯GªG°A©J¬J¸¿ºÀ¹
¼
ÐCÑDÔD€EØ
�'Š'�!‰*Œ*�/Š/˜%Ñ
 Ô
 €Cå�v”|¨B¨4¸°tØ$&¨ 8¸"¸b¸Ø$œkÀRØ,/¸6¼<Ø$œmð	-ñ -ô -€Dð
 ×"Ò"Ñ$Ô$�G€BˆØ•�q‘”Š>ˆ>ˆ>ˆ>õ 	��B˜˜B Ð$Ñ%Ô%€AÝ��B˜ˆ|ÑÔ€AÝ��B˜ˆ|ÑÔ€AÝ�q˜!�f˜dÔ.Ñ/Ô/€FÝ�q˜!˜Q�i ¤Ñ.Ô.€FÝ˜˜A˜q˜	 3Ñ'Ô'€Hà*Ð*Ð*€FØ9Ð9Ð9€FØ<Ð<Ð<€FÝð 2ð 2ð 2ð1ð 1ð 1ð1ð 1ð 1ð	2ñ 3ô 3€Jõ Ð/Ð0Ø.Ð/Ø.Ð/ð1ñ 2ô 2€Mð €CÝÐFÐFÐFÐF X X¨f°f¸fÑ%EÔ%EÐFÑFÔFÑFÔFÐFÐFÐFÝð >ð >ð >ð >Ý�v�v˜f fÑ-Ô-Ñ.Ô.°Ñ;ð>ñ >ô >ñ >ô >ð >ð >ð >åð Ið Ið Ið IÝ�v�v˜f f¨fÑ5Ô5Ñ6Ô6¸ÑFðIñ Iô Iñ Iô Ið Ið Ið Ið Ið Is%   ÁA.CÃCÃ CÈH&È&H*È-H*N)+Úsympy.core.functionr   Úsympy.core.symbolr   Ú(sympy.functions.elementary.trigonometricr   r   Úsympy.matrices.denser   Úsympy.simplify.trigsimpr   Úsympy.physics.mechanicsr	   r
   r   r   r   r   r   r   r   Úsympy.physics.vectorr   r   Úsympy.testing.pytestr   r   Úsympyr   Úsympy.utilities.lambdifyr   Úsympy.solvers.solversr   r©   rq   r2   rE   rS   ra   ro   rs   rŠ   rË   © rO   r1   ú<module>rØ      sÖ  ðØ &Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð.ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð @Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð Ô€ð2ð 2ð 2ð.!ð !ð !ð <ð <ð <ð*Zð Zð Zð82ð 2ð 2ð.!ð !ð !ð")ð ")ð ")ðHDIð DIð DIð DIð DIrO   