o
    *Î®cÀú ã                   @   sb  d dl mZ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 d dlmZmZ d dlmZ d dl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! d dl"m#Z#m$Z$ d dl%m&Z& d dl'm(Z( d dl)m*Z* d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dlm8Z8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z?m@Z@mAZAmBZBmCZC ed\ZDZEZFZGZHZIZJZKZLZMZNedZOedZPedZQedZRdd ZSdd ZTdd ZUd d! ZVd"d# ZWeAd$d% ZXd&d' ZYd(d) ZZeAd*d+ Z[d,d- Z\d.d/ Z]eAd0d1 Z^d2d3 Z_d4d5 Z`eAd6d7 Zad8d9 Zbd:d; Zcd<d= ZdeAd>d? ZeeAd@dA ZfeAdBdC ZgeAdDdE ZhdFdG ZieAdHdI ZjeAdJdK ZkdLdM ZldNdO ZmeAdPdQ ZneCeAdRdS ZoeAdTdU ZpeAdVdW ZqdXdY ZrdZd[ ZseAd\d] Ztd^d_ ZueAeCd`da ZveCdbdc ZweAeCddde ZxeCdfdg Zydhdi Zzdjdk Z{eAdldm Z|dndo Z}dpdq Z~drS )sé    )Ú
DerivativeÚFunctionÚdiff)ÚMul)ÚIÚRationalÚpi)ÚEq)ÚS)ÚSymbolÚsymbols)Úsinh)Úsqrt)ÚMatrix)ÚTuple)ÚexpÚcosÚsinÚlogÚCiÚSiÚerfÚerfi)ÚdotprodsimpÚNonSquareMatrixError)Údsolve)Úconstant_renumber)Úchecksysodesol)Ú_classify_linear_systemÚlinear_ode_to_matrixÚODEOrderErrorÚODENonlinearErrorÚ_simpsolÚ_is_commutative_anti_derivativeÚlinodesolveÚcanonical_odesÚdsolve_systemÚ_component_divisionÚ	_eqs2dictÚ_dict2graph)ÚairyaiÚairybi)ÚIntegral)Úratsimp)Ú	ON_TRAVISÚraisesÚslowÚskipÚXFAILzC0:11ÚxÚfÚgÚhc                     s  t dtd\} }}td| ||g|  ¡}| ¡}| ¡}|  d¡}| d¡}| d¡}t||t|| g}	tddgddggtddgddgggtdgdggf}
t|	d d d|
ks~J t|| d|  t||t||| |  g}tg d¢g d	¢g d
¢gtg d¢g d
¢g d¢ggtdgdgdggf}t|d|ksÏJ td| d|  | | td| d|  | | td| d|  || g}tg d¢g d¢g d¢gtg d¢g d¢g d¢ggtdgdgdggf}t|d|ks1J t|| || td| | | | dtd| dg}tg d¢g d¢g d¢gtg d¢g d¢g d¢gtg d¢g d¢g d¢ggtdgdgdggf}t|d|ksJ t||t|| | g tt fdd t|| d t|| | gtt	fdd d S )Núf, g, h©ÚclsÚté   é   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<   r;   ©r   r   r   )r   r=   r   )r   r   éýÿÿÿ)r   r<   r=   c                      ó   t  d d dS ©Nr=   r<   ©r   © )Úeqs_5Úfuncsr:   rF   úK/tmp/pip-target-vg8gfxp4/lib/python/sympy/solvers/ode/tests/test_systems.pyÚ<lambda>A   ó    z+test_linear_ode_to_matrix.<locals>.<lambda>c                      rC   rD   rE   rF   )Úeqs_6rH   r:   rF   rI   rJ   D   rK   )
r   r   r   r   r	   r   r   r/   r    r!   )r4   r5   r6   Úf1Úg1Úh1Úf2Úg2Úh2Úeqs_1Úsol_1Úeqs_2Úsol_2Úeqs_3Úsol_3Úeqs_4Úsol_4rF   )rG   rL   rH   r:   rI   Útest_linear_ode_to_matrix"   sB   8D2ÿd2ÿD0ÿÿ (r[   c            8         s)  t dtd\} }}}t d\}}t| }t|}t|}t|}	t| }
t|}| |g||g }d| d|   d|  d| d |   d	|   f}t|d u s}J d|d  d|   d|  d| d |   d	|   f}d
tt| td|  d d| d   tt|d |  d d  d	| d  gtt| td|  d d| d  tt|d |  d d  d	| d  ggd}t||ks"J tt| td|  d d| d   tt|d |  d d  d	| d  g}t|d u sfJ tt| td|  d d| d  tt|d |  d d  d	| d  g}t|d u s©J d| d|   d|  d| d|   d	|  d|	 | || f}dd|  d|  dt|   d|  d	|  dt|  |dt|  |t| f| |||g| d|d|d|did
d
d
ttddtddddgtddtd	dddgg d¢ddtdddgg dd
d
}t|||kskJ d| d|   d|  d| d|   d	|  || |	| f}dd|  d|  dt|   d|  d	|  dt|  | t| | t| f| |||g| d|d|d|did
d
d
ttddtddddgtddtd	dddgg d¢g d¢g dd
d
}t|||ks&J d| d|   d|  |
 d| d|   d	|  || |	| f}dd|  d|  dt|   t| df d|  d	|  dt|  | t| | t| f| |||g| d|d|d|did
d
d
dd
d	}t|||ksÌJ t|d	| d|  t|d| d	|   t|d|  d|  f}d	tt| d	| d|  tt|d|  d|  tt|d|  d|  f| ||g| d|d|did
d
d
tg d¢g d¢g d¢g dd
d
}t||d d |ksnJ t||t|| f}dtt| |tt|| f| |g| d|did
d
d
tddgddgg dd
d
}t||ksÁJ t|d|  t|d |  d	|  t|d|  d|  d!|  f}d	tt| d|  tt|d |  d	|  tt|d|  d|  d!|  f| ||g| d|d|did
d
d
tg d"¢g d#¢g d$¢g dd
d
}t||d d |kscJ t|d|  d|  d|  t|| d%|  d!|  t|d&|  d'|  d|  f}d	tt| d|  d|  d|  tt|| d%|  d!|  tt|d&|  d'|  d|  f| ||g| d|d|did
d
d
tg d(¢g d)¢g d*¢g dd
d
}t||d d |ks%J td	| d+||  td| d,||   td| d| |  f} d	td	t|  d+| d+|  tdt| d-|  d,|  tdt| d|  d|  f| ||g| d|d|did
d
d
tdtd.d	td+d	gtd,ddtd-dgtddtdddgg dd
d
}!t| |d d |!ksâJ t|d	| d|  t|d| d	|   t|d|  d|  f}"d	tt| d	| d|  tt|d|  d|  tt|d|  d|  f| ||g| d|d|did
d
d
tg d¢g d¢g d¢g dd
d
}#t|"|d d |#ksJ tt| |tt|| f}$dtt| |tt|| f| |g| d|did
d
d
tddgddgg dd
d
}%t|$| |g|%ksçJ tt| d|  tt|d |  d	|  tt|d|  d|  d!|  f}&d	tt| d|  tt|d |  d	|  tt|d|  d|  d!|  f| ||g| d|d|did
d
d
tg d"¢g d#¢g d$¢g dd
d
}'t|&| ||g|'ksJ tt| d|  d|  d|  tt|| d%|  d!|  tt|d&|  d'|  d|  f}(d	tt| d|  d|  d|  tt|| d%|  d!|  tt|d&|  d'|  d|  f| ||g| d|d|did
d
d
tg d(¢g d)¢g d*¢g dd
d
})t|(| ||g|)k	ssJ td	t|  d+| d+|  tdt| d-|  d,|  tdt| d|  d|  f}*d	td	t|  d+| d+|  tdt| d-|  d,|  tdt| d|  d|  f| ||g| d|d|did
d
d
tdtd.d	td+d	gtd,ddtd-dgtddtdddgg dd
d
}+t|*| ||g|+k
sJJ tt| | | d! tt|d|  d|  d/ f dtt| | | d! tt|d|  d|  d/ f| |g| d|did
d
d0d
tddgd1d2gg td!gd/ggd3d4},t |,k
sÎJ tt| d |  d|  tt|d|  d |  f dtt| d |  d|  tt|d | d|   f| |g| d|did
d0d
td2 d1gd1d2 gg tdd  d d gd dd  d ggd5d
d6},t |,kspJ t|| |   t||  | g dtt| |  |  tt||  | g| |g| d|did
d0d0d
td g dgg td d gd d ggtgdggd7d8},t |,ksùJ t||  |   t||  |  t	 g}-dtt| |  |   tt||  |  t	 g| |g| d|did
d0d
tgt	ggtgggd0d7td d d d gd d d d ggd9}t|-|ksJ t|| | | d  t|| | |  t|| | |  g}.d	tt| | | | d  tt|| | |  tt|| | |  g| ||g| d|d|did
d0d0d
t   g   g   gg td d d d d d gd d d d d d gd d d d d d ggtgdgdggd7d8}/t|.|d d |/ksJ t|| | |  d t|| |  | d: t||  | |  g}0d	tt| | |  | d tt|| |  | d: tt||   | | g| ||g| d|d|did
d0d0d
tdd gd dg ddgg td d gd d gd d ggtdgd:gggd7d8}1t|0|d d |1kswJ | | | |  }2t||2t||2t||2d t|	|2g}3dtt| ||  | |  tt|||  | |  tt|||  | |  d tt|||  | |  g| |||g| d|d|d|did
d0d0d
t    g    g    g    gg td d d d d d d d gd d d d d d d d gd d d d d d d d gd d d d d d d d ggtdgdgdgdggd7d8}4t|3||4ksÀJ t d;}5td!|  d|  dt|   t| df d	t|  dt
t  td	|  d|  dt|   d<t|  t|df dt
t  f dtd!|  d|  dt|   t| df d	t|  dt
t  td	|  d|  dt|   d<t|  t|df dt
t  f| |g| d|did
d0d
tdt
t  gdt
t  ggdd
d
d=},t |,ks»J tdd  d  d d t| df d|  d>|  tdd  d  d d t|df | d!|  f}-dtdd  d  d d t| df d|  d>|  tdd  d  d d t|df | d!|  f| |g| d|did
d
d
d3ttd?dd>gdtd@dggtdd  d  d tdAttdAd<  tdd<  dA tdAttdAd<  tdd<  dA  d
|5d
d
dB}t|-|ks²J t|  |  t t| | t
  t| df d t|  |   t| |   t|df f}.dt|  |  t t| | t
  t| df d t|  |   t| |   t|df f| |g| d|did
d
d
dt t  t
 gd	  d  ggd
d
dC}/t|.|/ksJ t|
||  ||  t||| ||  f}0dtt| df||  |t|  tt|df|| |t|   f| |g| d|did
d
d
dd
d
dD
}1t|0|1ksJ t dEtd\}6}7t dF\}}5|6|7gtt|6d dt|6  d dt| |6 t|7 dg d
tt|6dtt|7||6 gtt|6d	tt|7||6 ggd},t |,ksJ tt fdGdH tt|6d|6 |7 d  tt|7|6d|7   g}-dtt|6d|6 |7 d  tt|7|6d|7   g|6|7g|6d|7did
d0d
tdgdggtddgddggd0dI|5ttdt tgtdt ggdJ}t|-|ks.J tt|6d|6 |7  tt|7|6d|7   g}.dtt|6d|6 |7  tt|7|6d|7   g|6|7g|6d|7did
d
d
tddgddggd0dK|5tdgdggttdt tgtdt ggdL}/t|.|/ksÊJ d S )MNz
x, y, z, wr8   zt k lr@   é   é   r;   é   r>   Tiôÿÿÿ)Úis_implicitÚ	canon_eqsr?   éõÿÿÿr<   éúÿÿÿr   ©r   r   r   r<   Útype1)
Úno_of_equationÚeqÚfuncÚorderÚ	is_linearÚis_constantÚis_homogeneousÚ
func_coeffÚtype_of_equationÚ
is_general)r   r   r   r=   ©r   r   r=   r   Útype0)	re   rf   rg   rh   ri   rk   rn   rm   Úis_higher_orderé   rB   )r   rB   r^   )r>   r   éùÿÿÿ)ra   rr   r   r=   é   é   é	   )éëÿÿÿr   r   )iïÿÿÿrB   r   )éûÿÿÿrs   é÷ÿÿÿé   é    é)   )éüÿÿÿrx   éþÿÿÿ)r=   ióÿÿÿry   )iàÿÿÿi×ÿÿÿra   é   é   éñÿÿÿiìÿÿÿé   Fr~   rx   Útype2)re   rf   rg   rh   ri   rj   rk   rn   rl   Úrhsrm   Útype3)re   rf   rg   rh   ri   rj   rk   rl   Úcommutative_antiderivativerm   rn   Útype4)re   rf   rg   rh   ri   rj   rk   rn   rl   r   r   rm   )re   rf   rg   rh   ri   rk   rn   r   rl   rj   rm   r   é
   Út_é   )re   rf   rg   rh   ri   rk   rn   r   rm   Úis_second_orderrq   é#   é5   éE   é!   )re   rf   rg   rh   ri   rk   rn   rm   ÚA0zg(t)ÚtauÚis_transformedr   r   rq   )re   rf   rg   rh   ri   rk   rn   rm   ÚA1r   rq   )
