o
    jgE  ã                   @   s¾   d dl 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mZmZ d dlmZ d dlmZ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 e ee ¡Zdd„ Z dS )é    )Ú
DerivativeÚFunction)ÚIÚpi)ÚSymbolÚsymbols)Úsqrt)Úatan2ÚcosÚsin)Úsimplify)ÚepsilonÚmu)Úexp)Úspeed_of_lightÚmÚs©ÚTWave)Úraisesc                     sô  t dƒ\‰ ‰} }‰tdƒ}tdƒ‰tdƒ}tdƒ}tˆ ˆˆƒ}t| ˆ|ƒ}|jˆ ks,J ‚|jˆks3J ‚|jˆks:J ‚|jtˆ|  ksEJ ‚|j	dˆ ksNJ ‚|j
dt ˆ ksYJ ‚|jdt ˆ | t kshJ ‚|jt| ksqJ ‚|| }|jtˆ d dˆ  |  tˆ| ƒ  | d  ƒksJ ‚|jˆks—J ‚|jtˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒksµJ ‚|jtˆ|  ksÀJ ‚|j	dˆ ksÉJ ‚|j
dt ˆ ksÔJ ‚|jdt ˆ | t ksãJ ‚|jt| ksìJ ‚t| t¡| t¡ | t¡ ƒdksJ ‚| d	¡tt t||ˆƒˆˆƒ t||ˆƒ||ƒ ks J ‚| t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒttˆ | | t d
t  dt ˆ ˆ  tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ ƒ ksoJ ‚| t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒttdt ˆ ˆ tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ tt ˆ | | d
t    ƒ ksÀJ ‚tˆ d ddˆ ƒ}|jˆksÑJ ‚|| }	|	jtˆ d dˆ  |  tˆ| ƒ  | d  ƒksñJ ‚|	jˆksùJ ‚|	jtˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒksJ ‚|	jtˆ|  ks$J ‚|	j	dˆ ks.J ‚|	j
dt ˆ ks:J ‚|	jdt ˆ | t ksJJ ‚|	jt| ksTJ ‚t|	 t¡| t¡ | t¡ ƒdksjJ ‚|	 d	¡tt t||ˆƒˆˆƒ t||ˆƒ||ƒ ksˆJ ‚|	 t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒtdt ˆ ˆ tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ tt ˆ | | d
t   ƒ ks×J ‚|	 t¡tˆ d dˆ  |  tˆ| ƒ  | d  ƒttdt ˆ ˆ tˆ tˆƒ | t|ƒ  ˆ tˆƒ | t|ƒ  ƒ tt ˆ | | d
t    ƒ ks(J ‚d| }
|
jdˆ  ks6J ‚|
jˆks>J ‚|
jˆksFJ ‚|
 }|jdˆ  ksSJ ‚|jˆks[J ‚|jˆkscJ ‚tt‡ fdd„ƒ tt‡ ‡‡‡fdd„ƒ d S )NzA1, phi1, A2, phi2, fÚnÚtÚxÚEé   é   r   Úpdei%<ïéþÿÿÿc                      s   t ˆ ƒS ©Nr   © )ÚA1r   ú]/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/physics/optics/tests/test_waves.pyÚ<lambda>Q   s    ztest_twave.<locals>.<lambda>c                      s   t ˆ ˆˆˆƒS r   r   r   ©r    ÚfÚphi1r   r   r!   r"   R   s    )r   r   r   r   Ú	amplitudeÚ	frequencyÚphaseÚ
wavelengthÚcÚtime_periodÚangular_velocityr   Ú
wavenumberÚspeedr   r
   r	   r   r   Úrewriter   r   r   r   r   r   r   r   Ú
ValueError)ÚA2Úphi2r   r   r   Úw1Úw2Úw3Úw4Úw5Úw6Úw7r   r#   r!   Ú
test_twave   sª   6<,<(ÿ8
ÿÿÿ(ÿ4
ÿÿÿ8> ,<(ÿ2
ÿÿÿ(ÿ4
ÿÿÿr:   N)!Úsympy.core.functionr   r   Úsympy.core.numbersr   r   Úsympy.core.symbolr   r   Ú(sympy.functions.elementary.miscellaneousr   Ú(sympy.functions.elementary.trigonometricr	   r
   r   Úsympy.simplify.simplifyr   Ú	sympy.abcr   r   Ú&sympy.functions.elementary.exponentialr   Úsympy.physics.unitsr   r   r   Úsympy.physics.opticsr   Úsympy.testing.pytestr   Ú
convert_tor*   r:   r   r   r   r!   Ú<module>   s    