re   rf   rg   rh   ri   rk   rn   rm   r   rq   úf gzy t_c                      ó   t  d d S ©Nr<   )r   rF   ©Úeq1rH   r:   rF   rI   rJ   x  ó    z.test__classify_linear_system.<locals>.<lambda>Útype6)re   rf   rg   rh   ri   rk   rn   r   rl   rj   rm   r   r   r   Útype5)re   rf   rg   rh   ri   rk   rn   rl   rj   rm   r   r   r   r   )r   r   r   r   r	   r   r   r   r   r   r   r   r   r/   Ú
ValueError)8r3   ÚyÚzÚwÚkÚlÚx1Úy1Úz1Úw1Úx2Úy2Úfuncs_2rS   rU   Úsol2Úeqs_2_1Úeqs_2_2rW   Úanswer_3rY   Úanswer_4rG   Úanswer_5rL   Úanswer_6Úeqs_7Úanswer_7Úeqs_8Úanswer_8Úeqs_9Úanswer_9Úeqs_10Ú	answer_10Úeq11Úsol11Úeq12Úsol12Úeq13Úsol13Úeq14Úsol14Úeq15Úsol15Úsol1Úeq2Úeq3Úsol3Úeq4Úsol4Ú	sum_termsÚeq5Úsol5r   r4   r5   rF   r   rI   Útest__classify_linear_systemG   s  HL4:ÿ2:ÿþÿ4:ÿ2:ÿX((ý"üðT((ý"üðX<Nÿÿ<
ýXN&ÿ.ýù	0$þûXB2ÿ.ýù	x4`ÿ0ýø	X,Tÿ0ýø	XN&ÿ.ÿý00$þü"@2ÿ@2þ ýù(`2þ`2þ ýù(T*ÿT*þ ýù(P$*ÿ$ýXX$ ,ÿý86ÿ"ÿ"üH:ÿ"2üh0Tÿ0ÿÿ,ÿ ÿúp:ÿÿ.ÿÿÿÿÿû$(4Pÿÿÿ2þÿ&$ÿ$ÿÿ^ÿÿù^^ÿ>ÿÿ*ÿÿÿÿ ÿûFBÿHBÿ4ÿRûTPÿ2ÿÿÿ,ÿÿÿÿ 4û420ÿ
ÿý, ÿ..ÿÿT:ÿ"ÿÿ*üP6ÿ"*ürË   c                     s¬  ddl m} m}m} ddlm tdtddD ]}||||ks(J qtddD ]}||}t|| }||ksEJ q.tddD ]}| ||dd }| ||fd	d}||kshJ qK| ddgd
dgg}| t	t
gt
 t	gg}||ksJ | ddgddgg}| dt  t
 t t	  dt  t
 gdt  t
 dt  t
 t t	  gg}||ksâJ | g d¢g d¢g d¢g}| d td  dtd  d  td d  d td  dtd  d  dtd  d  td d td d  gd td  td d  td d  d td  td d  dtd  d  td  d td d  gd td  d td  td gg}||ks¢J | g d¢g d¢dddtd d gddtdd tdd gg}| tt d td d  d t  dtd d   dt  d td d  d t  dtd d   dt  gdt td d  dtd d   dt  td d  d dtd d   dt  gddtd d  d td d   td d  d gddtd d  d  td d  d td d  gg}||ksJ | g d¢g d¢g d¢g d¢g}| t	t
ddgt
 t	ddgddt	t
gddt
 t	gg}||ksâJ | g d¢g d¢g d¢g d¢g}| t	t
t	 t
 gt
 t	 t
 t	 gddt	t
gddt
 t	gg}||ks7J | dtgtdgg}| tt d tt  d  tt d tt  d  gtt d tt  d  tt d tt  d  gg}||ksJ | g d ¢g d!¢g d"¢g | dgddggtt fd#d tt fd$d ttfd%d ttfd&d d S )'Nr   )r   ÚeyeÚzeros)Ú
matrix_expr:   r<   rr   c                 S   s   | |kr| d S dS ©Nr<   r   rF   ©ÚiÚjrF   rF   rI   rJ     r   z!test_matrix_exp.<locals>.<lambda>c                    s   | |krt | d   S dS rÏ   )r   rÐ   ©r:   rF   rI   rJ     ó    r=   r;   rx   r}   r>   rB   )rt   ru   r]   )rx   r=   rb   )r?   r?   é   rÕ   r@   r?   r~   )r<   r<   r   r   )r   r<   r<   r   r   é0   )r   r<   r   r   )r=   r   r   r   rc   ro   )r=   r   r   r<   )r<   r;   r>   )r?   r@   r]   )rr   rr   rr   c                      s    d d d df S ©Nr;   rF   rF   ©ÚMrÎ   r:   rF   rI   rJ   ò  ó    c                      s    d dd d f S r×   rF   rF   rØ   rF   rI   rJ   ó  rÚ   c                      s
    S ©NrF   rF   ©ÚM1rÎ   r:   rF   rI   rJ   ô  ó   
 c                      s    d dd df S r   rF   rF   rÜ   rF   rI   rJ   õ  rÚ   )Úsympy.matrices.denser   rÌ   rÍ   Úsympy.solvers.ode.systemsrÎ   r   Úranger   r   r   r
   r   r/   r   )r   rÌ   rÍ   ÚnÚAÚexpAtrF   )rÙ   rÝ   rÎ   r:   rI   Útest_matrix_exp  s¢   &<<þ
0ýýVFÿtDDûüüü"&ü
BBþrå   c            	      C   s  t dtd\} }}t d}| |||||g}t| | ||¡| |d||  t||d || |¡| | g}tt| ||df| |d||  tt|||| | || d gg}t||d d ||kssJ t| | |¡|| |¡| | t|| |¡d | ||| t|| |¡| |g}tt| ||d| | tt|||t| |||  tt|||| |gtt| ||d| | tt|||t| ||| tt|||| |gg}t||||ksJ d S )Núf g hr8   r3   r;   r<   )r   r   r	   r   r   r%   r   )	r4   r5   r6   r3   rH   Úeqs1rÂ   Úeqs2r©   rF   rF   rI   Útest_canonical_odesø  s   JP`VTÿré   c            5      C   s  t dtd\} }}}}t d\}}}}tt|||||tt|||||g}	t||tt| t||tt| g}
t|	|
ksIJ t|	|
dddgfksVJ tt|||d|| tt|||d|| g}t||ttd|  t||ttd|  g}t||ksJ t||dddgfks¡J tt|||||| tt|||||| g}t||tt||  t||tt||  g}t||ksßJ t||dddgfksìJ tt|||||| tt|||||| g}t||tt||  t||tt||  g}t||ks+J t||dddgfks9J tt||||| tt|||||g}t||t t	| tt
|  t||tt
| tt	|  g}t||ks~J t||dddgfksJ tt|||d|| tt|||d|| g}t||t t	d|  tt
d|   t||tt
d|  tt	d|   g}t||ksÜJ t||dddgfksêJ tt|||t|| tt|||t|| g}t||t tt |  ttt|   t||ttt |  ttt|   g}t||ks<J t||dddgfksJJ tt|||| || tt|||||| g}t||t t tt | |  tt tt| |   t||ttt | |  ttt| |   g}t||ks©J t||dddgfks·J tt||||||| tt||||||| g}t||td	td  ttd |  td	td  ttd|   t||tttd |  tttd|   g}t||ks J t||dddgfks.J tt||||||| tt||||||| g}t||t ttd|   t||tttd|   g}t||ksvJ t||dddgfksJ tt|||d|| || tt||||| d||  g}t||ttd|  t	| ttd|  t
|  t||ttd|  t
| ttd|  t	|  g}t||ksìJ t||dddgfksúJ tt|||||d||  tt|||d|| || g}t||t t|  ttd|   t||tt|  ttd|   g} t|| ksPJ t|| dddgfks^J tt|||d
|| || tt||||| d||  g}!t||t| td|  tt td|   t||t td|  t| td|   g}"t|!|"ksœJ t|!|"dddgfksËJ tt|||||| tt|||||| g}#t||t t| |  tt||   t||tt| |  tt||   g}$t|#|$ksJ t|#|$dddgfks+J tt|||||| tt|||||| g}%t||t | t| t||   t||  t| t|t||   t||   t||tt| t||   tt|t||    g}&t|%|&ksJ t|%|&dddgfks«J tt|||||| |||  tt|||||| g}'t||dt | t||t|d d
| |    d  |t|d d
| |    dt | t||t|d d
| |    d  |t|d d
| |     t||tt||t|d d
| |    d  tt||t|d d
| |    d   g}(t|'|(ks\J t|'|(dddgfksjJ tt|||||| || tt|||||| || g})t||t| t|t|d d	   t|d d	 d	  t| t| t|d d	   t|d d	 d	   t||tt|t|d d	   tt| t|d d	    g}*t|)|*ksóJ t|)|*dddgfksJ tt|||dtt|||dg}+t||tt||tg},t|+|,ks,J t|+|,dddgfks:J tt|||d|| || tt|||||g}-t||t| t| tt t|  t||tt| t| t|  g}.t|-|.ksJ t|-|.dddgfksJ tt|||||tt||||||| g}/t||tt| t||t| t| tt|  g}0t|/|0ksÚJ t|/|0dddgfksèJ tt|||d|| tt||||||| g}1t||dt td|  t||ttd|  tt|  g}2t|1|2ks1J t|1|2dddgfks?J tt|||d|| tt|||||g}3t||ttd|  t||tt| g}4t|3|4kszJ t|3|4dddgfksJ d S )Nz	f g x y hr8   za b c tTr   r;   r>   r~   r<   r?   )r   r   r	   r   ÚC1r   ÚC2r   r   r   r   r   r   )5r4   r5   r3   r   r6   ÚaÚbÚcr:   rç   rÂ   rè   r©   Úeqs3rÅ   Úeqs4rÇ   Úeqs5rÊ   Úeqs6Úsol6Úeqs7Úsol7Úeqs8Úsol8Úeqs9Úsol9Úeqs10Úsol10Úeqs11r¹   Úeqs12r»   Úeqs13rœ   Úeqs14r¿   Úeqs15rÁ   Úeqs16Úsol16Úeqs17Úsol17Úeqs18Úsol18Úeqs19Úsol19Úeqs20Úsol20Úeqs21Úsol21Úeqs22Úsol22rF   rF   rI   Ú#test_sysode_linear_neq_order1_type1  sx  ÿÿÿÿÿÿÿÿÿ" ÿÿ*(ÿÿ,*ÿÿ<2ÿÿJ2ÿÿÿ"$ÿ88ÿ""ÿ(&ÿ"$ÿ0.ÿÿ,*ÿÿ\:ÿ&ÿfÿÿÿ`þ""ÿbÿÿBþÿÿ"ÿ($ÿÿ$ÿÿ$ÿÿÿ r  c            g      C   sd,  t d} td}td}td}td}td\}}}}}	}
tt|| | | ||  |||   |||   |
||   tt|| | |||  |||   |||   tt|| | | | |	 ||  tt|| | |	||  |
||   g}t|| t| | t||
  t|
 |   || |
   t||| |
  |d  |||	 |
   |	|
   t|  || |	   |	| | | | |	    t	t|  ||    t|| tt| t|
 |   || |
   t| || |
  ||  |d  ||	|
    t|  || |	   |	| | | | |	    t	t|  ||    t|| t || |	 |
  t|  || |	   |	 t|| tt|
 |   tt|  || |	    g}t
||kslJ t||dg d	¢fkszJ td
td\}}}}}}td\}}tddd\}}tt|| | |||  tt|| | |||  tt|| | | | ||  g}t|| tt| t|  ||   ||   t|| t | t|  ||   ||  t t|| tt|  ||   g}t
||ks	J t||dg d¢fksJ d||  ||  d||   t|| |  d||  ||  d||   t|| |  d||  ||  d||   t|| |  g}t|| ttd|   td tdt d  ttd|    ttd|  tdt d ttdd    t|| td tdt d  ttd|   ttd|  tdt d ttdd    t|| tttd|   tttd|    ttd|    g}t
||ksìJ t||dg d¢fksúJ tt|| | || tdd d||   ||  || tdd  tt|| | || tdd d||   || tdd  tt|| | || tdd || tdd  tt|| | || tdd || tdd  g}t|| ttd|   t|  td|    t|| ttd|   dt td|    t|| dt td|   t	td|   tdd  t|| ttd|   t	td|    g}t
||ksÖJ t||dg d	¢fksäJ t||  | ¡|| t||  | ¡|| t||  | ¡|| t||  | ¡|| g}t|| tt|  t|| tt|  t|| tt|  t|| t	t|  g}t
||ksEJ t||dg d	¢fksSJ tt|| | || ||  tt|| | || ||  tt|| | || tdd ||  tt|| | || d || d  g}t|| tt|  t|  t|   dt	 |  t| tdd   dt dt	  t| tdd   t|| tt|  t	|  t| tdd   tdt	  t| tdd   t|| t	|  t| tdd  d td t	 t| tdd   t|| tt| tdd  d t	|  t| tdd  d  g} t
|| ks?J t|| dg d	¢fksMJ tt|| | || tt|| | || tt|| | || tt|| | || tt|| | || g}!t|| tt|  t|| tt|  t|| tt|  t|| t	t|  t|| tt|  g}"t
|!|"ksÃJ t|!|"dg d¢fksÑJ tt|| | d||  ||  tt|| | d||  tt|| | d||  tt|| | || d||   tt|| | d||  g}#t|| ttd|   t|  td|    t|| ttd|   t|| ttd|   t|| t	td|   t|  td|    t|| ttd|   g}$t
|#|$kswJ t|#|$dg d¢fksJ tt|| | || tt|| | || tt|| | || g}%t|| tt|  t|| tt|  t|| tt|  g}&t
|%|&ksÑJ t|%|&dg d¢fksßJ tt|| | | | ||  tt|| | |||  tt|| | |||  g}'t|| t ||  t|  ||   | t|| tt||   t|| tt|  ||   t g}(t
|'|(ksIJ t|'|(dg d¢fksWJ tt|| | |||  tt|| | | | ||  tt|| | |||  g})t|| tt| t|  ||   |  t|| t ||  t|  ||   | t|| tt|  ||   t g}*t
|)|*ksÊJ t|)|*dg d¢fksØJ tt|| | |||  tt|| | |||  tt|| | | | ||  g}+t|| tt| t|  ||   ||   t|| t | t|  ||   ||  t t|| tt|  ||   g},t
|+|,ksMJ t|+|,dg d¢fks[J tdtd\}-}.}/td \}0}1}2tt|-| | d|-|  |.|  tt|.| | |0|-|  g}3t|-| tt| t|0d! d!   t|0d! d!  tt|  t|0d! d!   t|0d! d!   t|.| tt| t|0d! d!   tt|  t|0d! d!    g}4t
|3|4ksèJ t|3|4dd"d"gfksöJ tt|-| | d|.|  d|/|   tt|.| | d|-|  d|/|   tt|/| | d|-|  d|.|   g}5t|-| dt ttd#|  td#t tdd$ ttdd$    ttd#|  ttdd$ td#t tdd$    t|.| ttdd ttd#|  td#t tdd$ ttdd$    ttd#|  ttdd$ td#t tdd$    t|/| ttttd#|    tttd#|    g}6t
|5|6k	sÑJ t|5|6dg d¢fk	sßJ tdt|-| |  d%|.|  d%|/|   tdt|.| |  d|-|  d|/|   tdt|/| |  d|-|  d|.|   g}7t|-| tttd#|  td#t tdd& ttd'd&    ttd#|  ttdd& td#t tdd&    t|.| tttd#|  td#t tdd( ttdd&    ttd#|  ttdd& td#t tdd(    t|/| ttttd#|    tttd#|    g}8t
|7|8k
s¹J t|7|8dg d¢fk
sÇJ tt|| | d)||  tt|| | d*||  d||   tt|| | d||  d+||   d||   f}9t|| d,t td)|   d- t|| d.t td)|   d- dt td|   d+  t|| ttd)|   ttd|    ttd|    g}:t
|9|:ksUJ t|9|:dg d¢fkscJ tt|| | d||  d/||   tt|| | d0||  d+||   tt|| | d/||  d+||   g};t|| ttd+d ttd1|  td1t td/d2 ttd3d2    ttd1|  ttd)d2 td1t td/d2    t|| ttd/d ttd1|  td1t td+d2 ttd4d2    ttd1|  ttd4d2 td1t td5d2    t|| ttttd1|    tttd1|    g}<t
|;|<ksAJ t|;|<dg d¢fksOJ tdt|| |  d6||  d6||   tdt|| |  d7||  d8||   tdt|| |  d%||  d%||   g}=t|| ttdtd |  tdt tdd t   tdtd |  ttdt tdd    t|| ttdtd |  tdt tdd t   tdtd |  ttdt td0d    t|| tttdtd |    ttdtd |    g}>t
|=|>ks!J t|=|>dg d¢fks/J tt|| | d||  ||  tt|| | d||  d||   ||  tt|| | d||  ||  g}?t|| t| d  td|   d | dt t  td|    tt dt  td|    t|| t| d  td|   d | dt t  td|    tdt  td|    t|| t| d  td|   | dt dt   td|    dt dt  td|    g}@t
|?|@ksýJ t|?|@dg d¢fksJ tt|| | d||  ||  d||   tt|| | d||  ||  d||   tt|| | d||  d||   g}At|| ttd|   t| ttdd td    t| td ttd0d    t|| t|  ttdd td   t| td ttd0d    t|| ttd|   tt|   tt|   g}Bt
|A|BksŸJ t|A|Bdg d¢fksÌJ tt|| | d||  tt|| | d%||  f}Ct|| td t td9td |   d tdt tdtd |   d  t|| ttd9td |   ttdtd |    g}Dt
|C|Dks8J t|C|Ddd"d"gfksFJ tt|| | d||  d||   tt|| | d%||  d:||   g}Et|| td(td;  t| td;d<  d  tdd= td(td;  t| d<td;  d  tdd=  t|| tt| td;d<  d  tt| d<td;  d   g}Ft
|E|FksÏJ t|E|Fdd"d"gfksÝJ tt|| | || ||  tt|| | d||  d||   g}Gt|| td td+t d  ttd+|  d  t| tdd  ttd+|  d td+t d ttdd   t| tdd   t|| tttd+|  d  t| tdd  tttd+|  d  t| tdd   g}Ht
|G|HksJ t|G|Hdd"d"gfksJ t d>dd}0||  | ¡|0||   ||  | ¡|0||   g}It|| tt|0|   tt|0|    t|| tt|0|   tt|0|    g}Jt
|I|JksàJ t|I|Jdd"d"gfksîJ tt|-| | d"tt|.| | |-| d|.|   ||  |1|2  tt|| | |.| d||   ||  |1|2  tt|| | |/| ||  d||   |1|2  tt|/| | d"g}Kt|-| d0t dt  t|.| dt dt  ttd|  |1|2    t	t|  tdd  |1|2    tt|  dtd  |1|2    t|| t dt  tdt	 t|  tdd  |1|2    tdt t|  dtd  |1|2    t|| tttd|  |1|2    t	t|  tdd  |1|2    tt|  dtd  |1|2    t|/| tg}Lt
|K|LksJ t|K|Ldg d¢fksJ tt|-| | d|-|  tt|.| | d|-|  d+|.|   g}Mt|-| d?t td|   d t|.| ttd|   ttd+|    g}Nt
|M|NkslJ t|M|Ndd"d"gfkszJ tt|-| | d@t |-|  d|.|   tt|.| | dt |.|  g}Ot|-| dt t tdt |   d ttd@t |    t|.| ttdt |   g}Pt
|O|Pks×J t|O|Pdd"d"gfksåJ tt|-| | d@t |-|  tt|.| | dt |.|  g}Qt|-| ttd@t |   t|.| ttdt |   g}Rt
|Q|Rks,J t|Q|Rdd"d"gfks:J tt|-| | d"tt|.| | d"g}St|-| tt|.| tg}Tt
|S|TkseJ t|S|Tdd"d"gfkssJ tt|-| | |-| tt|.| | d"g}Ut|-| tt|  t|.| tg}Vt
|U|Vks€J t|U|Vdd"d"gfks²J tt|-| | |.| tt|.| | d"g}Wt|-| tt|   t|.| tg}Xt
|W|XksãJ t|W|Xdd"d"gfksñJ tt|-| | d"tt|.| | |-| g}Yt|-| tt|.| t|  t g}Zt
|Y|Zks"J t|Y|Zdd"d"gfks0J tt|-| | d"tt|.| | |.| g}[t|-| tt|.| tt|  g}\t
|[|\ksaJ t|[|\dd"d"gfksoJ tt|-| | |-| tt|.| | t|.|  g}]t|-| tt|  t|.| ttt|   g}^t
|]|^ksªJ t|]|^dd"d"gfksžJ tt|-| | t|-|  tt|.| | t |.|  g}_t|-| ttt|   t|.| ttt |   g}`t
|_|`ksùJ t|_|`dd"d"gfksJ tt|-| | t|.|  tt|.| | d"g}at|-| tt tt |   t|.| tg}bt
|a|bks>J t|a|bdd"d"gfksLJ tt|-| | t|.|  tt|.| | t|-|  g}ct|-| t tt |   ttt|    t|.| ttt |   ttt|    g}dt
|c|dksJ t|c|ddd"d"gfks¬J tt|-| | d |.| d t|-|  t|.| |  d"g}et|-| t t|  tt|   t|.| tt|  tt|   gt|-| t t|   tt|   t|.| tt|   tt|   gg}t
|e|ksJ |D ]}ft|e|fdd"d"gfks.J qd S )ANr:   ÚZ0ÚZ1ÚZ2ÚZ3zk01 k10 k20 k21 k23 k30r;   T©r   r   r   r   zx y z u v wr8   zk2 k3za_b a_c©ÚrealrA   r?   r@   r>   r~   r]   r=   rv   iøÿÿÿrÕ   é%   é,   r}   r   rÖ   )r   r   r   r   r   r7   za, b, cr<   r   é   é   r\   rz   iðÿÿÿé'   rt   ru   rr   éØ   éÑ   éÌ   r^   rB   é³   éª   rw   r   rs   r   r   r   rb   r|   i±  é+   é   rì   rx   ry   )r   r   r   r	   r   rê   rë   r   ÚC3ÚC4r   r   r   r   r   r   r   ÚC5r   )gr:   r  r  r  r  Úk01Úk10Úk20Úk21Úk23Úk30rç   rÂ   r3   r   r   ÚuÚvr   Úk2Úk3Úa_bÚa_crè   r©   rï   rÅ   rð   rÇ   rÉ   rÊ   rò   ró   Úeq7rõ   rö   r÷   Úeq9rù   rú   rû   rü   r¹   rý   r»   r4   r5   r6   rì   rí   rî   rþ   rœ   rÿ   r¿   r   rÁ   Úeq16r  r  r  r  r  r  r  r	  r
  Úeq21r  r  r  Úeqs23Úsol23Úeq24Úsol24Úeqs25Úsol25Úeq26Úsol26Úeq27Úsol27Úeq28Úsol28Úeq29Úsol29Úeq30Úsol30Úeq31Úsol31Úeq32Úsol32Úeq33Úsol33Úeq34Úsol34Úeq35Úsol35Úeq36Úsol36Úeq37Úsol37r   ÚsolrF   rF   rI   Ú(test_sysode_linear_neq_order1_type1_slow­  sæ  @2$&ýHÿÿÿÿÿÿþN
ÿÿÿ
ÿÿ84ù þ.0þ,,,þZÿ^@ýF>22ý,,6(ý\T(&ýVÿLD@üB,ÿPÿ""ü,,üF@ þ,"þ þ*,"þ þ.0þ"ÿXÿBþ&&&þB2ÿH2ÿ4ü***þ>2ÿ>2ÿ4ü@2ÿ 88þ&&&þ<
ÿ2ÿ<
ÿ2ÿ4ü***þLÿLÿ<ü"."þ\X\þ..&þTF0þ8R8ÿ&&ÿ<ÿÿÿ@þ&ÿDBÿ\þ4T222üZÿ
ÿPÿ
ÿhúDLL\@<(,$,$,$,$40:60,8Z>" ÿ$"ÿþ ÿrU  c            K      C   s°  t dtd\} }}}t d\}}}}}}	}
t d\}}tt| ||| ||| d tt|||| | || d g}t| |tt d|d   |td   t||t d|d   |td   g}t||ksqJ t||d	d
d
gfks~J tt| ||| ||| d tt|||| ||| d g}t| |t ttd|   | d t||tttd|   | d g}t||ksÑJ t||d	d
d
gfksÞJ tt| ||| |d tt|||| |d g}t| |tt| d t||tt| t d|  d g}t||ks#J t||d	d
d
gfks1J tt| ||| |t| tt||||t| | | || g}t| |tt| |t|  t||t| t| tt|  |d t|  g}t||ksJ t||d	d
d
gfksJ tt| ||d| | | || tt|||| ||| g}t| |tdt	d  tt	d|  tdt	d  tt	d |   |t
dd  t
dd t||ttt	d|  ttt	d |   |t
dd  g}t||ksJ t||d	d
d
gfks(J tt| ||d| | d||  tt|||d|| tt|||||t| g}t| |ttd|  t
dd ttd|   t||ttd|  t||tt| |t|  g}t||ksJ t||d	g d¢fks§J tt| ||d| | | tt|||||g}t| |tt| d|  d t||tt| g}t||ksèJ t||d	d
d
gfksöJ tt| ||| |d||  tt|||d| | || dt|  g}t| |tt| td|  tt| td|   t|td| d   t|td| d   t||tt| td|  tt| td|   g}t||ks{J t||d	d
d
gfksJ tt| |||d| |  || ||  tt|||| |d||  || ||  tt||||	|| d||  ||  g}t| |t td| ||   tt| t	dd  ||    tt| dt	d  ||    tt
ddd| |	 dd t||t	d t t| t	dd  ||   t	dt t| dt	d  ||    tt
dd||	 dd t||ttd| ||   tt| t	dd  ||    tt| dt	d  ||    tt
dd|d|	  dd g}t||ksJ t||d	g d¢fks§J tt| ||d| | | || d tt|||d| | | || d g}t| |tt d|d   d|d   |td   t||td|d   d|d   |td   g} t|| ksJ t|| d	d
d
gfksJ tt| ||d dt| ||  d dt|
 | | t||| d
g}!t| |t| t||t| |
 t|
  |d |
 t
dd  gt| |td|  t||t| |
 t|
  |d |
 t
dd  gg}"t|!|"ksJ |"D ]}#t|!|#d	d
d
gfks©J qt dd	d}$t d}%t d}&t d}'t d}(t d}td}td}
t d })tt|
||||tt||||$|
|d  g}*t|
|ttt	|$|  |$t
dd  ttt	|$ |  |$t
dd   d t||ttt	|$|  ttt	|$ |   g}+t|*|+ks:J t|*|+d	d
d
gfksHJ t|
||)tt	|$ |(  d tt	|$ |( d  |'tt	|$ |(  dt	|$   tt	|$|  |)tt	|$|(  d tt	|$|( d  |'tt	|$|(  dt	|$   tt	|$ |   d t|||)t	|$ tt	|$ |(  d t	|$tt	|$ |(  d  |'tt	|$ |(  d  tt	|$|  |)t	|$ tt	|$|(  d t	|$tt	|$|(  d  |'tt	|$|(  d  tt	|$ |   g},t|*|
|&|)||&|%id!|,ks/J t|*|,d	d
d
gfks=J tt| ||| ||| d" tt|||d| | d||  d# g}-t| |t dt	d  t|dt	d   d tdt	d  t|t	dd   d  t
d$d t||tt|dt	d   tt|t	dd    t
dd g}.t|-|.ksÃJ t|-|.d	d
d
gfksÑJ tt| ||| ||| d% tt|||d| | || d# g}/t| |t	dt t| tt	d|  d t	dt t| tt	d|  d  d&tt	d| d  d  d&tt	d| d  d  t||tt| tt	d|  tt| tt	d|   d'tt	d| d  d  d'tt	d| d  d  g}0t|/|0ksJ t|/|0d	d
d
gfksJ tt| ||| |d||  | tt|||d| | d||  | g}1t| |t dt	d(  t|dt	d(  d  d tdt	d(  t|dt	d(  d  d  d|  | t||tt|dt	d(  d  tt|dt	d(  d   tt
ddd| | dd g}2t|1|2k	s.J t|1|2d	d
d
gfk	s<J tt| |||tt||||g}3t| |t||  t||t||  g}4t|3|4k	soJ t|3|4d	d
d
gfk	s}J tt| ||d
tt||||| | | g}5t| |tt||t| |t| |   g}6t|5|6k	sžJ t|5|6d	d
d
gfk	sÆJ tt| |||tt|||| || g}7t| |t||  t||t||d  d  |t|   g}8t|7|8k
sJ t|7|8d	d
d
gfk
sJ tt| |||tt|||| |d||  | g}9t| |dt ||  t||tttd|   || d  tt
dd|d|  dd g}:t|9|:k
slJ t|9|:d	d
d
gfk
szJ tt| ||| || tt||||g};t| |tt| | t||t||  g}<t|;|<k
s³J t|;|<d	d
d
gfk
sÁJ tt| ||||| tt|||d
g}=t| |t|t|   t||tg}>t|=|>k
söJ t|=|>d	d
d
gfksJ tt| ||| |d||  | tt||||g}?t| |dt tt|  | d| |  d|  t||t||  g}@t|?|@ksQJ t|?|@d	d
d
gfks_J tt| ||||| tt|||d|| | g}At| |tttd|  d  |d  |d| |  d  t||ttd|  |d  g}Bt|A|Bks¶J t|A|Bd	d
d
gfksÄJ tt| ||| || tt|||d| | | g}Ct| |tt| d | t||tt| t d|  |d| |   g}Dt|C|DksJ t|C|Dd	d
d
gfks!J tt| ||| |d||  | tt|||d| | d||  | g}Et| |dt ttd|  d  d| d| |  d  tt
dd)|d|  dd t||tttd|   |d| |  d  tt
dd)|d|  dd g}Ft|E|FksšJ t|E|Fd	d
d
gfks¶J tt| ||d| | || | tt|||d| | d||  d|  g}Gt| |tdt  |dt |   t||dt |dt d|    g}Ht|G|HksJ t|G|Hd	d
d
gfksJ tt|||d|
| d tt|
||d|| d|
|  d g}It||td dt d  t|  td|  dt d td  t|  td|   d*td| d  d  d*td| d  d  t|
|tt|  td|  tt|  td|   dtd| d   dtd| d   g}Jt|I|JksÈJ t|I|Jd	d
d
gfksÖJ d S )+Núf g h kr8   zx t a b c d yzk1 k2r@   rr   r]   r;   Tr   r>   r<   rx   ry   r?   r}   rA   r~   F©Úevaluater   r   r   r=   râ   ©ÚpositiveÚx_0Út_0r:   r3   r   ÚT©Úicsrv   r   é   éQ   é:   é¹   r   é1   ru   )r   r   r	   r   rê   rë   r   r   r   r   r   r#  r   r   r   r   )Kr4   r5   r6   r    r3   r:   rì   rí   rî   Údr   Úk1r.  rç   rÂ   rè   r©   rï   rÅ   rð   rÇ   rñ   rÊ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   r¹   Ús11râ   Úx0Út0r[  r\  r]  rý   r»   Úsol12brŒ   rœ   rŸ   r¿   rÀ   rÁ   r4  r  Úeq17r  Úeq18r  Úeq19r  Úeq20r
  r5  r  Úeq22r  Úeq23r7  r8  r9  Úeq25r;  r<  r=  r>  r?  rF   rF   rI   Ú#test_sysode_linear_neq_order1_type2  s`  "$ÿ(&ÿ""ÿ&$ÿÿ$ÿ*ÿ 4ÿ&ÿVÿ@þ&þ2 þÿ ÿ".ÿ6ÿÿ8þ.2.þdÿ\ÿbÿü**ÿ40ÿ, ÿDHÿ ÿR2ÿ6 ÿÿ*ÿÿþýFÿÿ:ÿÿþû&
"*ÿXÿBþ"&ÿ.&ÿþþ>ÿÿý&*ÿ4*ÿÿÿ>ÿþÿÿÿ ÿÿ(ÿ&ÿDÿÿÿÿÿ&ÿ4ÿÿ< ÿÿ0ÿ&*ÿ:ÿ.ÿþ&.ÿ$$ÿL0(ÿþþ:ÿÿý rr  c            !      C   sš  t dtd\} }}}}}t d\}}}t ddd}	tt| |	|	|	||	 | |	 tt||	|	|	 | |	 ||	 g}
t| |	tt|	 t|	d d  tt|	 t|	d d   t||	tt|	 t|	d d  tt|	 t|	d d   g}t	|
|ksJ t
|
|dddgfksJ tt| |||d || || |  tt|||d|d  | | d	|d  | ||  g}t| |td
t d
 td
d	td
   d  t|d	 d	td
  d |d d   t|d	 d	td
  d |d d  td
t d
 td	td
 d
  tdd    t||t|d	 d	td
  d |d d  td
d	td
   d td
t tdd
   t|d	 d	td
  d |d d  td	td
 d
  d td
t tdd
    g}t	||ksJ t
||dddgfksJ t| | |¡|| | || t|| |¡| | |||  g}t| |td tt d  t|d d t|   t|d d t|  td tt tdd    t||tt d td  t|d d t|   t|d d t|  tt d ttdd    g}t	||ks)J t
||dddgfks7J t| | |¡|| ||| ||  t|| |¡|| ||| ||  t|| |¡|| ||| ||  g}t| |t d	 td	  dt d	  td	 td	  td	  td	|d  d   t||dt d	 td	  td	  td	 td	  td	  td	|d  d   t||t d	 dt d	  td	  td	 td	  td	  td	|d  d   g}t	||ksýJ t
||dg d¢fksJ t| | |¡|d | ||| ||  t|| |¡|d | ||| ||  t|| |¡|d | ||| ||  g}t| |t d	 td	  dt d	  td	 td	  td	  t|d	   t||dt d	 td	  td	  td	 td	  td	  t|d	   t||t d	 dt d	  td	  td	 td	  td	  t|d	   g}t	||ksËJ t
||dg d¢fksÙJ tt| |||| ||| || ||  tt||||| ||| || ||  tt||||| ||| || ||  tt||||| ||| || ||  g}t| |t d td  td  d	t d  td td  td  td  td|d    t||d	t d td  td  td  td td  td  td  td|d    t||t d d	t d  td  td  td td  td  td  td|d    t||t d td  d	t d  td  td td  td  td  td|d    g}t	||ksJ t
||dg d¢fksJ t ddd}tt| |||| | || tt|||||| | | g}t| |tt|d d  t| tt|d d  t|  t||tt|d d  t| tt|d d  t|  g}t	||ksJ t
||dddgfksJ tt| ||d| | | d||  tt|||d| | d| ||  g}t| |tdtd td  ddtd|d  d d|   td td  td|d  d d|    t||td td  td|d  d d|   td td  td|d  d d|    g}t	||ks2J t
||dddgfks@J tt| ||d| | | |d ||  tt||||d  | | d| ||  g}t| |td tt d  tt|d	  d	 d|d  d   td tt d  tt |d	  d	 d|d  d    t||tdtt d td  ddtt |d	  d	 d|d  d   tt d td  tt|d	  d	 d|d  d    g}t	||ksûJ t
||dddgfks	J tt| |||d || d| | |  tt||||d  | | d|d  d|  ||  g}t| |tddtd   d tdt d  t|d	 tdd  d d|d  d   tddtd   d tdt d  t|d	 dtd  d d|d  d    t||tdt d tddtd   d  t|d	 dtd  d d|d  d   tdt d tddtd   d  t|d	 tdd  d d|d  d    g}t	||ksûJ t
||dddgfks	J tt| ||d| | | |d ||  tt|||d|d  | | d| d|d   ||  g}t| |t|| t|| t|d ttd| | ttd|d  d|  | ||d  |  t||t|| t||t|d ttd| | ttd|d  d|  | ||d  | ttd| |ttd|d  d|  | ||    g} t	|| ksÒJ d S )Nzf g h k x0 y0r8   úx t aÚrTr  r;   r   r>   ru   é"   r]   r=   r~   rA   r?   r  r   r@   FrW  rv   éM   é   r<   )r   r   r	   r   rê   r   r   rë   r   r   r   r   r   r   r   r#  r$  r   r,   )!r4   r5   r6   r    rh  Úy0r3   r:   rì   rt  rç   rÂ   rè   r©   rï   rÅ   rð   rÇ   rñ   rÊ   rò   ró   r   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   r¹   rF   rF   rI   Ú#test_sysode_linear_neq_order1_type3  sÎ   "$ÿ@@ÿ*:ÿVTÿRÿTÿþ"$ÿffÿT*ÿRPRþ\.ÿJHJþ2222ý^\^^ý""ÿ@@ÿ**ÿj`ÿ.0ÿzÿ.<ÿ°°ÿ.>ÿj¢ÿry  c                  C   sÔ  t dtd\} }}}t d\}}}t ddd}tt| ||| ||||  |d  tt|||| | | || | g}t| |tt| t|d d  tt| t|d d   t|t|d d  t	|d t|  t|d d  |t|  t|d d   |  t|t|d d  t	|d t|  t|d d  |t|  t|d d   |  t||tt| t|d d  tt| t|d d   t|t|d d  t	|d t|  t|d d  |t|  t|d d   |  t|t|d d  t	|d t|  t|d d  |t|  t|d d   |  g}	t
||	ksIJ t||	dddgfksWJ tt| ||| ||||  | tt|||| | | || t| g}
t| |tt| t|d d  tt| t|d d   t|t|d d  t	|t|  t|d d  t| t| t|d d   |  t|t|d d  t	|t|  t|d d  t| t| t|d d   |  t||tt| t|d d  tt| t|d d   t|t|d d  t	|t|  t|d d  t| t| t|d d   |  t|t|d d  t	|t|  t|d d  t| t| t|d d   |  g}t|
d	d	d
|gksJ t|
|dddgfksJ tt| |||| ||| ||  | tt||||| ||| ||  | tt||||| ||| ||  d g}t| |ttdd ttdd  ttdd  |d d  |tdd  td td  td  t|d tdd   tdtt ttd| d  t|d tdd  d  tdd t||ttdd ttdd  ttdd  |d d  |tdd  td td  td  t|d tdd   tdtt ttd| d  t|d tdd  d  tdd t||ttdd ttdd  ttdd  |d tdd  |tdd  td td  td  t|d tdd   tdtt ttd| d  t|d tdd  d  tdd g}t
||ksJ t||dg d¢fks!J tt| |||| ||| ||  t| tt||||| ||| ||  t| tt||||| ||| ||  t| g}t| |ttdd ttdd  ttdd  td td  td  t|d tdd   t	t|t|d tdd  |t|d tdd   t||ttdd ttdd  ttdd  td td  td  t|d tdd   t	t|t|d tdd  |t|d tdd   t||ttdd ttdd  ttdd  td td  td  t|d tdd   t	t|t|d tdd  |t|d tdd   g}t
||ks`J t||dg d¢fksnJ tt| |||| ||| || || d  tt||||| ||| || || d  tt||||| ||| || || d  tt||||| ||| || || d  g}t| |ttdd ttdd  ttdd  ttdd  td td  td  td  td|d    tdd t||ttdd ttdd  ttdd  ttdd  td td  td  td  td|d    tdd t||ttdd ttdd  ttdd  ttdd  td td  td  td  td|d    tdd t||ttdd ttdd  ttdd  ttdd  td td  td  td  td|d    tdd g}t
||ksÛJ t||dg d¢fkséJ tt| |||d | ||| || || d  tt||||d | ||| || || d  tt||||d | ||| || || d  tt||||d | ||| || || d  g}t| |ttdd ttdd  ttdd  ttdd  td td  td  td  t|d tdd   tdd t||ttdd ttdd  ttdd  ttdd  td td  td  td  t|d tdd   tdd t||ttdd ttdd  ttdd  ttdd  td td  td  td  t|d tdd   tdd t||ttdd ttdd  ttdd  ttdd  td td  td  td  t|d tdd   tdd g}t
||ksjJ t||dg d¢fksxJ tt| ||| ||| || t| t| tt|||| ||| || t| t| tt|||| ||| || t| t| g}t| |t d td  dt d  td td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  t||dt d td  td  td td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  t||t d dt d  td  td td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  g}td t
|d	d	d
|k	sÇJ W d    n	1 	sÒw   Y  t||dg d¢fk	såJ tt| ||| ||| || || t| t| tt|||| ||| || || t| t| tt|||| ||| || || t| t| tt|||| ||| || || t| t| g}t| |t d td  td  dt d  td td  td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  t||dt d td  td  td  td td  td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  t||t d dt d  td  td  td td  td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  t||t d td  dt d  td  td td  td  td  t|dt| d    t|dt| d  t	td| td| t|  t| |  g}td t
||ksÊJ W d    n	1 sÕw   Y  t||dg d¢fksèJ d S )NrV  r8   rs  rt  Tr  r;   r   F©ÚsimplifyÚdoitr<   r=   r>   r]   é   r~   rv   rA   rB   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   )r4   r5   r6   r    r3   r:   rì   rt  rç   rÂ   rè   r©   rï   rÅ   rð   rÇ   rñ   rÊ   rò   ró   rô   rõ   rö   r÷   rF   rF   rI   Ú#test_sysode_linear_neq_order1_type4d  s  Vvÿÿ\ÿvÿÿ\ÿþVr ÿÿF
ÿÿÿr ÿÿF
ÿÿÿý...þJ,ÿ<þþJ,ÿ<þþBÿ,ÿ<þþú	222þ>ÿÿ.ÿÿ>ÿÿ.ÿÿ>ÿÿ.ÿÿú	6666ýDÿÿÿÿÿDÿÿÿÿÿDÿÿÿÿÿDÿÿÿÿÿú::::ýDÿÿÿÿÿDÿÿÿÿÿDÿÿÿÿÿDÿÿÿÿÿúRÿÿÿ6ÿ2ÿÿÿ,ÿÿ0ÿÿÿ,ÿÿ2ÿÿÿ,ÿÿú
	ÿRÿÿÿÿÿ4ÿ>þBÿÿÿ,ÿÿ@ÿÿÿ,ÿÿBÿÿÿ,ÿÿBÿÿÿ,ÿÿ÷
ÿ r~  c               	   C   sä  t dtd\} }t d\}}tt| ||d| | || | tt|||| |d||  | g}t| |t | t|d   t||t| t|d   g}t||ks]J t||dddgfksjJ tt| ||d| | || d | tt||||| | d||  | g}t| |t|d  |ttdd	   |t	| td
d  tdd t||t|d  |t	| d  |ttd
d	   tdd g}t||ksãJ t||dddgfksðJ d S )Nr   r8   zx x_r;   r>   Tr   r<   r?   r=   r~   )
r   r   r	   r   rê   rë   r   r   r   r   )r4   r5   r3   Úx_rç   rÂ   rè   r©   rF   rF   rI   Ú)test_sysode_linear_neq_order1_type5_type6Ý  s   P>**ÿF@ÿr  c                   C   sv  t dtd\} }t d}tt| ||dfd| | || tt|||df| | g}t| |t | t|  t| t|  tt t|   tt t|  t||t| t|  t| t|  tt t|   tt t|  g}t	||ksJ t
||dddgfksJ t| | |d¡dt|| |d¡| |g}t| |tt|  t||t|d  d t|d  d  t t|  g}t	||ksÙJ t
||dddgfksæJ tt| ||dfd| | tt|||df| | d||  g}t| |d	t ttd |  d	t ttd|   t||tdt | ttd |  tdt | ttd|   ttdt  ttd |   ttdt  ttd|   g}t	||ksyJ t
||dddgfksJ tt| ||dfd| | || tt|||dfd|| g}	t| |t| ttd|  d	 t| ttd |  d	  td	 tdt d
  ttd |   ttd| tdt d
 ttdd	    t||tdt ttd|  d tdt ttd |  tdd  g}
t	|	|
ks+J t
|	|
dddgfks9J t| | |d¡| |t|| |d¡| |g}t| |t t|  tt|  t||t t|  tt|  t t|  g}t	||ksJ t
||dddgfksJ tt| ||df| ||| tt|||df| | || g}t| |tt|d  d  t t|d  d  |tt   t||t t|d  tdd  t|  t|d  tdd  g}t	||ksJ t
||dddgfksJ tt| ||df| ||| d tt|||df| ||| d g}t| |t t|  tdt ttd|  d  tdt ttd |  tdd  tdd t||tt|  tdt ttd|  d  tdt ttd |  tdd  tdd g}t	||ks­J t
||dddgfks»J tt| ||df| ||| d tt|||df| | || d g}t| |tt t|d  d  |d	 d  |d td tdd   |tt   t||t t|  t|d  tdd  |d	 tdd  |d td tdd   g}t	||ksDJ t
||dddgfksRJ t dtd\}}t d\}}tt|||dfd|| d||  tt|||df||d||  g}t||tddtd   ttdd  t| ttdd   d ttdtd  ddtd   t| tdtd   d  tddtd   ttdd  t|ttdd   tdd  ttdtd  ddtd   t|tdtd   tdd  t||tdtd  ttdd  t| ttdd   tdd ttdtd  tdd  t| tdtd   tdd  tdtd  ttdd  t|ttdd   d  ttdtd  tdd  t|tdtd   d  g}t	||ks¥J t
||dddgfks³J td|| t|||df dt|||  dtd|| dt|||  t|||df dg}t||tdtd  ttd| tdtd d  d  d tdtd  ttd| tdtd d  d  tdd  tdtd  ttd| tddtd   d  d  tdtd  ttd| tddtd   d  tdd  t||tdtd  ttd| tdtd d  d  tdd tdtd  ttd| tdtd d  d  tdd  tdtd  ttd| tddtd   d  d  tdtd  ttd| tddtd   d  d  g}t	||ksøJ t
||dddgfksJ tt| ||dft| ||| | ||d   |||d   tt|||df|||d  g}t| |ttdd  tdd |tddtdtdd    t|tddtdd    dtd  tdd  t|dtd   dtd   t|dtd   dtd   t||tdtd  tdd |tddtdtdd    t|tddtdd    dtd  tdd  g}t	||ksÜJ t
||dddgfksêJ tt| ||df|| | tt|||df||| g}t| |tt| tt|  t||tt| tt|  g}t	||ks5J t
||dddgfksCJ tt|||df|d	t||| d
t|||   tt|||df|dt||| dt|||   g}t||tttd| tdtt t d tdtt t tdd    ttd| tdtt t tdd tdtt t td	d    t||tttd| tdtt t tdd tdtt t tdd    ttd| tdtt t tdd tdtt t tdd    g}t	||k	s+J t
||dddgfk	s9J d S )Nr   r8   r3   r;   Tr   r>   r]   r?   r   r=   r<   r\   úx, yút, lr@   r!  rv   é=   é/   rr   ém   é_   é   r   r  é7   r`  én   )r   r   r	   r   rë   r   r#  rê   r$  r   r   r   r   r   r   r   r*   r+   r   r   r   ) r4   r5   r3   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Á   rF   rF   rI   Ú test_higher_order_to_first_orderð  sà  &ÿNLÿ0L(ÿ:J
ÿÿÿÿ&ÿj,ÿPþ4X"$ÿ<Bÿ&&ÿ\ÿZÿþ&(ÿRL
ÿÿ*&ÿNÿÿÿÿÿÿÿÿ*
ÿÿþPÿ
ÿÿÿÿÿÿÿÿÿÿÿþü44ÿFÿ&ÿÿÿ&ÿÿÿ
ÿÿÿþLÿ&ÿÿÿ&ÿÿÿ
ÿÿÿþüD"ÿ*ÿ
ÿ
ÿÿÿÿ
ÿþý*ÿ
ÿ
ÿÿÿüÿ  ÿ::ÿPJÿJ
ÿJÿþ r  c               	   C   sP  t dtd\} }t d}| ||| dtt|   dt| ||  t| ||df | ||| dtt|   dt|||  t|||df g}t| |t ttd|  d  td t	d  t|  t
|  td t	d  t|  t|  dddt  tt|  t|d  d   dddt  tt|  t
|d  d   t||tttd|  d  td t	d  t|  t
|  td t	d  t|  t|  dddt  tt|  t|d  d   dddt  tt|  t
|d  d   g}t||ksJ t||dd	d	gfks&J d S )
Nr   r8   r3   r;   r~   r<   r@   Tr   )r   r   r   r   r   r	   rê   rë   r#  r$  r   r   r   r   )r4   r5   r3   rø   rù   rF   rF   rI   Ú"test_higher_order_to_first_order_9k  s,   BBÿB ÿ*ÿ*þ@ ÿ*ÿ*þý r  c                  C   s  t dtd\} }t d}t dtd\}}t d\}}td|| t|||df dt|||  d	td|| dt|||  t|||df d	g}t||tdtd
  td| tdtd
 d   tdd tdtd
  t	d| tdtd
 d   d  t
dtd
  td| tddtd
    tdd  tdtd
  t	d| tddtd
    d  t||tdtd
  t	d| tdtd
 d   tdd tdtd
  td| tdtd
 d   tdd  t
dtd
  t	d| tddtd
    d  tdtd
  td| tddtd
    d  g}t||ks?J t||dd	d	gfksMJ d S )Nr   r8   r3   r  r  r?   r;   r   r   r@   rv   r=   T)r   r   r	   r   rê   r   r   r   rë   r   r#  r$  r   r   )r4   r5   r3   r   r:   r¡   rý   r»   rF   rF   rI   Ú#test_higher_order_to_first_order_12|  sL   44ÿDÿÿÿ2ÿÿ2þDÿÿÿ

ÿÿÿ2þý r  c                  C   sŽ  t dtd\} }t d\}}}}}}}t| | |d¡d||| |¡ ||  t|| |d¡d|| | |¡ | |  g}	t| |t| |ttt|  tttd|   d tt|  tt td|   d  tt	 t|  tttd|   d  tt	 t|  tt td|   d  |t
|f  t||t| |ttt t|  tttd|   d tt t|  tt td|   d  t	t|  tttd|   d  t	t|  tt td|   d  |t
|f  g}
t|	ddd|
gksJ t|	|
dd	d	gfks&J tt| |||d
| t||| d
||  tt||||d| t| || d| |  f}t| |t| |ttt|  tdtd td|  d  d tt|  tdtd td|  d  d  dtd t	 t|  tdtd td|  d  d  dtd t	 t|  tdtd td|  d  d  |t
|f  t||t| |ttdt t|  tdtd td|  d  d tdt t|  tdtd td|  d  d  t	t|  tdtd td|  d  d  t	t|  tdtd td|  d  d  |t
|f  g}t|ddd|gksgJ t||dd	d	gfksuJ tt|||df|| tt| ||dfd	g}t||tt|  || |d  d  t| |t	t|  g}t||ksžJ t||dd	d	gfksÆJ tt| ||df| ||d  tt|||df||| |d  g}t| |tt|d  td|  tt|d  td|   t||t	t|d  tt| |  |tdd  tt|d  tt||  |tdd   g}t||ksJJ t||dd	d	gfksXJ d S )Nr   r8   úx t x_ t_ d a mr;   r~   Frz  Tr   rv   rr   r>   rB   r  r]   r?   r=   r<   )r   r   r	   r   rê   r,   rë   r   r   r#  r   r$  r&   r   r   r   r   r   )r4   r5   r3   r:   r  r   re  rì   Úmrè   r©   rï   rÅ   rñ   rÊ   rò   ró   rF   rF   rI   Ú"test_second_order_to_first_order_2  s   ..ÿ^(ÿ*ÿ
ÿf$ÿ&ÿ
ÿþhNÿÿ<ÿ<þ
þ^ÿÿ0ÿ
ÿÿÿÿ
þýÿ(ÿ"&ÿ@6,ÿÿ r  c                  C   s  t dtd\} }t d\}}}}}}}t| | |d¡d| ||| |¡ ||  t|| |d¡d| || | |¡ | |  g}	t| |t| dt | td|   ttd|   dt | t	d|   tt
d|   t||dt | t	d|  tt
d|   dt | td|   ttd|   t|  g}
t|	|
ks±J t|	|
dddgfksŸJ d S )Nr   r8   r  r;   r~   Tr   )r   r   r	   r   rê   rë   r   r   r#  r   r   r$  r   r   )r4   r5   r3   r:   r  r   re  rì   r  rç   rÂ   rF   rF   rI   Ú&test_second_order_to_first_order_slow1œ  s   22ÿ``ÿr  c                  C   s  t dtd\} }t d\}}}}}}}tt| ||df|t| t||| ||t|  tt|||df|t| t| || | |t|  g}	t| |t| |ttt|  tt|t	t|  ttt|  d tt|  tt| t	t|  ttt| d  t
t|  tt|t	t|  ttt|  d  t
t|  tt| t	t|  ttt| d  |t|f  t||t| |tt t|  tt|t	t|  ttt|  d tt|  tt| t	t|  ttt| d  t
t|  tt|t	t|  ttt|  d  t
t|  tt| t	t|  ttt| d  |t|f  g}
t|	ddd|
gkssJ t|	|
dddgfksJ d S )	Nr   r8   r  r;   Frz  Tr   )r   r   r	   r   r   rê   r,   rë   r   r   r#  r   r$  r&   r   )r4   r5   r3   r:   r  r   re  rì   r  rð   rÇ   rF   rF   rI   Ú&test_second_order_to_first_order_slow4Ì  sD   <<ÿL:ÿ$ÿÿÿ:ý
ýN:ÿ$ÿÿÿ:þ
þü r  c                  C   s  t dtd\} }}}t d}| |||||||g}tt| ||d| | tt|||| |tt|||||tt|||||d || g}t| |dt td|  t||ttd|  t t||tt| t||td td|  d tt|  g}t	||ksJ t
||dg d¢fks¥J tt| ||d| | ftt|||| |fftt|||||ftt|||||d || ffh}| |t ||| |h||t ||||hi| |tt| ||d| | ||tt|||| |||tt|||||||tt|||||d || if}	| |||||||h||| |f||||fhg}
d	d
 t|||D |kskJ t|||	ksuJ dd t|	d D |
ksJ tt| ||d| | tt|||| |tt|||||tt|||| |d || g}t| |ttd|  t||ttd|  d t t||tt| t||td td|  d tt|  g}t	||ksJ t
||dg d¢fksJ ttt| ||d| | ftt|||| |ftt|||| |d || fgttt|||||fgh}| |t ||| |h||t ||| |hi| |tt| ||d| | ||tt|||| |||tt|||||||tt|||| |d || if}| |||||||h||| |f||| |fhg}dd
 t|||D |ksÚJ t|||ksäJ dd t|d D |ksôJ tt| ||d| | tt||||| | tt|||||tt|||| |d || g}t| |ttd|  t||ttd|  d t |d d  t||tt| t||td td|  d tt|  g}t	||ksyJ t
||dg d¢fksJ ttt| ||d| | ftt||||| | ftt|||| |d || fgttt|||||fgh}| |t ||| |h||t ||| |hi| |tt| ||d| | ||tt||||| | ||tt|||||||tt|||| |d || if}| |||||||h||| |f||| |fhg}dd
 t|||D |ksUJ t|||ks_J dd t|d D |ksoJ tt| |||| | d||  tt|||| ||||  | tt|||||tt|||| |d || g}t| |td tdt d  tdt|t|d  d td|   d |t|d  d td|   d  | d  ttd| t|d  d td|   d td| t|d  d td|   d  |d  t|d d td|   td tdt d  tdt|t|d  d td|   d |t|d  d td|   d  | d  ttd| t|d  d td|   d td| t|d  d td|   d  |d  t|d d td|    t||td t d td  t|t|d  d td|   d |t|d  d td|   d  |d  tdttd| t|d  d td|   d td| t|d  d td|   d  | d  t|d d td|   tdt d td  t|t|d  d td|   d |t|d  d td|   d  |d  tdttd| t|d  d td|   d td| t|d  d td|   d  | d  t|d d td|    t||tt| t||tt| t|ttt|d d td|   d tt|d d td|   d  tdt t|d d td|   d  tdt t|d d td|   d  tdt|d d td|   t|t|d  d td|   d |t|d  d td|   d  | d  t|d d td|  ttd| t|d  d td|   d td| t|d  d td|   d  | d  tdt|d d td|   t|t|d  d td|   d |t|d  d td|   d  | d  t|d d td|  ttd| t|d  d td|   d td| t|d  d td|   d  | d  d t|  |  g}ttt| |||| | d||  tt|||||| | | | gttt|||| |d || gfttt|||||gfh}| |||h||| |h||t ||| |hi| |tt| |||| | d||  ||tt|||||| | | | ||tt|||||||tt|||| |d || if}| |||||||h| |||f||| |f||| |fhg}dd
 t|||D |k	sJ t|||k	sJ dd t|d D |k	s&J t|ddd|gk	s3J t
||dg d¢fk	sAJ tt| |||| | d||  tt|||||| | | tt|||||tt|||| |d || g}t| |td tdt d  t|d d td|   td tdt d  t|d d td|    t||td t d td  t|d d td|   tdt d td  t|d d td|    t||tt| t||tt| t|ttt|d d td|   d tt|d d td|   d  tdt t|d d td|   d  tdt t|d d td|   d  d t|  |  g}ttt| |||| | d||  tt|||||| | | gttt|||| |d || gfttt|||||gfh}| |||h||| |h||t ||| |hi| |tt| |||| | d||  ||tt|||||| | | ||tt|||||||tt|||| |d || if}| |||||||h| |||f||| |f||| |fhg}dd
 t|||D |ksTJ t|||ks^J dd t|d D |ksnJ t|ddd|gks{J t
||dg d¢fksJ d S )NrV  r8   r3   r;   r?   r>   Tr  c                 S   ó   h | ]}t d d |D qS )c                 s   ó    | ]}t |V  qd S rÛ   ©Útuple©Ú.0ÚsccrF   rF   rI   Ú	<genexpr>ö  ó    ú4test_component_division.<locals>.<setcomp>.<genexpr>r  ©r  ÚwccrF   rF   rI   Ú	<setcomp>ö  ó    z*test_component_division.<locals>.<setcomp>c                 S   ó   g | ]}t |qS rF   ©Úset©r  ÚelementrF   rF   rI   Ú
<listcomp>ø  r   z+test_component_division.<locals>.<listcomp>r   r   rr   c                 S   r  )c                 s   r  rÛ   r  r  rF   rF   rI   r    r  r  ©Ú	frozensetr  rF   rF   rI   r    r  c                 S   r   rF   r¡  r£  rF   rF   rI   r¥    r   c                 S   r  )c                 s   r  rÛ   r  r  rF   rF   rI   r  (  r  r  rŠ  r  rF   rF   rI   r  (  r  c                 S   r   rF   r¡  )r  r¡   rF   rF   rI   r¥  *  r   c                 S   r  )c                 s   r  rÛ   rŠ  r  rF   rF   rI   r  P  r  r  r  r  rF   rF   rI   r  P  r  c                 S   r   rF   r¡  r£  rF   rF   rI   r¥  R  r   Frz  c                 S   r  )c                 s   r  rÛ   rŠ  r  rF   rF   rI   r  j  r  r  r  r  rF   rF   rI   r  j  r  c                 S   r   rF   r¡  r£  rF   rF   rI   r¥  l  r   )r   r   r	   r   rê   r   rë   r#  r$  r   r   r¢  r'   r(   r)   r§  r   r,   r&   )r4   r5   r6   r    r3   rH   rç   rÂ   Úcomponents1Úeqsdict1Úgraph1rè   r©   Úcomponents2Úeqsdict2Úgraph2rï   rÅ   Úcomponents3Úeqsdict3Úgraph3rð   rÇ   Úcomponents4Úeqsdict4Úgraph4rñ   rÊ   Úcomponents5Úeqsdict5Úgraph5rF   rF   rI   Útest_component_divisionÞ  s  "ý,ý6>ÿ2 (ýÿ<  "ý ,ý$þý2 (ýÿ<  "ý,,ý$þý2  (ýÿ<  &&"ýZ
ÿÿÿÿF
ÿÿÿÿÿþ.
ÿÿ$ÿÿÿ.,ÿÿÿÿþþvbÿÿÿþ<$ÿÿÿ4,ÿÿÿÿþþ`*ÿ*ÿ
ÿPÿÿÿ
ÿ\ÿÿþþX
ÿÿÿÿüH,ÿÿÿûúúúõ(&ÿ(þý6,,(ýÿJ  &""ýpr`*ÿ*ÿÿÿÿý("ÿ(þý6,((ýÿJ   r·  c               
      s~  t d\} t dtd\}}}ttfdd ttfdd tddgdd	gd	d
gg tt fdd tg d¢g d¢gttfdd ||g}t| ¡| ¡ |t| ¡|g}t||}t	|d |d\\ }}|}	t
tdd tdd   ttdd tdd    ttd d tdd  ttd d tdd    t
ttdd tdd    tttd d tdd    g}
tt|	t| jd|
ksúJ ttfdd ttfdd ttfdd ttfdd ttfdd ttfdd tddgdd	gd	d
gg tdd gtt fdd tg d¢g d¢gtd gttfdd tt fdd tt fdd tddgddgg td d d d gt
t  t dd    dd   dd  d    d  t
t  dd    dd   dd  d    d  g}tt d!d"d#gd|ksøJ ||g}t| ¡| ¡ | t| ¡|g}t||}t	|d |d\\ }}|}	t
 t d td d   d tdt
 t d td d   d  tdt ttd  d d   d  tttd  d d   d  t d td d  tttd  d d   d$td  td ttd  d d   d$td    d  tdt d td d   tttd  d d   d$td  td ttd  d d   d$td    d  tdttd  d d   ttd  td td d   d  d  ttd  d d  ttd  td td d   d  d  t
t d td d   tttd  d d    t d td d  tttd  d d   d$td  td ttd  d d   d$td     ttd  d d  ttd  td td d   d   g}
tt|	|d%gd|
ksJ t
 t d td d   d tdt
 t d td d   d  tdt ttd  d d   d  tttd  d d   d  t d td d  td d  tdt d td d   td d  tdttd  d d   td d  ttd  d d  td d  t
t d td d   tttd  d d    t d td d  td  ttd  d d  td  g}tt|	d!d&gd|ks%J ttfd'd ttfd(d tdg dgg t \}tt fd)d tt fd*d tggggt\}ttfd+d ttfd,d ttfd-d tt fd.d ttfd/d ||g}t| ¡||  t| ¡ | | g}t||}t	|d |d\\ }}|}	t
d tt d  ttd  d   t
d tt d  tt d  d    t t
 d td  tt d  d   tt
 d td  ttd  d    g}
tt|	t| jd|
ksZJ tt|	d0d&t| jd|
ksmJ tdgdgg tt fd1d ttfd2d ttfd3d ttfd4d ttfd5d ttfd6d ttfd7d tdg dgg td gt \}tt fd8d tggggtdd gt\}ttfd9d tt fd:d ttfd;d tt fd<d ttfd=d || || || g}t||  | ¡| || ||  ||   |  t||  | ¡| || ||  ||   |  t||  | ¡| || ||  ||   d g}t||| }t	|d || d\\ }}|}	td>| d  d }td | d  d }td| |  d  |d   | d   tdd  | }d| | d  }td| |  d  |d   d|  d   tdd  | }t
| d  t
d   t| d   td   t| d   dt d   || d   |d   | |d   t
| d  dt
 d   t| d   td   t| d   td   || d   |d   | |d   t
| d  t
d   t| d   dt d   t| d   td   || d   d| d   | d| d   g}
tt|	| |d%t| jd|
ksJ tt|	| |d?d@t| jd|
ks§J tdgdgg tt fdAd t
 d  td   dt d   t
d  td   td   td | d  d   dt
 d  td   td   t
d  td   td   td | d  d   t
 d  dt d   td   t
d  td   td   td | d  d   g}tt|	| d?d"dBt| jd|k	s=J d S )CNzt x aræ   r8   c                      s
   t d S r   ©r$   rF   rÓ   rF   rI   rJ   w  rÞ   z"test_linodesolve.<locals>.<lambda>c                      ó
   t  S rÛ   rž  rF   ©rì   r:   rF   rI   rJ   x  rÞ   r<   r;   r?   r]   c                      r¹  rÛ   rž  rF   ©r   r:   rF   rI   rJ   {  rÞ   )r<   r;   r<   )r>   r<   r;   c                      r¹  rÛ   rž  rF   ©ÚA2r:   rF   rI   rJ   ~  rÞ   r   r@   )Ú	variablesc                      s   t d t d gdS ©Nr<   ©rí   ©r$   r   rF   rÓ   rF   rI   rJ     ó    c                      s    t  ttt gdS ©NrÀ  ©r$   r   r   r   rF   rº  rF   rI   rJ     ó     c                      s   t tdg  d dS ©Nrr   r;   rÀ  rÁ  rF   rÓ   rF   rI   rJ     rÂ  c                      s$   t t d gtt dS ©Nr   rÀ  ©r$   r   r   r   rF   rº  rF   rI   rJ     ó   $ c                      s   t d  d dS rÆ  rž  rF   rÓ   rF   rI   rJ     s    c                      s   t  tt dS rÃ  ©r$   r   r   rF   rº  rF   rI   rJ     rÚ   c                      ó   t  dS rÃ  rž  rF   ©r   Úb1r:   rF   rI   rJ     ó    c                      rË  rÃ  rž  rF   ©rœ  Úb2r:   rF   rI   rJ     rÎ  c                      ó   t  d dd d f dS ©Nr;   rÀ  rž  rF   rÌ  rF   rI   rJ     r  c                      s&   t  d dd d f d d dS )Nr;   r<   rÀ  rž  rF   rÌ  rF   rI   rJ     ó   & r=   r   r   r   r>   r   T)rí   Útyper|  rx   rÀ  )rÔ  c                      s   t  d  S )Nr   rž  rF   rÓ   rF   rI   rJ   Ä  rÎ  c                      s   t   S rÛ   rž  rF   rº  rF   rI   rJ   Å  rÎ  c                      ó   t  d d d df dS ©Nr<   ©ÚBrž  rF   )r   ÚB1r:   rF   rI   rJ   É  r  c                      ó   t  ddS rÖ  rž  rF   r»  rF   rI   rJ   Ê  rÎ  c                      s   t  d dd d f dS ©Nr;   r×  rž  rF   ©rœ  ÚB2r:   rF   rI   rJ   Î  r  c                      rÚ  rÛ  rž  rF   rŒ  rF   rI   rJ   Ï  rÎ  c                      s   t  ddS )NÚtype31)rØ  rÔ  rž  rF   rÜ  rF   rI   rJ   Ð  ó    c                      rË  ©Nr×  rž  rF   )r   rÝ  r:   rF   rI   rJ   Ò  rÎ  c                      rË  rà  rž  rF   )rœ  rÙ  r:   rF   rI   rJ   Ó  rÎ  r   c                      r¹  rÛ   rž  rF   r»  rF   rI   rJ   á  rÞ   c                      s   t  d  t d gdS )Nr   r<   rÀ  rÁ  rF   rÓ   rF   rI   rJ   ä  rÔ   c                      s$   t   ttt gdS rÃ  rÄ  rF   rº  rF   rI   rJ   å  rÉ  c                      s   t td  g  d dS rÆ  rÁ  rF   rÓ   rF   rI   rJ   ç  rÔ   c                      s,   t t dt  gtt dS rÇ  rÈ  rF   rº  rF   rI   rJ   è  s   , c                      s   t d    d dS rÆ  rž  rF   rÓ   rF   rI   rJ   ê  rK   c                      s"   t  d  tt dS rÒ  rÊ  rF   rº  rF   rI   rJ   ë  ó   " c                      rÕ  r¿  rž  rF   rÌ  rF   rI   rJ   ð  r  c                      rÑ  rÒ  rž  rF   rÏ  rF   rI   rJ   õ  r  c                      rË  rÃ  rž  rF   )r   rÐ  r:   rF   rI   rJ   ÷  rÎ  c                      rË  rÃ  rž  rF   )rœ  rÍ  r:   rF   rI   rJ   ø  rÎ  c                      ó   t  dS ©N)rí   rØ  rž  rF   )r   rÝ  rÍ  r:   rF   rI   rJ   ú  rß  c                      râ  rã  rž  rF   )rœ  rÙ  rÐ  r:   rF   rI   rJ   û  rß  rB   r   )rí   rÔ  c                      rË  rÃ  rž  rF   rÌ  rF   rI   rJ     rÎ  )rÔ  r|  )r   r   r/   r   r   r   r	   r   r%   r   rê   r   r   r   rë   r   r$   r   Úfree_symbolsr,   r#   r   ÚNotImplementedErrorr#  )r3   r4   r5   r6   rg   rf   Úceqr   rí   rã   rT  rÂ   Ú_Ú_x1Ú_x2Ú_x3Ú_x4Ú_x5rF   )r   rœ  rÙ  rÝ  rì   rÍ  rÐ  r:   rI   Útest_linodesolver  s  >TÿFþ FBÿÿ
ÿBpÿÿ$ÿ2ÿ
ÿ4ÿÿÿÿÿJÿ
ÿÿÿþþ:ÿÿÿÿüTûLÿJÿ
ÿÿÿÿ2ÿþú"
pÿÿ$ÿ*ÿ2þ2þ*ýB&ÿ&ÿü" JXZÿ"& ...þ04^^fý&ÿ
ÿHÿ,rí  c                  C   s.  t dtd\} }}td}|d t| }|d t| }tt| ||d| | | | |||  d| ||  tt|||d| | | || ||  d| ||  tt|||d| | | |||  d| | ||  f}td	 t| W d    d S 1 sw   Y  d S )
Núx, y, zr8   r:   r>   r;   r?   r@   rB   T)	r   r   r   r   r   r	   r   r   r   )r3   r   r   r:   r4   r5   r   rF   rF   rI   Ú!test_linear_3eq_order1_type4_slow  s   >^ÿÿÿ

"ÿrï  c                  C   sÄ   t d\} }}}}}td}td}|| t||| || || ||   }|| t||| || t|||  || ||   }	||	g}
t|
ddd\}t|
|dddgfks`J d S )Nzi, r1, c1, r2, c2, tr¢   rŠ   Frz  Tr   )r   r   r   r&   r   )rÑ   Úr1Úc1Úr2Úc2r:   r¢   rŠ   r   rÃ   rf   rT  rF   rF   rI   Ú"test_linear_neq_order1_type2_slow1*  s   .<rô  c                  C   s8  t rtd tddd} tddd}tddd}tddd\}}}tddd\}}}td	tdd
\}	}
}| | | t|	||  || || ||
|    | | | t|
||  |||| ||	|    | | | t|||  || |
| ||	|    g}t|}t||dg d¢fksJ d S )NúToo slow for travis.r  Tr  Úqr:   ze1:4zb1:4zv1:4)r9   r  rA   )r.   r1   r   r   r   r   r   r   )r  rö  r:   Úe1Úe2Úe3rÍ  rÐ  Úb3Úv1Úv2Úv3ÚeqsrT  rF   rF   rI   Ú2test_linear_new_order1_type2_de_lorentz_slow_check;  s   868ýrÿ  c                  C   sŒ   t d\} }}}}}}}td}td}	t|| |¡d|  || |	||  t|	| |¡| | |	| d| ||  ||  g}
t|
ddd\}t|
|dd	d	gfks\J d S )
NzRC t C Vs L R1 V0 I0ÚVr   r=   r<   Frz  Tr   )r   r   r	   r   r&   r   )ÚRCr:   ÚCÚVsÚLÚR1ÚV0ÚI0r   r   ÚsystemrT  rF   rF   rI   Ú'test_linear_neq_order1_type2_slow_checkS  s   fr	  c               	   C   sâ  t dtd\} }}td}|d t| }|d t| }tt| ||d| | | | |||  d| ||  tt|||d| | | || ||  d| ||  tt|||d| | | |||  d| | ||  f}t|}d	d
 |D }t|d  d|d  t|  d|d   dt|d   dt|  d }	td}
dt	 |	 |
 dt
 |	 |
  dt |	 |
  }dd|d  d|	 |
  dt|  d  }t|d d ||	 |
 d  t| }t|d d ||	 |
 d  t| }t|d d |d d  d| t|  d|  t| }dt	 |	 |
 dt
 |	 |
  dt |	 |
  }dd|d  d|	 |
  dt|  d  }dt	 d dt
 d  dt d  ||  }dt	 d dt
 d  dt d  ||  }t| ||| ||  |t	t
   t|||| ||  t|||dt	 d dt
 d  d t d  ||   |dt	 d d t
 d  dt d  ||    |t	t
   g}||ksáJ t||d!g d"¢fksïJ d S )#Nrî  r8   r:   r>   r;   r?   r@   rB   c                 S   r   rF   ©r"   ©r  rT  rF   rF   rI   r¥  j  r   z1_linear_3eq_order1_type4_long.<locals>.<listcomp>r]   r   rÕ   r{   l   €XW` l   Rl+p r<   istql   +RH l   ,N£ ifd i iÅÅ  i ieb  i  i;:ÿÿi°1  iXþÿÿi  é§   iš  TrA   )r   r   r   r   r   r	   r   r   r   rê   rë   r#  r   r   r   )r3   r   r   r:   r4   r5   r   Ú
dsolve_solÚdsolve_sol1Úx_1Úx_2Úx_3Úx_4Úx_5Úx_6Úx_7Úx_8Úx_9Úx_10Úx_11rT  rF   rF   rI   Ú_linear_3eq_order1_type4_long^  sJ   >^ÿÿÿN0,((<0,,,F*ÿ
ÿÿÿ
þ r  c                  C   s®   t dtd\} }t d}tt| |||| | |d ||  | tt|||d|d  | | |d|d   ||  d g}t|}t||dddgfksUJ d S )	Nr   r8   r3   r;   r>   r<   Tr   )r   r   r	   r   r   r   ©r4   r5   r3   rþ  rT  rF   rF   rI   Ú!test_neq_order1_type4_slow_check1  s   .>ÿr  c                  C   sö   t dtd\} }}td}tt| ||||| | | || d tt|||||| | | || d tt||||| | | || || g}td t|}W d    n1 sgw   Y  t||dg d¢fksyJ d S )Nr7   r8   r3   r<   r   TrA   )r   r   r   r	   r   r   r   r   )r4   r5   r6   r3   rþ  rT  rF   rF   rI   Ú!test_neq_order1_type4_slow_check2  s   ...ý

ÿr  c                  C   sŠ  t dtd\} }t d}tt| |||| | || t| tt||||d |||  | | g}t| |td tt d  tt|d t	|d  d t|   d |d t	|d  d t|   d  tt	|d  d t|   t| d  tt	|d  d t|   t| d  | d  tt |d  t	|d  d t|   d t|d  t	|d  d t|   d  t	|d  d t|  t| d  t	|d  d t|  t| d  |d  t	|d d t|   td tt d  tt|d t	|d  d t|   d |d t	|d  d t|   d  tt	|d  d t|   t| d  tt	|d  d t|   t| d  | d  tt |d  t	|d  d t|   d t|d  t	|d  d t|   d  t	|d  d t|  t| d  t	|d  d t|  t| d  |d  t	|d d t|    t||t t d td  t|d t	|d  d t|   d |d t	|d  d t|   d  tt	|d  d t|   t| d  tt	|d  d t|   t| d  |d  ttt |d  t	|d  d t|   d t|d  t	|d  d t|   d  t	|d  d t|  t| d  t	|d  d t|  t| d  | d  t	|d d t|   tt d td  t|d t	|d  d t|   d |d t	|d  d t|   d  tt	|d  d t|   t| d  tt	|d  d t|   t| d  |d  ttt |d  t	|d  d t|   d t|d  t	|d  d t|   d  t	|d  d t|  t| d  t	|d  d t|  t| d  | d  t	|d d t|    g}||fS )Nr   r8   r3   r;   )
r   r   r	   r   r   rê   r   rë   r,   r   r  rF   rF   rI   Ú_neq_order1_type4_slow3  s  **þB$ÿ(ÿ(þþþÿÿ(ÿÿÿÿÿ$þþþþÿü:$ÿ(ÿ(þþþÿÿ(ÿÿÿÿÿ$þþþþÿüûB$ÿ(ÿ(þþþFÿÿ$ÿÿÿÿÿþþýûL(ÿ(ÿþþÿ.(ÿ$ÿ$þþþýûûôr  c                  C   s&   t  \} }t| ddd|gksJ d S )NFrz  )r  r&   ©rþ  rT  rF   rF   rI   Útest_neq_order1_type4_slow3œ  s   
r   c                  C   s(   t  \} }t| |dddgfksJ d S )NTr   )r  r   r  rF   rF   rI   Ú!test_neq_order1_type4_slow_check3Å  s   
r!  c                  C   s<   t rtd t \} }t| }dd |D }||ksJ d S )Nrõ  c                 S   r   rF   r
  r  rF   rF   rI   r¥  Ô  r   zGtest_linear_3eq_order1_type4_long_dsolve_slow_xfail.<locals>.<listcomp>)r.   r1   r  r   ©rf   rT  r  r  rF   rF   rI   Ú3test_linear_3eq_order1_type4_long_dsolve_slow_xfailË  s   
r#  c                  C   sd   t rtd t \} }td t| }W d    n1 sw   Y  dd |D }||ks0J d S )Nrõ  Tc                 S   r   rF   r
  r  rF   rF   rI   r¥  å  r   zHtest_linear_3eq_order1_type4_long_dsolve_dotprodsimp.<locals>.<listcomp>)r.   r1   r  r   r   r"  rF   rF   rI   Ú4test_linear_3eq_order1_type4_long_dsolve_dotprodsimpÙ  s   


ÿr$  c                  C   s4   t rtd t \} }t| |dg d¢fksJ d S )Nrõ  TrA   )r.   r1   r  r   )rf   rT  rF   rF   rI   Ú'test_linear_3eq_order1_type4_long_checké  s   
r%  c                     s  t dtd\t dt ¡ t ¡ ggtt ttd   ttttd   gg} tdd| ks`J tt	dd  tt	fd	d tt	fd
d tt	fdd t ¡d d  t ¡d d d  f tt
 fdd tt
 fdd tt
 fdd tt
 fdd tt
 fdd tt
 fdd tt
 fdd d S )Nr   r8   r3   r;   T)rH   r:   r|  c                   S   s   t dS r   ©r&   rF   rF   rF   rI   rJ   û  s    z$test_dsolve_system.<locals>.<lambda>c                      s
   t  dS r   r&  rF   ©rþ  rF   rI   rJ   ü  rÞ   c                      s   t  dS r   r&  rF   )rþ  rH   rF   rI   rJ   ý  s    c                      r   r   r&  rF   )rþ  rH   r3   rF   rI   rJ   þ  r   r\   r]   r^   r>   c                      s   t  g g fkS rÛ   r&  rF   )rf   rF   rI   rJ   	  rß  c                      s    t  gdg g fkS )N)rH   r&  rF   ©rf   r4   r5   r3   rF   rI   rJ   	  rÅ  c                      s"   t  gdg g fkS )N)rH   r:   r&  rF   r(  rF   rI   rJ   	  rá  c                      s4   t  gddddidg g fkS )Nr   r<   )rH   r:   r_  r&  rF   r(  rF   rI   rJ   	  s   4 c                      s&   t  ddddidg g fkS )Nr   r<   )r:   r_  r&  rF   r(  rF   rI   rJ   	  rÓ  c                      s$   t  ddddidg g fkS )Nr   r<   r^  r&  rF   )rf   r4   r5   rF   rI   rJ   	  rÉ  c                      s2   t  gddddidg g fkS )Nr   r<   )rH   r_  r&  rF   r(  rF   rI   rJ   	  s   2 )r   r   r	   r   rê   rë   r   r&   r/   r   rå  )rT  rF   )rf   rþ  r4   rH   r5   r3   rI   Útest_dsolve_systemò  s$   @@Tr)  c                  C   s  t dtd\} }t d\}}| | |¡| | | |¡| g}tt t| W d    n1 s3w   Y  | || |¡g}tt t| W d    n1 sTw   Y  | || |¡|| |¡ || |¡g}tt t| W d    d S 1 sw   Y  d S )Nr   r8   úx y)r   r   r   r/   r   r   )r4   r5   r3   r   rþ  rF   rF   rI   Útest_dsolve
	  s   $

ÿ

ÿ,

"ÿr+  c                  C   sB  t dtd\} }t d}tt| |||t||d  t| || t||d  d t|||  tt||||t||d  d t| || t||d  d t|||  g}t|ddd\}|D ]4}|j|j  |d	 j|d	 j|d
 j|d
 ji¡}| dd | 	t
¡D ¡}t| |d
¡d	ksJ qjd S )Nr*  r8   r:   r;   r>   rv   Frz  r   r<   c                 S   s   i | ]	}||j d dqS )F)Údeep)r|  )r  re  rF   rF   rI   Ú
<dictcomp>*	  rÚ   z,test_higher_order1_slow1.<locals>.<dictcomp>)r   r   r	   r   r   r&   Úlhsr   ÚsubsÚatomsr   r-   )r3   r   r:   rf   rT  ÚeÚresrF   rF   rI   Útest_higher_order1_slow1	  s   PTþ2ýr3  c               
   C   sÊ  t dtd\} }}t d\}}tt| ||df|d| | ||  tt|||df|| | d||   g}t| |tt t|dt tdd    tt t	|dt tdd     tt
 t|dt tdd     tt t	|dt tdd     t||tt|dt tdd    tt	|dt tdd     t
t|dt tdd     tt	|dt tdd     g}t||ksÖJ t||dddgfksãJ d S )	Nrî  r8   r  r;   r<   r>   Tr   )r   r   r	   r   r   rê   r*   r
   rë   r+   r#  r$  r   r   )r3   r   r   r:   r¡   rç   rÂ   rF   rF   rI   Útest_second_order_type2_slow1.	  s$   *,ÿZÿ

ÿ"ÿfÿþr4  c                  C   sŠ   t rtd td\} }}| tt t¡ || tt tt  |tt t¡ ||  tt tt  |tt t¡ | | tt tt  g}t|sQJ d S )Nrõ  za b c)	r.   r1   r   r4   r3   r   r5   r6   r   )rì   rí   rî   rþ  rF   rF   rI   Útest_nonlinear_3eq_order1_type1<	  s   (((ýr5  c                  C   s²   t tt t¡dtt tt dtt tt  t tt t¡dtt tt dtt tt  t tt t¡dtt tt dtt tt  g} t|  d S ©Nr;   r>   r?   )r	   r4   r3   r   r6   r5   r   r'  rF   rF   rI   Útest_nonlinear_3eq_order1_type4L	  s
   666ýr7  c                  C   s   t rtd ttt t¡dttd  d ttt t¡ddtt  ttt t¡dtt dttd   g} t|  d S )Nrõ  r;   r>   r?   )	r.   r1   r	   r4   r3   r   r5   r6   r   r'  rF   rF   rI   Útest_nonlinear_3eq_order1_type3Y	  s   "*ýr8  c               	   C   s   t tt t¡ttdtt dtt   t tt t¡ttdtt dtt   t tt t¡ttdtt dtt   g} t|  d S r6  )r	   r4   r3   r   r5   r6   r   r'  rF   rF   rI   Útest_nonlinear_3eq_order1_type5i	  s
   ...ýr9  c                  C   s  t dtd\} }}t ddd\}}}}td}t dtd\}}	tt| ||| ||| d tt|||d	| | d
||  d f}
t| |tt|tdd   tt|td d    t	dd t||td	td  t|tdd   ttd d	  t|td d    t	d
d g}t
|
|dddgfks§J tt| ||| ||| d tt|||d| | || d f}t| |tttd	|  tttd	|   t| t	dd t||td	 t ttd	|  td	t ttd	|   t| t	dd g}t
||dddgfks(J tt| ||d
| | | d	||  tt|||d	| | d
| ||  f}t| |ttd	|  ttd|   tt	d
d	|d	   t||ttd	|  ttd|   tt	d
d	|d	   g}t
||dddgfks¢J tt| ||d
| | | |d	 ||  tt||||d	  | | d
| ||  f}t| |tt|d d  tt|d d   tt	d
d	|d	   t||t t|d d  tt|d d   tt	d
d	|d	   g}t
||dddgfks*J tt| ||d
| | | |d	 ||  tt||||d	  | | d
| d|d	   ||  f}t| |tttdd	 t	dd	 |d  d  tttd d	 t	dd	 |d  d   tt	d
d	|d	   t||ttdd	 t	dd	  ttdd	 t	dd	 |d  d  ttd d	 t	dd	  ttd d	 t	dd	 |d  d   tt	d
d	|d	   g}t
||dddgfksüJ tt| ||d
| | | |d	 ||  tt|||d|d	  | | d
| d|d	   ||  f}t| |t|| t|| t|d	 ttd
| | ttd|d	  d
|  | ||d	  |  t||t|	| t|	|t|d	 ttd
| | ttd|d	  d
|  | ||d	  | ttd
| |ttd|d	  d
|  | ||    g}t|}||ksÇJ d S )Nrî  r8   z
k, l, m, nT)ÚIntegerr:   zx0, y0rv   r;   r@   r   r]   r>   r`  r   ra  r~   rb  rc  rv  r<   )r   r   r   r	   r   rê   r   r   rë   r   r   r   r   r,   r   )r3   r   r   r    r¡   r  râ   r:   rh  rx  r   rÂ   rÃ   r©   rÄ   rÅ   rÆ   rÇ   rÉ   rÊ   Úeq6ró   ÚsrF   rF   rI   Útest_linear_2eq_order1v	  sZ   PD^ÿLBTÿX>>ÿbFHÿn0*ÿÿFBÿÿþpjd6ÿÿr=  c                  C   s.  t dtd\} }}td}tt| ||| |||d  tt|||||d f}t| |ttddt d|   tdd  t||ddt d|   tdd  t| |ttdddt d|   tdd   t||ddt d|   tdd t| |ttt	 ddt d|   tdd   t||t	 ddt d|   tdd  t| |ttt	ddt d|   tdd   t||t	ddt d|   tdd  g}t
||ksìJ t||d	d
d
gfksùJ tt| ||td| | ||d  tt|||||d f}t| |ttdddt d|   tdd    d t||ddt d|   tdd  t| |ttdddt d|   tdd    d t||ddt d|   tdd t| |ttdt	 ddt d|   tdd    d t||t	 ddt d|   tdd  t| |ttdt	 ddt d|   tdd    d t||t	ddt d|   tdd  g}t
||ksîJ t||d	d
d
gfksüJ tt| ||||| | tt|||| |d f}tdd}	t| |d|	 dtttt|  d  tt |	   t||ttttttt|  d d   d g}
t
||
ksaJ tt| ||| ||| t|d  tt|||||d t|d  f}t| |dtt ttt | td| d   t||dt| td| d   h}t
||ksÂJ t| ||t| || t| ||t|||  t|||t||| t|||d  f}t| |tt t|  t||td t|  h}t
||ksJ t||d	d
d
gfks&J tt| ||| |d ||d  tt|||||d f}t| |dtdddt d|   tdd    t||ddt d|   tdd  t| |dtddt d|   tdd   t||ddt d|   tdd t| |dtt	ddt d|   tdd    t||t	 ddt d|   tdd  t| |dtt	ddt d|   tdd    t||t	ddt d|   tdd  g}t
||ksJ t||d	d
d
gfksJ d S )Nrî  r8   r:   r>   r@   r=   r?   r<   Tr   r;   r]   r~   )r   r   r   r	   r   rê   r   rë   r   r   r   r   r   r   r   r   )r3   r   r   r:   r   rÂ   rÃ   r©   rÄ   ÚttrÅ   rÆ   rÇ   rÉ   rÊ   r;  ró   rF   rF   rI   Útest_nonlinear_2eq_order1 	  sf   @.(2&4,2*ø	H8(8&<,<*ø	<
:4þT\f4D2(.&2,2*ø	 r?  c            	      C   s€  t dtd\} }}t d\}}dt| || d|| ||  dt||| ||| |  dt||| | |||  f}tdtdtd	|d  dt  t td	|d  dt  t   || |f ttd
| d
  tdtdtd|d  t dt  td|d  t dt    |||f ttd| d  tdtdtd|d  dt  t td|d  dt  t   |||f ttd| d  g}dd t	t
||D sæJ dt| || d|| || t|  dt||| ||| | t|  dt||| | ||| t|  f}tdtdtd|d  t dt  td|d  t dt    || |f ttdt| d  tdtdtd	|d  dt  t td	|d  dt  t   |||f ttd
t| d
  tdtdtd|d  dt  t td|d  dt  t   |||f ttdt| d  g}dd t	t
||D sÐJ d S )Nrî  r8   zt ur?   r;   r>   r@   r<   r}   r   rb   r   iöÿÿÿr]   c                 S   ó   g | ]	\}}|  |¡qS rF   ©Údummy_eq©r  rÑ   rÒ   rF   rF   rI   r¥  æ	  rÚ   z-test_nonlinear_3eq_order1.<locals>.<listcomp>c                 S   r@  rF   rA  rC  rF   rF   rI   r¥  î	  rÚ   )r   r   r   r	   r,   r   rê   rë   r#  Úzipr   r   r   )	r3   r   r   r:   r,  r   rÂ   rÃ   r©   rF   rF   rI   Útest_nonlinear_3eq_order1Ý	  sL   hNÿ@
ÿÿ"ÿ
ÿÿþPÿ@
ÿÿ"ÿ
ÿÿþ"rE  c               	   C   s  t d} td}td}t d}t d}tt|| | d||  tt|| | d||  f}t|| d| tdtd	 |   d| td
td	 |    t|| dtd	 | tdtd	 |   dtd	 | td
td	 |    g}t||dddgfksJ d S )Nr:   rê   rë   r#  r$  rv   r\   r]   r>   rb   Tr   )r   r   r	   r   r   r   r   )r:   rê   rë   r#  r$  rf   rT  rF   rF   rI   Útest_C1_function_9239ò	  s   8@PÿrF  c                  C   sÌ   t ddd} ttttt|  tt ttttt| tt f}tttt |  t| t  t|  t	| t   tttt |  t	| t  t|  t| t   g}t
||dddgfksdJ d S )NÚepsilonTrY  r   )r   r	   r   r4   r3   r5   rê   r   rë   r   r   )Úepsr   rÂ   rF   rF   rI   Útest_dsolve_linsystem_symbolþ	  s   :22ÿrI  N)Úsympy.core.functionr   r   r   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   Úsympy.core.relationalr	   Úsympy.core.singletonr
   Úsympy.core.symbolr   r   Ú%sympy.functions.elementary.hyperbolicr   Ú(sympy.functions.elementary.miscellaneousr   rß   r   Úsympy.core.containersr   Úsympy.functionsr   r   r   r   r   r   r   r   Úsympy.matricesr   r   Úsympy.solvers.oder   Úsympy.solvers.ode.oder   Úsympy.solvers.ode.subscheckr   rà   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   Úsympy.integrals.integralsr,   Úsympy.simplify.ratsimpr-   Úsympy.testing.pytestr.   r/   r0   r1   r2   ÚC0rê   rë   r#  r$  r%  ÚC6ÚC7ÚC8ÚC9ÚC10r3   r4   r5   r6   r[   rË   rå   ré   r  rU  rr  ry  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+  r3  r4  r5  r7  r8  r9  r=  r?  rE  rF  rI  rF   rF   rF   rI   Ú<module>   sÊ    (8%  Fm '
  X  _
x{
.
  +




!


$





*=
