o
    à8VaÑ‚ ã                
   @   s¸  d Z ddlmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z> dd	l?m@Z@ dd
lAmBZBmCZCmDZD ddlEZEe*dƒZFe*dƒZGe	dƒZHe*dƒZIe)dƒZJe)dƒZKe%dƒ\
ZLZMZNZOZPZQZRZSZTZUdZVdZWdZXdZYdZZdZ[dd„ Z\d«dd„Z]d«dd„Z^dd „ Z_d!d"„ Z`d«d#d$„Zag dfd%d&„Zbd'd(„ Zcd)d*„ ZdeCd+d,„ ƒZeeCd-d.„ ƒZfeCd/d0„ ƒZgeCd1d2„ ƒZhd3d4„ ZieCd5d6„ ƒZjeCd7d8„ ƒZkeCd9d:„ ƒZleCd;d<„ ƒZmd=d>„ ZneCd?d@„ ƒZodAdB„ ZpdCdD„ ZqeCdEdF„ ƒZreCdGdH„ ƒZsdIdJ„ ZteCdKdL„ ƒZueCdMdN„ ƒZveCdOdP„ ƒZwdQdR„ ZxeCdSdT„ ƒZyeCdUdV„ ƒZzeCdWdX„ ƒZ{dYdZ„ Z|d[d\„ Z}eCd]d^„ ƒZ~eCd_d`„ ƒZeCdadb„ ƒZ€dcdd„ ZeCdedf„ ƒZ‚dgdh„ Zƒdidj„ Z„dkdl„ Z…dmdn„ Z†dodp„ Z‡dqdr„ Zˆdsdt„ Z‰e\dudv„ ƒZŠe\dwdx„ ƒZ‹e\dydz„ ƒZŒe\d{d|„ ƒZe\d}d~„ ƒZŽe\dd€„ ƒZe\dd‚„ ƒZe\dƒd„„ ƒZ‘e\d…d†„ ƒZ’e\d‡dˆ„ ƒZ“e\d‰dŠ„ ƒZ”e\d‹dŒ„ ƒZ•e\ddŽ„ ƒZ–e\dd„ ƒZ—e\d‘d’„ ƒZ˜e\d“d”„ ƒZ™e\d•d–„ ƒZše\d—d˜„ ƒZ›e\d™dš„ ƒZœe\d›dœ„ ƒZe\ddž„ ƒZže\dŸd „ ƒZŸe\d¡d¢„ ƒZ e\d£d¤„ ƒZ¡e\d¥d¦„ ƒZ¢e\d§d¨„ ƒZ£d©dª„ Z¤dS )¬a‚  
This File contains test functions for the individual hints used for solving ODEs.

Examples of each solver will be returned by _get_examples_ode_sol_name_of_solver.

Examples should have a key 'XFAIL' which stores the list of hints if they are
expected to fail for that hint.

Functions that are for internal use:

1) _ode_solver_test(ode_examples) - It takes a dictionary of examples returned by
   _get_examples method and tests them with their respective hints.

2) _test_particular_example(our_hint, example_name) - It tests the ODE example corresponding
   to the hint provided.

3) _test_all_hints(runxfail=False) - It is used to test all the examples with all the hints
  currently implemented. It calls _test_all_examples_for_one_hint() which outputs whether the
  given hint functions properly if it classifies the ODE example.
  If runxfail flag is set to True then it will only test the examples which are expected to fail.

  Everytime the ODE of a particular solver is added, _test_all_hints() is to be executed to find
  the possible failures of different solver hints.

4) _test_all_examples_for_one_hint(our_hint, all_examples) - It takes hint as argument and checks
   this hint against all the ODE examples and gives output as the number of ODEs matched, number
   of ODEs which were solved correctly, list of ODEs which gives incorrect solution and list of
   ODEs which raises exception.

é    )&ÚacosÚacoshÚasinÚasinhÚatanÚcosÚ
DerivativeÚDummyÚdiffÚcbrtÚEÚEqÚexpÚhyperÚIÚimÚIntegralÚ	integrateÚLambertWÚlogÚMulÚNeÚpiÚ	PiecewiseÚRationalÚreÚrootofÚSÚsinÚsinhÚcoshÚtanÚtanhÚsecÚsqrtÚsymbolsÚEiÚerfi)ÚFunctionÚSymbol)ÚairyaiÚairybiÚbesseljÚbesselyÚ
lowergamma)ÚNonElementaryIntegral)Úclassify_odeÚdsolve)ÚallhintsÚ_remove_redundant_solutions)ÚFirstLinearÚODEMatchErrorÚSingleODEProblemÚSingleODESolverÚNthOrderReducible)Úcheckodesol)ÚraisesÚslowÚ	ON_TRAVISNÚxÚuÚyÚfÚgzC1:11z^Hint did not match the example {example}.

The ODE is:
{eq}.

The expected hint was
{our_hint}z•Different solution found from dsolve for example {example}.

The ODE is:
{eq}

The expected solution was
{sol}

What dsolve returned is:
{dsolve_sol}zFsolution found is not correct for example {example}.

The ODE is:
{eq}a  solution returned by dsolve is incorrect when using {hint}.

The ODE is:
{eq}

The expected solution was
{sol}

what dsolve returned is:
{dsolve_sol}

You can test this with:

eq = {eq}
sol = dsolve(eq, hint='{hint}')
print(sol)
print(checkodesol(eq, sol))

zñdsolve raised exception : {e}

when using {hint} for the example {example}

You can test this with:

from sympy.solvers.ode.tests.test_single import _test_an_example

_test_an_example('{hint}', example_name = '{example}')

The ODE is:
{eq}

zãTested hint was : {hint}

Total of {matched} examples matched with this hint.

Out of which {solve} gave correct results.

Examples which gave incorrect results are {unsolve}.

Examples which raised exceptions are {exceptions}
c                    s   ‡ fdd„}|ƒ S )Nc                     sÒ   ˆ ƒ } g }| d D ]]}| d | d | d | d | d |   dg ¡| d |   d| d ¡|| d |   dd¡| d |   dd	¡| d |   d
d¡| d |   dd¡| d |   dd¡| d dœ}| |¡ q	|S )NÚexamplesÚeqÚsolÚXFAILÚfuncr;   FÚsimplify_flagTÚcheckodesol_XFAILÚdsolve_too_slowÚcheckodesol_too_slowÚhint)rC   rD   rE   rF   Úexample_namer;   rG   rH   rI   rJ   rK   )ÚgetÚappend)ÚsolverrB   ÚexampleZtemp©rF   © úE/usr/lib/python3/dist-packages/sympy/solvers/ode/tests/test_single.pyÚinner‘   s"   õz _add_example_keys.<locals>.innerrR   )rF   rT   rR   rQ   rS   Ú_add_example_keys   s   rU   Fc                 C   sR   | D ]$}|s
|d s|r|d sqt |d |dd}|d dkr&t|d ƒ qd S )Nr;   rK   T)Úsolver_flagÚ	xpass_msgÚ )Ú_test_particular_exampleÚprint)Zode_examplesÚrun_slow_testrP   ÚresultrR   rR   rS   Ú_ode_solver_test§   s   €úr]   c                 C   sB   t tƒdg }tƒ }|D ]}| d¡sd|v rqt||| ƒ qd S )NÚdefaultÚ	_IntegralZseries)Úlistr2   Ú_get_all_examplesÚendswithÚ_test_all_examples_for_one_hint)ÚrunxfailZ	all_hintsÚall_examplesÚour_hintrR   rR   rS   Ú_test_all_hints±   s   ýrg   c                    s,   t |ƒtkrt‡ fdd„|D ƒƒS ˆ  |¡S )Nc                 3   s    | ]}ˆ   |¡V  qd S ©N)Údummy_eq)Ú.0Zsub_dsol©Úexpected_solrR   rS   Ú	<genexpr>½   s   € z"_test_dummy_sol.<locals>.<genexpr>)Útyper`   Úanyri   )rl   Ú
dsolve_solrR   rk   rS   Ú_test_dummy_sol»   s   
rq   c                 C   s*   t ƒ }|D ]}|d |krt| |ƒ qd S )NrL   )ra   rY   )rf   rL   re   rP   rR   rR   rS   Ú_test_an_exampleÂ   s   
€þrr   c              
   C   s’  |d }|d }|d }| |d v }|d }dddœ}|d }	|d	 }
|d
 }|d }d}|rB| t ||ƒvrBtj||| d}t|ƒ‚| t ||ƒv rG||d< z|sZt|||	| d}nt|ƒdkre|d }n|}W n8 ty  } z,g }||d< |s|t ¡  t	jt
|ƒ| ||d|d< |r”|s”t|d ƒ ‚ d}W Y d }~nd }~ww |r9|g kr9d}t|ƒtkrË|D ]}| t¡rÁt||ƒ }n||v}|rÉ nq³n||v}|D ]}| t¡rÞt||ƒ }qÑ|rîtj||||d}t|ƒ‚dd„ tt|ƒƒD ƒ}t|ƒdkrd}|rts9|
s9t|||dd|kr9||d< d}tj| |||d}|r3tj||d}t|ƒ‚d| |d< |rG|rG|d |  |d < |S )!NrC   rD   rL   rE   rF   rX   )ÚmsgrW   rG   rH   rI   rJ   T)rP   rC   rf   Ú
match_list©ÚsimplifyrK   é   r   Úexception_list)ÚerK   rP   rC   rs   F)rP   rC   rD   rp   c                 S   s   g | ]}d ‘qS )©Tr   rR   ©rj   ÚirR   rR   rS   Ú
<listcomp>  s    z,_test_particular_example.<locals>.<listcomp>rz   )Úsolve_for_funcÚunsolve_list)rK   rC   rD   rp   )rP   rC   zAssertionError: zis now passing for the hintrW   )r0   Úhint_messageÚformatÚAssertionErrorr1   ÚlenÚ	ExceptionÚ	tracebackÚ	print_excÚexception_msgÚstrrZ   rn   r`   Zhasr	   rq   Úexpected_sol_messageÚranger<   r9   Údsol_incorrect_msgÚcheckodesol_msg)rf   Úode_examplerV   rC   rl   rP   ÚxfailrF   r\   rG   rH   rI   rJ   ZxpassÚmessagerp   ry   Zexpect_sol_checkZsub_solZexpected_checkodesolrR   rR   rS   rY   É   sŽ   

€€÷
ÿ€
€rY   c                 C   sî   |g krt ƒ }g g g }}}|D ]?}| |d v }|r|sq|r!qt| |ƒ}|| dg ¡7 }|| dg ¡7 }|| dg ¡7 }|d urP|d }	|	dkrPt|d ƒ q|d u rut|ƒ}
t|ƒt|ƒ t|ƒ }tj| |
|||d}	t|	ƒ d S d S )NrE   rt   r   rx   rs   rX   )rK   ZmatchedZsolveZunsolveÚ
exceptions)ra   rY   rM   rZ   rƒ   Úcheck_hint_msgr   )rf   re   rd   rt   r   rx   r   rŽ   r\   rs   Zmatch_countÚsolvedrR   rR   rS   rc     s0   
€ürc   c                     sÔ  t ttƒ t¡ttƒtƒ} t| ƒ‰ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ tt‡ fdd„ƒ t ttƒ t¡ttƒttƒ  ttƒtƒ} t| ƒ‰ tt‡ fdd„ƒ t| ƒ‰ ˆ  	¡ du scJ ‚t ttƒ t¡ttƒ ttƒtƒ} | j
dks{J ‚t ttƒ td	¡ttƒ td
¡ ttƒ td¡ ttƒtƒ} | j
d	ks J ‚t ttƒ td¡ttƒ td
¡ ttƒd
  ttƒtƒ} | jdksÃJ ‚t ttƒ td¡tttƒ td
¡  ttƒd
  ttƒtƒ} | jdksèJ ‚d S )Nc                      ó   ˆ   ¡ S rh   )ÚmatchesrR   ©rO   rR   rS   Ú<lambda>8  ó    z&test_SingleODESolver.<locals>.<lambda>c                      r“   rh   ©Zget_general_solutionrR   r•   rR   rS   r–   9  r—   c                      r“   rh   )Ú_matchesrR   r•   rR   rS   r–   :  r—   c                      r“   rh   )Z_get_general_solutionrR   r•   rR   rS   r–   ;  r—   c                      r“   rh   r˜   rR   r•   rR   rS   r–   D  r—   Frw   é   é   é   T)r6   r@   r=   r
   r7   r:   ÚNotImplementedErrorr4   r5   r”   ÚorderZis_autonomous)ZproblemrR   r•   rS   Útest_SingleODESolver3  s&   *"<8<rŸ   c                   C   ó   t tƒ d S rh   )r]   Ú)_get_examples_ode_sol_linear_coefficientsrR   rR   rR   rS   Útest_linear_coefficientsX  ó   r¢   c                  C   s”   t tƒ t¡t tƒt  } t| t tƒƒ}tt tƒ t¡ t tƒ }t|t tƒƒ}d}d}||vr4||vs6J ‚||vr>||vs@J ‚ttƒ ttƒ d S )NÚ(1st_homogeneous_coeff_subs_dep_div_indepÚ(1st_homogeneous_coeff_subs_indep_div_dep)r@   r=   r
   r0   r]   Ú>_get_examples_ode_sol_1st_homogeneous_coeff_subs_dep_div_indepÚ0_get_examples_ode_sol_1st_homogeneous_coeff_best)Zeq1Zc1Zeq2Zc2ZsdiZsidrR   rR   rS   Útest_1st_homogeneous_coeff_ode\  s   r¨   c                   C   s   t tdd t tdd d S ©NT)r[   )r]   r¦   r§   rR   rR   rR   rS   Ú,test_slow_examples_1st_homogeneous_coeff_odek  s   rª   c                   C   r    rh   ©r]   Ú;_get_examples_ode_sol_nth_linear_constant_coeff_homogeneousrR   rR   rR   rS   Ú*test_nth_linear_constant_coeff_homogeneousq  ó   r­   c                   C   ó   t tdd d S r©   r«   rR   rR   rR   rS   Ú8test_slow_examples_nth_linear_constant_coeff_homogeneousv  ó   r°   c                   C   r    rh   )r]   Ú%_get_examples_ode_sol_2nd_linear_airyrR   rR   rR   rS   Útest_Airy_equation{  r£   r³   c                   C   r    rh   )r]   Ú_get_examples_ode_sol_lie_grouprR   rR   rR   rS   Útest_lie_group  r®   rµ   c                  C   sb   t tƒ t¡} tt tƒ |  ttd t tƒ td t tƒ d  ƒ }t|ƒdks+J ‚ttƒ d S )Nr›   rw   )Úseparable_reducedÚ	lie_groupZseparable_reduced_Integral)r@   r=   r
   r!   r0   r]   Ú'_get_examples_ode_sol_separable_reduced)ÚdfrC   rR   rR   rS   Útest_separable_reduced„  s   8rº   c                   C   r¯   r©   )r]   r¸   rR   rR   rR   rS   Ú$test_slow_examples_separable_reduced  r±   r»   c                   C   r    rh   )r]   Ú,_get_examples_ode_sol_2nd_2F1_hypergeometricrR   rR   rR   rS   Útest_2nd_2F1_hypergeometric’  r®   r½   c                  C   s  t t d  tt ƒ t d¡ dtdƒd t   tt ƒ t ¡  tt ƒ } ttt ƒtttttdt d  t t d   t ƒƒdt d  d  t ƒ  ttdt d  t ƒd ƒ ttdt d  t ƒ d ƒ t	tdƒd dfdt ƒ ƒ}|t
| ddksyJ ‚t| |ƒd	ks‚J ‚d S )
Nrw   r›   éÿÿÿÿé   rš   )rw   Z2nd_hypergeometric_Integral)rK   rz   )r=   r@   r
   r   r   ÚC1ÚC2r   r   r   r1   r9   ©rC   rD   rR   rR   rS   Ú$test_2nd_2F1_hypergeometric_integral—  s,   F0ÿÿÿÿÿÿÿÿþrÃ   c                   C   r    rh   )r]   Ú8_get_examples_ode_sol_2nd_nonlinear_autonomous_conservedrR   rR   rR   rS   Ú'test_2nd_nonlinear_autonomous_conserved   r®   rÅ   c               
   C   sÜ   t tƒ td¡tt tƒƒ } ttdttdtttƒtƒ  ƒ tt tƒfƒt	t ƒttdttdtttƒtƒ  ƒ tt tƒfƒt	t ƒg}t
| ddd}t||ƒD ]\}}| |¡s[J ‚qPt| dd„ |D ƒƒddgkslJ ‚d S )	Nr›   rw   Ú+2nd_nonlinear_autonomous_conserved_IntegralF©rK   rv   c                 S   s   g | ]}|  ¡ ‘qS rR   )Zdoit)rj   ÚsrR   rR   rS   r}   ­  s    zDtest_2nd_nonlinear_autonomous_conserved_integral.<locals>.<listcomp>rz   )r@   r=   r
   r   r   r   r$   rÀ   Ú_urÁ   r1   Úzipri   r9   )rC   Zactualr’   ÚarÈ   rR   rR   rS   Ú0test_2nd_nonlinear_autonomous_conserved_integral¥  s   44ÿ$rÌ   c                   C   r    rh   )r]   Ú'_get_examples_ode_sol_2nd_linear_besselrR   rR   rR   rS   Útest_2nd_linear_bessel_equation°  r£   rÎ   c                  C   sˆ   t tƒt tƒt tƒ t¡  } tt tƒttƒƒtt tƒtttt ƒ ƒg}t| |dtƒ}|tt tƒtttt ƒ ƒgks>J ‚tt	ƒ d S ©Nr›   )
r@   r=   r
   r   r   rÀ   rÁ   r3   r]   Ú#_get_examples_ode_sol_nth_algebraic)ZeqnZsolnsZsolns_finalrR   rR   rS   Útest_nth_algebraic´  s   ÿ$rÑ   c                   C   r¯   r©   ©r]   Ú2_get_examples_ode_sol_nth_linear_var_of_parametersrR   rR   rR   rS   Ú>test_slow_examples_nth_linear_constant_coeff_var_of_parameters¿  r±   rÔ   c                   C   r    rh   rÒ   rR   rR   rR   rS   Ú0test_nth_linear_constant_coeff_var_of_parametersÄ  r£   rÕ   c                  C   s²   d} t tƒ td¡dt tƒ td¡  t tƒ t¡ dt  ttt ƒ }t|t tƒ| dd}t|t tƒ| dd}||ks?J ‚t||dddd	ksKJ ‚t||dddd	ksWJ ‚d S )
NZ:nth_linear_constant_coeff_variation_of_parameters_Integralé   r›   rœ   TrÇ   F©rž   r~   rz   )r@   r=   r
   r   r   r1   r9   )rf   rC   Zsol_simpZ	sol_nsimprR   rR   rS   Ú@test_nth_linear_constant_coeff_variation_of_parameters__integralÈ  s   FrØ   c                   C   r¯   r©   ©r]   Ú_get_examples_ode_sol_1st_exactrR   rR   rR   rS   Útest_slow_examples_1st_exactÖ  r±   rÛ   c                   C   r    rh   rÙ   rR   rR   rR   rS   Útest_1st_exactÛ  r®   rÜ   c                  C   sb   t ttƒƒttttƒƒ ttƒd  ttƒ t¡  } t| ttƒddd}t| |ddds/J ‚d S )Nr›   FZ1st_exact_Integralru   rw   r×   )r   r@   r=   r   r
   r1   r9   )rC   Zsol_1rR   rR   rS   Útest_1st_exact_integralà  s   6rÝ   c                   C   r¯   r©   )r]   Ú)_get_examples_ode_sol_nth_order_reduciblerR   rR   rR   rS   Ú&test_slow_examples_nth_order_reducibleæ  r±   rß   c                   C   r¯   r©   )r]   Ú:_get_examples_ode_sol_nth_linear_undetermined_coefficientsrR   rR   rR   rS   ÚFtest_slow_examples_nth_linear_constant_coeff_undetermined_coefficientsë  r±   rá   c                   C   r¯   r©   ©r]   Ú_get_examples_ode_sol_separablerR   rR   rR   rS   Útest_slow_examples_separableð  r±   rä   c                  C   sF   t tttƒtƒtttƒ tj t ƒ} d}|t| ƒv sJ ‚tt	ƒ d S )NÚ3nth_linear_constant_coeff_undetermined_coefficients)
r   r
   r@   r=   r   r   ÚHalfr0   r]   rà   )rC   rf   rR   rR   rS   Ú8test_nth_linear_constant_coeff_undetermined_coefficientsõ  s   &rç   c                  C   sF  dd„ } t }| |tttƒ ttƒ|ttƒtƒ ƒdksJ ‚| |tttƒ ttƒ|ttƒtƒ ƒdks4J ‚| ttƒ|ttƒtƒ |ttƒtdƒ ƒdksMJ ‚| |tttƒ tdƒ|tt ttƒ tdƒ ƒdksiJ ‚| |ttƒtdƒ|ttƒtdƒ |ttƒtdƒ ƒdks‡J ‚| |ttƒtdƒ|ttƒtdƒ ƒdksJ ‚ttƒ d S )Nc                 S   s   t t| ttƒtƒƒ ¡ S rh   )r8   r6   r@   r=   r™   )rC   rR   rR   rS   r–      s    z*test_nth_order_reducible.<locals>.<lambda>Fr›   rœ   rš   T)r   r?   r@   r=   r>   r]   rÞ   )ÚFÚDrR   rR   rS   Útest_nth_order_reducibleÿ  s   ..28<,rê   c                   C   r    rh   râ   rR   rR   rR   rS   Útest_separable  r®   rë   c                   C   sH   t ttdt ƒt ƒ tƒttttdt ƒ ƒtƒ ksJ ‚ttƒ d S rÏ   )r   r   r@   r=   r   r   r]   Ú _get_examples_ode_sol_factorablerR   rR   rR   rS   Útest_factorable  s   <rí   c                   C   r¯   r©   )r]   rì   rR   rR   rR   rS   Útest_slow_examples_factorable  r±   rî   c                   C   r    rh   )r]   Ú_get_examples_ode_sol_riccatirR   rR   rR   rS   Útest_Riccati_special_minus2  r£   rð   c                   C   r    rh   )r]   Ú*_get_examples_ode_sol_1st_rational_riccatirR   rR   rR   rS   Útest_1st_rational_riccati  r®   rò   c                   C   r    rh   )r]   Ú_get_examples_ode_sol_bernoullirR   rR   rR   rS   Útest_Bernoulli$  r£   rô   c                   C   r    rh   )r]   Ú _get_examples_ode_sol_1st_linearrR   rR   rR   rS   Útest_1st_linear(  r£   rö   c                   C   r    rh   )r]   Ú#_get_examples_ode_sol_almost_linearrR   rR   rR   rS   Útest_almost_linear,  r£   rø   c                  C   sà   d} t tttƒtƒt ttƒtttƒttƒ d  tttƒtƒd d  ttƒƒ}t tttƒtƒt tttƒttƒd  ttttƒtƒd  d  ttƒƒ}| |vsTJ ‚| |vsZJ ‚| d |vsbJ ‚| d |vsjJ ‚ttƒ d S )NÚ	Liouviller›   r_   )r0   r
   r@   r=   r]   Ú_get_examples_ode_sol_liouville)rK   Znot_Liouville1Znot_Liouville2rR   rR   rS   Útest_Liouville_ODE0  s    .ÿÿ&ÿÿrû   c                  C   sÈ   t dƒ\} }}}}tdƒ}d}tt|ƒ|dƒ|d  dtt|ƒ|dƒ |d   dt|ƒ  }|t|ƒv s7J ‚|||ƒ || t||ƒ|ƒ  ||d  t||ƒ|dƒ  }|t|ƒv s^J ‚ttƒ d S )Nz	x t a b cr?   Únth_linear_euler_eq_homogeneousrš   é   r›   é$   )r%   r(   r
   r@   r0   r]   Ú'_get_examples_ode_sol_euler_homogeneous)r=   ÚtrË   ÚbÚcr?   rf   rC   rR   rR   rS   Ú*test_nth_order_linear_euler_eq_homogeneous>  s   @>r  c                  C   sê   t dƒ\} }t ddd\}}}}d}| d tt| ƒ| dƒ d| d  tt| ƒ| dƒ  d	t| ƒ  |  }|t|t| ƒƒv s?J ‚|| d  tt| ƒ| dƒ ||  tt| ƒ| ƒ  |t| ƒ  |t| ƒ  }|t|t| ƒƒv soJ ‚ttƒ d S )
Nzx tza b c dT©ZintegerÚ<nth_linear_euler_eq_nonhomogeneous_undetermined_coefficientsrš   rý   r›   rþ   )r%   r
   r@   r0   r   r]   Ú._get_examples_ode_sol_euler_undetermined_coeff©r=   r   rË   r  r  Údrf   rC   rR   rR   rS   ÚGtest_nth_order_linear_euler_eq_nonhomogeneous_undetermined_coefficientsL  s   DJr	  c                  C   s  t dƒ\} }t ddd\}}}}d}t| d tt| ƒ| dƒ d|  tt| ƒ| ƒ  dt| ƒ  | d ƒ}|t|t| ƒƒv s?J ‚t|| d	  tt| ƒ| d	ƒ || d  tt| ƒ| dƒ  ||  tt| ƒ| ƒ  |t| ƒ  | t| ƒ ƒ}|t|t| ƒƒv s~J ‚ttƒ d S )
Nzx, tz
a, b, c, dTr  Ú:nth_linear_euler_eq_nonhomogeneous_variation_of_parametersr›   é   é   rœ   )r%   r   r
   r@   r0   r   r]   Ú$_get_examples_ode_sol_euler_var_parar  rR   rR   rS   ÚEtest_nth_order_linear_euler_eq_nonhomogeneous_variation_of_parametersZ  s   Dhr  c                  C   s   dd„ t dƒD ƒ\} }}}}dttƒtdtttƒtƒ t dtd  tttƒttƒ  dƒtttƒttttddƒ   ƒgdœtd	ttƒ dtttƒtƒ t  dtd  tttƒttƒ  dƒtttƒtttƒ ttd	   ƒgdœtd
ttƒ dtttƒtƒ t  td tttƒttƒ  dƒtttƒttt	tƒ  td  ƒgdœtdttƒ dtttƒtƒ t  dtd  tttƒttƒ  td	 tttƒtttƒ  dƒtttƒttd  tt  t
td	   ƒgdœtdttƒ dtttƒtƒ t  dtd  tttƒttƒ  td	 tttƒtttƒ  dƒtttƒtd ttt	tƒ  t
t	tƒd    ƒgdœtd tttƒtdƒ ttttƒtƒ  dttƒ  tttƒttd  ttd	   ƒgdœttƒtd  ttƒ td¡ ttƒt ttƒ t¡  ttƒttƒ  tttƒttt	tƒƒ ttt	tƒƒ  ƒgddgdœtd ttƒ td¡ tttƒ t¡  ttƒ tttƒtt tt|    t
t|   tt|   tt|   tt|   ƒgddœttttƒ tttƒtttƒttt  t
t  ƒgdœdœ	dœS )Nc                 S   sJ   g | ]!}t td  dtd   dtd   dtd   dt  d |ƒ‘qS )	rÖ   é   rš   éG   rœ   éš   r›   éx   rw   ©r   r=   ©rj   ÚnrR   rR   rS   r}   j  s   J z;_get_examples_ode_sol_euler_homogeneous.<locals>.<listcomp>rÖ   rü   éýÿÿÿr›   r   rÂ   rœ   rš   é   rw   iƒÿÿÿé=   r  é	   Z2nd_power_series_regularr  ©rC   rD   rE   T©rC   rD   rH   )	Zeuler_hom_01Zeuler_hom_02Zeuler_hom_03Zeuler_hom_04Zeuler_hom_05Zeuler_hom_06Zeuler_hom_07Zeuler_hom_08Zeuler_hom_09©rK   rF   rB   )rŠ   r@   r=   r   r
   rÀ   rÁ   r   r$   r   ÚC3r   r   ÚC4ÚC5ÚC6r   )Úr1Úr2Úr3Úr4Úr5rR   rR   rS   rÿ   h  sD   6 þB"þ>"þ\*þ\2þ4"þH*ý0Ný	þÓýrÿ   c                   C   s"  dt tƒttd tt tƒttƒ ttt tƒtƒ  dƒtt tƒttttƒ  ttƒd d  ƒgdœttd tt tƒttƒ dt tt tƒtƒ  dt tƒ  td ƒtt tƒtttt  tddƒtd    ƒgdœttd tt tƒttƒ ttt tƒtƒ  dt tƒ  ttƒt ƒtt tƒtttd   ttƒd d  ttƒd  t ƒgdœttd tt tƒttƒ dt tt tƒtƒ  dt tƒ  ttƒd ttƒ ƒtt tƒttd  ttd   tddƒttƒd   tdd	ƒttƒd   tdd
ƒttƒ  tddƒ ƒgdœttd tt tƒtttƒ dtd  tt tƒttƒ  dt tt tƒtƒ  dt tƒ  ttƒƒtt tƒtt ttd   ttd   tddƒttƒ  tddƒ ƒgdœdtd  t tƒ td¡ t tƒ t	dt ƒt
tdt ƒd ƒ  tt tƒt	tƒtt
ttƒd ƒ ttttƒd ƒ  t	dƒttƒ ttdt ƒd ƒ d   ƒgdœdtd  t tƒ td¡ t tƒ t
tdt ƒd ƒ tt tƒtt	tƒ t
ttƒd ƒ tt	tƒ tttƒd ƒ  dt
tdt ƒd ƒ d  dttdt ƒd ƒ d  ƒgdœdœdœS )Nr  r›   rw   rÂ   rœ   rš   r  é   é    é@   r¿   é   r  é   rþ   rÖ   )Zeuler_undet_01Zeuler_undet_02Zeuler_undet_03Zeuler_undet_04Zeuler_undet_05Zeuler_undet_06Zeuler_undet_07r  )r@   r=   r   r
   rÀ   rÁ   r   r   r  r$   r   r   rR   rR   rR   rS   r  £  s2   .*þB,þB:þNjþ`FþBbþ6zþàýr  c                   C   s  dt tƒttd tt tƒttƒ dt tt tƒtƒ  dt tƒ  td ƒtt tƒtttt  td d   ƒgdœtdtd  tt tƒttƒ dt tt tƒtƒ  dt tƒ  td ttƒ ƒtt tƒttd  tt  tttƒ d  dttƒ d  dttƒ dt   dttƒ dtd    ƒgdœttd tt tƒttƒ dt tt tƒtƒ  dt tƒ  td ttƒ ƒtt tƒtttt  tttƒ  dttƒ   ƒgdœtd tt tƒttƒ dt tt tƒtƒ  dt tƒ  ttƒ tt tƒtt ttd   ttƒd  t	ddƒ ƒgdœttƒ ttt tƒtdfƒ tt tƒtƒ t  tt tƒttttƒ  ttƒ t
tƒ ƒgdœtd t tƒ td¡ tt tƒ t¡  dt tƒ  dt  tt tƒttdttƒ ƒ ttdttƒ ƒ  dd	t   ƒgdœd
œdœS )Nr
  r›   rš   rœ   r  rÂ   r  rw   rÖ   )Zeuler_var_01Zeuler_var_02Zeuler_var_03Zeuler_var_04Zeuler_var_05Zeuler_var_06r  )r@   r=   r   r   rÀ   rÁ   r
   r   r   r   r&   r   r   rR   rR   rR   rS   r  Ð  s,   B&þNjþJ2þ@4þ0*þ<>þæýr  c                   C   sä   dt tƒttt tƒ t¡ t tƒ t tƒd  dƒtt tƒdtt d  ƒgdgdœt tƒ t¡tt tƒ  tt tƒtttt ƒ ƒgdœt tƒt tƒ t¡ d tt tƒttdt  ƒ ƒtt tƒttdt  ƒƒgdœdœd	œS )
NÚ	Bernoullir›   r   rw   r¶   r  rÂ   )Zbernoulli_01Zbernoulli_02Zbernoulli_03r  )r@   r=   r   r
   rÀ   r?   r   r$   rR   rR   rR   rS   ró   ÷  s   *ýþ4þôýró   c                   C   s†   dt tƒddt tƒ t¡ t tƒd  t tƒt  dtd   tt tƒtdƒ tttdƒttƒ d  ƒ d dt  ƒgdœidœS )	NZRiccati_special_minus2Z
riccati_01r›   rœ   éþÿÿÿrš   rÂ   r  )r@   r=   r
   r   r$   r!   rÀ   r   rR   rR   rR   rS   rï     s   4<þÿýrï   c                   C   sn  dt tƒtt tƒ t¡t tƒd  d dƒtt tƒtdƒt tdtdƒ t ƒ  ttdtdƒ t ƒ  ƒgdœt tƒd tt tƒtƒ dt tƒ t  dtd   tt tƒdt t ttt   ƒgdœdtd  tt tƒtƒ tdt tƒ tt tƒtƒ d   t tƒd t tƒ  tt tƒtdtd   tt  ƒgdœt tƒ t¡d d	t tƒ  t tƒd  tt tƒdt d
ttƒ  tttƒ  ƒgdœtd dt dt  t tƒ  t tƒd  tt tƒtƒ tt tƒtttd  d  ttd  d  ƒgdœtd tt tƒtƒ td  tdt tƒd  tt tƒtƒ   t tƒ tt tƒttt t d  ttd  d  ƒgdœt tƒd  tt tƒtƒ dtd  dt  d td d dt d d    tt tƒdt t dt  dtd	   dtd   dtd
   dtd   dt  d dt td  dt t  d
t  dtd   dtd	   dtd   dtd
   dtd   d
t  d  ƒgdœtt tƒtƒd
td  d t tƒd  t  dtd  t d
 t tƒ ttd    d
td  dt  d ttd d    tt tƒt td
  td  dt  d tt t td  td
  td  dt  d  ƒgdœtt tƒtƒdt t tƒd d  t  tt tƒt t ttd   t ttd  d  ƒgdœttt tƒtƒtt tƒ t	d
ƒd dt   td t	dƒd
  t tƒd  dt d
 t	dƒd    t	d	ƒd  dtd  dt  d dtd
  dtd     ƒtt tƒdt td  dt td   d t td   d!t td"   d#t td$   d%t td   d&t td   d't td   d(t td   d)t td	   d*t td   d+t td
   d,t td   d-t t  d.t  ttdt ƒ  dtdt ƒ  td/t td  d0t td   d1t td"   d2t td$   d3t td   d%t td   d4t td   d5t td   d6t td	   d7t td   d8t td
   d9t td   d9t t  d:t  tdt ƒ   ƒgdœd;œ
d<œS )=NZ1st_rational_riccatir›   r   rÂ   rš   r,  rw   r  rÖ   rœ   é   é   r¿   r  é<   é^   éH   é!   r  é   é9   é:   é   i  iì  iô  r&  r  é(   r  rý   i¤  i|  r*  i0H  é
   i– iFî i4å" i˜<… iî±i2Òi"0Â	iÐimë–i…^Èé   éŒ   iH  i  i<Z  i8X iÄ4 iLžB i¾‹¦ i|Mi:£óiÑù )
Zrational_riccati_01Zrational_riccati_02Zrational_riccati_03Zrational_riccati_04Zrational_riccati_05Zrational_riccati_06Zrational_riccati_07Zrational_riccati_08Zrational_riccati_09Zrational_riccati_10r  )
r@   r=   r   r
   r$   rÀ   r   r   r   r   rR   rR   rR   rS   rñ      sä   "Dþ4"þN"þ(*þ8.þF.þ@ÿÿJÿÿF
ÿ
ÿÿÿÿýJ	ÿ&ÿJÿÿý(4þJÿ
ÿ.ÿFÿÿÿÿþþþþý
ýýýýPÿÿÿÿþþþ
þý
ýüýËýrñ   c                   C   s”   dt tƒdtt tƒ t¡tt tƒ  td ƒtt tƒttttd d ƒ  tdƒttƒ ttdƒt d ƒ d  ttd  d ƒ ƒgdœidœS )NÚ
1st_linearZ	linear_01r›   rÂ   r  )	r@   r=   r   r
   rÀ   r   r$   r   r'   rR   rR   rR   rS   rõ   m  s   "\þÿýrõ   c                  C   sî
  t dƒ} tdƒ\}}}}}dttƒi dttƒttƒttƒ t¡  tttƒdƒtttƒtt ƒgg d¢dœ“dttƒttƒ t¡ttƒt  d	  tttƒttd	ƒttƒ t	td	ƒt d	 ƒ  t
td	  d	 ƒ ƒtttƒdƒgg d
¢dœ“dttƒ t¡ttƒtd	   ttƒ td	¡tttƒ   tttƒttt ƒ ttt ƒ  ƒtttƒtt
td  d ƒ ƒgdœ“dttƒ t¡ttƒtd	   ttƒ td	¡ttƒ  tttƒtt
td  d ƒ ƒtttƒtttƒ tttƒ  ƒgdœ“dttƒ t¡d	 d ttƒ t¡d	 d  tttƒtt ƒtttƒtt ƒtttƒtd	t  ƒtttƒtd	t  ƒgdœ“dttƒ td	¡t
ttƒƒ ttƒ t¡ tttƒtttttdt ƒ tt  ƒd  ƒƒtttƒtttttdt ƒ tt  ƒd  ƒƒtttƒtƒgddœ“dttƒ t¡d	 d ttƒttƒ t¡ d  tttƒtt ƒtttƒttd	t  ƒ ƒtttƒttd	t  ƒƒtttƒtt ƒgdœ“dtttƒtƒd d	tttƒtƒd	   d tttƒtt ƒtttƒtt ƒgdœ“dttƒd	 tttƒtƒd  d	ttƒd	  tttƒtƒd   ttƒd	 tttƒtƒd	   d	ttƒ tttƒtƒd   dttƒ tttƒtƒd   d	ttƒ tttƒtƒ  tttƒtƒd  d	tttƒtƒd	   d tttƒtt ƒtttƒttd	t  ƒ ƒtttƒttd	t  ƒƒtttƒtt ƒgdœ“dtd ttƒd	  d	td  ttƒ tttƒtd	fƒ  td tttƒtd	fƒd	   d	td  ttƒ tttƒtƒ  d	td  tttƒtƒ tttƒtd	fƒ  dtd	  ttƒd	   dtd	  ttƒ tttƒtd	fƒ  td	 tttƒtƒd	   dt ttƒ tttƒtƒ  dttƒd	   tttƒttd	tƒ ttd	tƒ  ƒtttƒtttdƒtƒ tttdƒtƒ  ƒgddœ“dttƒ td	¡t
ttƒƒ ttƒ td	¡t
ttƒƒ  tttƒtttttdt ƒ tt  ƒd  ƒƒtttƒtttttdt ƒ tt  ƒd  ƒƒtttƒttdtttdt ƒ tt  ƒ  ƒƒtttƒttdtttdt ƒ tt  ƒ  ƒƒgddœ“d t
ttƒ t¡ƒttƒd	  ttdt| d	 ƒ | ttƒfƒtt ƒgd!gdœ“d"ttƒ t¡d	 ttƒd  tttƒdtd	 d	t t  td	   ƒgd!gdœ“d#ttƒ t¡d	 ttƒ tttƒtd	 d tt d	  td	 d  ƒgdœ“d$ttƒ t¡d	 ttƒd	  tttƒtt
tƒ ƒtttƒtt
t ƒ ƒgdœ“d%ttƒ t¡d	 ttƒd  tttƒdtd	 d	t t  td	   ƒgdœ“d&ttƒ t¡|td  |td   |td	   |t  | d'  tttƒttdt||t  |td	   |td   |td   ƒ tƒ ƒgddœ“ttd	t ƒ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ƒ ƒgdd(œtttƒtƒd	 td  tttƒtd	ttdd	ƒ  d  ƒtttƒtd	ttdd	ƒ  d  ƒgdœtttƒ td	¡ tttƒ  tttƒtt
t ƒ tt
tƒ  ƒgdœd)œ¥d*œS )+zß some hints are marked as xfail for examples because they missed additional algebraic solution
    which could be found by Factorable hint. Fact_01 raise exception for
    nth_linear_constant_coeff_undetermined_coefficientsr?   za0, a1, a2, a3, a4Ú
factorableZfact_01r   )Ú	separableÚ	1st_exactr;  r+  Ú1st_homogeneous_coeff_bestr¥   r¤   r·   r  Ú1nth_linear_constant_coeff_variation_of_parametersr
  rå   r  Zfact_02r›   )r+  r;  r·   Zfact_03rœ   rÂ   Zfact_04Zfact_05rw   rš   Zfact_06r¾   T©rC   rD   r;   Zfact_07Zfact_08Zfact_09r  rÖ   Zfact_10r¿   r  Zfact_11©rC   rD   rI   Zfact_12r·   Zfact_13Zfact_14Zfact_15Zfact_16Zfact_17g      à¿r  )Zfact_18Zfact_19Zfact_20r  )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?   Za0Za1Za2Úa3Za4rR   rR   rS   rì   |  sT  ýÿ$Pýô8Dþî4@þé*Jþä!(00ýùß+.TþÕ0*"þÐ52ÿÿÿÿÿÿþÿþýýý*(þûË@Fÿÿ ÿÿÿÿþÿþýýý$,þ÷ÀL60000üø´X(ý¨^*ý¢d.þœi,þ—n*þ’t@LýŒ|JýFþ$þ øýrì   c                  C   s¨  ddl m}  tddd}tdƒ}|tƒ t¡}d|tƒtd |tƒd  | |tƒd	  d
 t|tƒttd	t ƒ d
 t	d
d	ƒ ƒt|tƒdt
d	ƒt  ttd	t ƒ d
 t	d
d	ƒ  d ƒt|tƒdt
d	ƒt  ttd	t ƒ d
 t	d
d	ƒ  d ƒgdœt|tƒ | dt |tƒd   d
 t|tƒt
td| dt ƒ  tdt ƒ ƒ ƒt|tƒt
td| dt ƒ  tdt ƒ ƒƒgdœt| t|tƒ  d
 t|tƒt| tƒ tt ƒ ƒgdœtt|tƒƒ | t|tƒƒ d	t  t|tƒttt tt	d	dƒ  ƒƒgdœt|tt|tƒtƒ |tƒ   t|tƒtƒ |tƒ d t|tƒtttt|d
 dƒf| t | t d
 ttƒ |d
  dfƒ tt ƒ ƒgdœdœdœS )Nr   )r&   ÚAT©Zpositiver@   Zalmost_linearr›   rœ   rw   r¾   rÂ   rš   éüÿÿÿ)Zalmost_lin_01Zalmost_lin_02Zalmost_lin_03Zalmost_lin_04Zalmost_lin_05r  )Úsympyr&   r)   r(   r=   r
   r   rÀ   r   r   r$   r   r   r   )r&   rD  r@   r  rR   rR   rS   r÷     s<   &&::þþ&	\þ þ&$þ:8ÿÿþèýr÷   c                  C   s–  t dƒ} tdƒ}dttƒtttƒtƒt tttƒttƒd  tttƒtƒd d  tttƒttttt   ƒƒgdœttt	ttƒ ƒ ttƒtttƒttttt   ƒƒgdœtttƒtƒt tttƒttƒd  tttƒtƒd d  t	ttƒ ƒ t	ttƒƒ  
¡ tttƒttttt   ƒƒgdœtttƒttƒdttƒ tttƒtƒd   dt tttƒtƒ  tttƒtttttƒ  ƒ ƒtttƒtttttƒ  ƒƒgdœttttƒttƒ tttƒ tttƒtƒd   ttttƒtƒ  tttƒtttt	t ƒ  ƒ ƒtttƒtttt	t ƒ  ƒƒgdœttt	ttƒƒ  tt¡dƒtttƒtttt  ƒƒgdœtttƒtƒt tttƒttƒd  tttƒtƒd d  t	ttƒ ƒ t	ttƒƒ tttƒttttt   ƒƒgdœtd tttƒtƒ | ttƒ ttƒd  tttƒtƒd   tttƒtdfƒ tttttddƒtd d ƒ  tt	|d d ƒt	|d |  d ƒ |ttƒfƒ dƒgdœd	œd
œS )Nr  r?   rù   r›   rÂ   rw   r   rœ   )Zliouville_01Zliouville_02Zliouville_03Zliouville_04Zliouville_05Zliouville_06Zliouville_07Zliouville_08r  )r)   r	   r@   r=   r
   r   r   rÀ   rÁ   r   Úexpandr$   r.   r   r/   )r  Z_yrR   rR   rS   rú   B  s<   :þþXþB<þB@þþTþPXþÛýrú   c                  C   s8  t dƒ\} }}}tdƒ}tdƒ}dttƒi dttƒttƒ t¡ ttƒ tt¡ ttƒd  ttƒ t¡t  tttƒttd d  ƒtttƒttt  ƒgdœ“d	ttƒttƒ t¡ ttƒ tt¡ ttƒd  tttƒttt  ƒgdœ“d
ttƒttƒ t¡ ttƒ tt¡ tttƒttt  ƒgdœ“dt|  ||ƒ |¡ t	ddƒ| |d  ||ƒ |¡ ||ƒ ||¡ ƒt||ƒtƒt||ƒtt|  | |d  d| |d    ƒg||ƒdœ“ddt
ttƒƒ ttƒ t¡ tttƒtƒgdgdœ“dtttƒƒt tttƒƒt  tttƒttd d  ƒtttƒttd d  ƒgdœ“dttttƒtƒtttƒtƒƒtttƒtttƒ ƒgdœ“dttƒ t¡t tttƒtt t ƒgdœ“dttƒttƒ t¡ tttƒtƒgdœ“dtttƒƒt tttƒƒt  tttƒttd d  ƒtttƒttd d  ƒgdœ“dttƒttƒttƒ t¡  tttƒdƒtttƒtt ƒgg d¢dœ“dttttƒ tttƒtttƒttt  ttd   t ƒgdgdœ“dttttttƒtƒ tƒt ttƒƒtttƒttttƒ  ttƒ ttƒ ƒgdgdœ“dtttƒ t¡dƒtttƒtƒgdœ“dtdttƒ t¡ d dƒtttƒttt	ddƒ  ƒgdœ“dtdttƒ t¡ dƒtttƒttt	ddƒ  ƒgdœ“dtdttƒ t¡ d dƒtttƒttd  ƒgdœ“ttttƒ t¡ d dƒtttƒtttƒ ƒgdœttƒ t¡tt| t ƒ  tttƒtt| t d t| t ƒ |d  t|d dƒftd d d fƒ ƒgdœttƒ t¡ tt| t ƒ  tttƒtt| t d t| t ƒ |d  t|d dƒftd d d fƒ ƒgdœtttƒ t¡ t¡td d td d  ƒtttƒttt  td d!  dtd"  d  d#td  d$  d#td  d  ƒgttƒdœttƒ t¡tttƒ t¡  tttƒttttƒ  ƒgttƒdœttƒ t¡dt  dtd   tttƒtdt t  td  ƒgdœd%œ¥d&œS )'NzM m r tÚphiÚkZnth_algebraicZalgeb_01rw   r›   rÂ   Zalgeb_02Zalgeb_03Zalgeb_04rœ   ©rC   rD   rF   Zalgeb_05r=  r  Zalgeb_06Zalgeb_07Zalgeb_08Zalgeb_09Zalgeb_10Zalgeb_11r   )r=  r>  r;  r+  r?  r¥   r¤   r·   rå   r  r@  r
  Zalgeb_12Zalgeb_13Zalgeb_14Zalgeb_15rÖ   Zalgeb_16Zalgeb_17Tr.  rš   é   r  )Zalgeb_18Zalgeb_19Zalgeb_20Zalgeb_21Zalgeb_22Zalgeb_23r  )r%   r(   r)   r@   r=   r
   r   rÀ   rÁ   r   r   r   rA   r  r   r   r&   r   r   )ÚMÚmÚrr   rI  rJ  rR   rR   rS   rÐ   v  sò   B.þÿ0þú$þõ2ÿ>üðýé2þã"þÞ'þÙ,þÔ12þÏ6ýÊB&ý¾H$*ý¸Oþ±Tþ¬Yþ§_þ¡eþRþ Rþ,Rýý "þ üýrÐ   c                   C   sZ  dt tƒtttt tƒtƒd  tt tƒtdƒ dƒtt tƒttdt ƒtt tdt ƒ t ƒ  tdt ƒtttdt ƒ t ƒ  ƒgddœttƒ ttt tƒtdfƒ tt tƒtƒ t  tt tƒttttƒ  ttƒ t	tƒ ƒgddœttdƒt tƒ 
ttt¡ t tƒ 
t¡ dƒtt tƒtttdtddƒ t d ƒ  ttdtddƒ t d ƒ  ƒgddœt tƒ 
td¡dt tƒ 
t¡  tt tƒtttd	t ƒ  ƒgd
œt tƒ 
td¡t tƒ 
td¡ dt tƒ 
t¡  tt tƒtttdt ƒ  ttdt ƒ  ƒgddœt tƒ 
td¡t tƒ 
td¡ dt tƒ 
td¡  dt tƒ 
t¡  tt tƒtttd	t ƒ  tttƒ  ttdt ƒ  ƒgddœt tƒ 
td¡dt tƒ 
td¡  tt tƒttt  ttd   ttdt ƒ  ƒgddœt tƒ 
td¡dt tƒ 
td¡  tt tƒttt  tttdƒ t ƒ  tttdƒt ƒ  ƒgddœt tƒ 
td¡dt tƒ 
td¡  tt tƒttt  ttdt ƒ  ttdt ƒ  ƒgddœt tƒ 
td¡dt tƒ 
td¡  t tƒ 
t¡ tt tƒttt ttƒ  tttƒ  tt ttƒ  tttƒ  tttƒ  tttƒ  ƒgddœt tƒ 
td¡t tƒ 
t¡d  tt tƒttdƒtdtt  ƒ tt   ƒtt tƒttdƒtdtt  ƒ tt   ƒgddœttt tƒ tttƒtt tƒtttƒ tt tƒtttdtd dt  d dd  ttttdtd dt  d dd    ƒgddœdœdœS )NZnth_order_reducibler›   r   r¾   TrA  rœ   rš   r,  rÂ   r  r  rÖ   rw   F)Zevaluate)Zreducible_01Zreducible_02Zreducible_03Zreducible_04Zreducible_05Zreducible_06Zreducible_07Zreducible_08Zreducible_09Zreducible_10Zreducible_11Zreducible_12r  )r@   r=   r   r   rÀ   r$   rÁ   r   r   r&   r
   r   r   r  r   r  r  r   rR   rR   rR   rS   rÞ     sv   *0"ÿü0*ý,Jý þ0.ý2ÿ:ü"2ý"@ý"6ý0^ý ,,ÿü&	,(ÿüºýrÞ   c                  C   s¤  t t ƒ} ttƒ td¡}dttƒ td¡ d|  ttƒ t¡ ttƒ t }tdƒ}tdtd}tddd	\}}}}}	td
ƒ}
dttƒi d|t|   tttƒtt td ƒ t t	tt
td d  dt d    t t ƒ  d ƒgddœ“d||  tttƒtt td ƒ t t	tt
td    t t ƒ  d ƒgddœ“d|dttƒ t¡  dttƒ  d tttƒt	t dt ƒ t
t t ƒ  d ƒgddœ“d|dttƒ t¡  dttƒ  dt tƒ  tttƒt	t dt ƒ t
t t ƒ  dt tƒ  ƒgddœ“d|dttƒ t¡  dttƒ  t tt ƒ tttƒtdƒd td  t	t dt ƒ t
t t ƒ  tt tt ƒ   ƒgddœ“d|dttƒ t¡  dttƒ  ttƒ tttƒt	t dt ƒ t
t t ƒ  ttƒd  dttƒ d  ƒgddœ“d|dttƒ t¡  dttƒ  ttƒ tttƒt	t dt ƒ t
t t ƒ  dttƒ d  ttƒd  ƒgddœ“d|dttƒ t¡  dttƒ  ddt tƒ  dttƒ   tttƒt	t dt ƒ t
t t ƒ  t tƒ ttƒd  dttƒ d  d ƒgddœ“d|ttƒ t¡ ttƒ td  tttƒdt td  t	tttdƒ d ƒ t
tttdƒ d ƒ  t t d ƒ  ƒgddœ“d|dttƒ t¡  dttƒ  d t t tƒ  dt t ƒ  tttƒt t tƒ dt t ƒ  t	t dt ƒ  t
t dt ƒ  ƒgddœ“d!|dttƒ t¡  dt dt ƒ ttƒ  tttƒt	t
t dt ƒ  dt dt ƒ ttƒ d  t dt ƒttƒ d  ƒgddœ“d"ttƒ td¡d|  ttƒ t ttƒ tttƒtttƒd  t	t
t  t t ƒ  ttt  t tƒ  ƒgddœ“d#|ttƒ t¡ td  dt  tttƒt	td d  t
t t ƒ  ƒgddœ“d$|ttƒ t¡ t tdt ƒ tttƒt	t tdt ƒd  tdt ƒd  td d  t
t t ƒ  ƒgddœ“d%|ttƒ dt ttƒ  tttƒt	td  ttƒ t
t ttƒ  ƒgddœ“d&|dttƒ  ttdt ƒ  tttƒt	td d  tdt ƒ t
td'  tdt ƒ  ƒgddœ“d(|dttƒ t¡  ttƒ td t t ƒ  tttƒt	tt
td d    t t ƒ ƒgddœ“i d)ttƒ td¡d|  dttƒ t¡  ttƒ dt t ƒ  td t t ƒ  tttƒt	tt
tttd d*  td      t t ƒ ƒgddœ“d+|dttƒ t¡  dttƒ  t dt ƒ td  tttƒt
t t ƒ td d  ttddƒ  t	t t dt ƒ  td,dƒ ƒgddœ“d-|dttƒ t¡  dttƒ  tt t ƒ  tttƒt	t tƒ t
t dt ƒ  dt d t t ƒ d.  ƒgddœ“d/|ttƒ t¡ dttƒ  t t dt ƒ tttƒtd0d.ƒtd  t
t d1t ƒ  t	td  t dt ƒ  ƒgddœ“d2|ttƒ ttƒ t t ƒ tttƒt
ttƒ t	td  ttƒ  t t ƒd  ƒgddœ“d3ttƒ td¡d|  dttƒ t¡  ttƒ t tƒ tttƒt	tt
tttd      t tƒ ƒgddœ“d4|ttƒ tj tdt ƒd  tttƒtjtdt ƒd  t	ttƒ  t
ttƒ  ƒgddœ“d5ttƒ td¡ttƒ t¡ t dt ƒtjtdt ƒd    tttƒt	t
t t ƒ  tt tƒ  d6tdt ƒ d7tdt ƒ  d8 t dt ƒ d9  ƒgddœ“d:ttƒ td¡dttƒ td¡  ttƒ t¡ dt  ttƒ ttƒ tttƒt	td  t
tttd    ttƒ  ttttd    ttƒ  ƒgddœ“d;|ttƒ ttƒd  tdt ƒd  tttƒtdt ƒd' t
ttƒ  t	td  ttƒ  ƒgddœ“d<ttƒ t¡d tttƒt	t ƒgddœ“d=|ttƒ t¡ t tt	 ƒ tttƒt
tt t ƒ  t t	 t ƒd  ƒgddœ“d>ttƒ td¡ttƒ t¡ ttƒ tttƒt	t
t t ƒ  tt tƒ  tttƒ d  ƒgd?œ“d@ttƒ td¡dAttƒ  tdt ƒ tttƒt	t dBt ƒ t
t d,t ƒ  tdt ƒdC  ƒgd?œ“dDttƒ td¡ttƒ t¡ ttƒ t tƒ tttƒt	tt t ƒ  tttƒ d  t
td  t tƒ  ƒgd?œ“dEttƒ tt¡ttƒ tttd ƒ  tttƒt	ttƒ t
ttƒ  td ttd ƒ d  tttd ƒ d  ƒgd?œ“dFttƒ td¡ttƒ td ttd ƒ  tttƒt	ttƒ t
ttƒ  td ttd ƒ d  td ttd ƒ d  td ttd ƒ d  dtd  ttd ƒ d  dt ttd ƒ d  ƒgd?œ“¥ttƒ td¡ttƒ t td ƒ tttƒt
t t ƒ t	tt d0ƒ d  t tƒ  ƒgd?œttƒ td¡ttƒ ttd ƒd  tttƒt	ttƒ t
ttƒ  tttd ƒ d  d ƒgd?œttƒ td¡dttƒ td¡  ttƒ t¡ dt  t tt ƒ tttƒt	td tt tt ƒ d d   t
tt  ttƒ  ttt  ttƒ  ƒgd?œt||ƒ ||¡|| ||ƒ |¡  d||  ||ƒ  |	ƒt||ƒ|| |	 t	t || t||d  d|  ƒt|ƒ   d|  ƒ  t
t || t||d  d|  ƒt|ƒ   d|  ƒ  ƒg||ƒdGœt|| ||ƒ ||¡ || ||ƒ |¡  ||ƒ |t t|
 | ƒ ƒt||ƒt	t || t||d  d|  ƒt|ƒ   d|  ƒ t
t || t||d  d|  ƒt|ƒ   d|  ƒ  |t t|
 | ƒ || |
d  t| | |
  d   ƒg||ƒdGœttttƒtdƒdtttƒtƒ  ttƒ ttƒƒtttƒt	t
t  t tƒ ttƒd  ƒgd?œdHœ¥dIœS )JNr›   rœ   rÖ   r   r>   )ÚclszR L C E_0 alphaTrE  Úomegarå   Zundet_01r9  r'  rw   rA  Zundet_02r  Zundet_03rš   r,  Zundet_04r  Zundet_05r8  Zundet_06Zundet_07Zundet_08r  Zundet_09Zundet_10r  Zundet_11Zundet_12Zundet_13Zundet_14Zundet_15Zundet_16r&  Zundet_17Zundet_18r/  Zundet_19r¿   Zundet_20rþ   Zundet_21r¾   r  Zundet_22Zundet_23Zundet_24Zundet_25iëÿÿÿé   é‚   i  Zundet_26Zundet_27Zundet_28Zundet_29Zundet_30rÂ   Zundet_31é1   iùÿÿÿr7  Zundet_32Zundet_33Zundet_34rK  )Zundet_35Zundet_36Zundet_37Zundet_38Zundet_39Zundet_40r  )r   r=   r@   r
   r%   r(   r)   r   r  rÀ   rÁ   r   r   r   r   r$   r  r   ræ   r  r   r   )rA   Úf2r  r   r>   ÚRÚLÚCZE_0ZalpharQ  rR   rR   rS   rà   d  s  
6
Pýÿ@ýù$,ýó,4ýí,Lýç(Dýá%(DýÛ+<PýÕ1 XýÏ7>FýÉ=,RýÃC*Dý½I (ý·O Lý±U.ý«[>ý¥a.,ýŸg>ÿ<ü™n4Pý’t.@ýŒz,Dý† 8ý ÿ 8.ý ù  8ý ó >\ý í 8ÿÿNü æ !&:ý ß 'ý Ù ..ý Ò 5$8þ Ë :&:þ Æ ?,@þ Á E&Nþ » J*žþ ¶ "P4þ&:þD
Vþ>L8ÿüJ@8ÿ6þû2
*þ ýrà   c                  C   sø	  t dƒ\} }d}d}d}|| }tdƒ}dttƒi dttƒ t¡ttƒ tttƒtttƒ ƒgdœ“d	tttƒ t¡ ttƒ tttƒtt ƒgdœ“d
ttƒ t¡ttƒ tttƒtt	tƒ ƒgdœ“dttƒd d td d ttƒ t¡  tttƒt
tttƒ ƒƒgdœ“dttƒ t¡t
tƒ ttƒ d tttƒtt	tƒ d ƒgdœ“dttƒ t¡dtttƒƒ  d tt ttƒ t	ttƒƒ tƒgdœ“dttƒtd  ttƒ t¡ ttƒd  dtd  ttƒ t¡  tttƒt ttdt t t d  ƒ tt d  d ƒtttƒtttdt t t d  ƒ tt d   d ƒgddœ“dttƒd d dttƒ tttƒ  ttƒ t¡  tttƒtttd  dt t  dt  d ƒ ƒtttƒtttd  dt t  dt  d ƒƒgddœ“dtttƒ ttƒ t¡ tdttƒd  ƒ tttƒtttttƒƒ ƒƒgdddœ“dttd ƒt
ttƒƒ t	ttƒƒttƒ t¡  ttttƒ tt	ttƒƒd ƒd  tt	ttƒƒd ƒd  t	ttƒƒ tƒgddœ“dtt	ttƒƒ td tttƒƒ ttƒ t¡  |d tttƒƒ ttƒ t¡  tttƒttt|d  td  ƒ ƒ dt  ƒtttƒttt|d  td  ƒ ƒƒgddœ“dttƒ t¡ttƒt
tƒ  tttƒtt	tƒ ƒgdœ“dtd t	ttƒƒ ttƒ t¡ dt tttƒƒ  tttƒttttd dt  d  tdt ƒ ƒ ƒtttƒtttd dt  d  tdt ƒ ƒƒgdœ“dttƒ t¡ttƒtttƒƒ t
tƒ  tttƒttttƒ ƒƒgdœ“dtttƒ t¡ dttƒd  tttƒƒ  tttƒt
tt ƒƒgdddœ“dttƒ t¡tttƒd   tttƒdtttd  d ƒ  ƒgdœ“d tttƒd ƒtd dt  d  tttƒ ttƒ ttƒ t¡  tttƒttdttd  dt   ƒƒ ƒtttƒttdttd  dt   ƒƒƒgdœ“ttƒ t¡ttƒ tttƒttt ƒ ƒgdœttƒt	dttƒ ƒ t	tƒtdttƒ ƒ ttƒ t¡  tttƒtttt	tƒd  ƒd  ƒtttƒttt	tƒd  ƒd ƒgdœdt ttƒ t¡ tttƒd   tttƒttt ƒ t d td  ƒgdœttƒtttƒtƒ t dt ttƒd   tttƒtdƒ tttdtd  ƒ d ƒ d ƒtttƒtdƒtttdtd  ƒ d ƒ d ƒgdœttƒ t¡ttttƒ ƒ tttƒtdtttƒ  ƒƒgd!gd"œtttƒ t¡ d ttƒd  tttƒdt td   ttd   ƒgdœt| ƒ | ¡dd#t t| ƒ   tt| ƒd$tttd#|    ƒ d$ t ƒgt| ƒd%œttƒ t¡tttƒ  tttƒtttt ƒ ƒgdœ|||| ƒd   |t|| ƒƒ  t|| ƒd&ttd'|   ƒ ƒg|| ƒdd(œd)œ	¥d*œS )+Nza,té`   gš™™™™™#@gš™™™™™É?Úvr=  Zseparable_01rÂ   Zseparable_02Zseparable_03Zseparable_04r›   rw   Zseparable_05Zseparable_06Zseparable_07rœ   rš   TrA  Zseparable_08Zseparable_09)rC   rD   r;   rH   Zseparable_10Zseparable_11Zseparable_12Zseparable_13Zseparable_14Zseparable_15Zseparable_16r¾   Zseparable_17r·   r  gfffff†I@gÃXvH”?rK  g	ý‡Q|%QÀg+RÕ4JÂ?)rC   rD   rF   rH   )	Zseparable_18Zseparable_19Zseparable_20Zseparable_21Zseparable_22Zseparable_23Zseparable_24Zseparable_25Zseparable_26r  )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Ë   rN  rA   rJ  Úf1rZ  rR   rR   rS   rã   l  s(  þÿþúþõ(þð þë  þæB::þúá(420ÿüØ/,üÑ60NýÊ<R0&þúÄEþ»J440þþ¶R(þ®W,ü©^$þ¢cD*(þþlþ<Fþ$(þ,20ÿþý (þ *ýþ"ü æýrã   c                   C   sˆ  dt tƒttƒtt tƒƒ ttƒtt tƒƒ t tƒ t¡  tt tƒttttƒ ƒ dt  ƒtt tƒttttƒ ƒƒgddœdt t tƒ d t tƒ t tƒt t tƒd  t tƒ t¡  tt tƒt	ttd  t
t t	t td  ƒ ƒ ƒƒgdgdddœdt t tƒttƒ  dt tƒ ttƒ tt tƒƒ t tƒ t¡  tt tƒttƒ tt tƒƒ td  t tƒd  tƒgdgddœtt tƒƒttt tƒƒ t tƒd  t tƒ t¡  tttt tƒƒ t tƒd	 d	  tƒgddœdt t tƒ td t tƒd  t tƒ t¡  ttd t tƒ t tƒd	 d	  tƒgdd
dœtt tƒƒttt tƒƒ t tƒd  t tƒ t¡  tttt tƒƒ t tƒd	 d	  tƒgd
dœtttd t tƒd  ƒ td t tƒ t tƒttd t tƒd  ƒ  t tƒ t¡  tttƒtdtdt tƒd td   ƒ tt tƒt ƒ dt tƒ t dtdt tƒd td   ƒ    dtdt tƒd td   ƒ tdtdt tƒd td   ƒt tƒ t  dt tƒd  td   ƒ dt tƒ t dtdt tƒd td   ƒ    dtt tƒt ƒ t tƒ tdt tƒ t dtdt tƒd td   ƒ     dt tƒ tdtdt tƒd td   ƒt tƒ t  dt tƒd  td   ƒ tdt tƒ t dtdt tƒd td   ƒ     ƒgdddœttd t tƒ t¡ d	t t tƒ  ttƒt  dƒtt tƒtttƒ td	  ƒgdœt tƒtd  t tƒt d t t tƒ t¡  dd„ dD ƒdœtt tƒ d t tƒ t¡td tt tƒ    tt tƒttttd  dttƒ  ƒ ƒtt tƒttttd  dttƒ  ƒ ƒgdœtd tt tƒƒ t tƒ t¡t tt tƒƒ  tt tƒttt	t ƒ td  ƒ t ƒtt tƒttt	t ƒ td  ƒƒgdœdœdœS )aÔ  
    Example 7 is an exact equation that fails under the exact engine. It is caught
    by first order homogeneous albeit with a much contorted solution.  The
    exact engine fails because of a poorly simplified integral of q(0,y)dy,
    where q is the function multiplying f'.  The solutions should be
    Eq(sqrt(x**2+f(x)**2)**3+y**3, C1).  The equation below is
    equivalent, but it is so complex that checkodesol fails, and takes a long
    time to do so.
    r>  r›   TrA  rw   r·   )rC   rD   rE   r;   rH   )rC   rD   rE   r;   rœ   F)rC   rD   r;   rG   ©rC   rD   rG   r  iåÿÿÿrR  )rC   rD   r;   rI   r   rÂ   c              	   S   s6   g | ]}t ttƒ|tttd   d ƒ d t ƒ‘qS )r›   rw   )r   r@   r=   r$   rÀ   r{   rR   rR   rS   r}   m  s   6 z3_get_examples_ode_sol_1st_exact.<locals>.<listcomp>)r¾   rw   )Z1st_exact_01Z1st_exact_02Z1st_exact_03Z1st_exact_04Z1st_exact_05Z1st_exact_06Z1st_exact_07Z1st_exact_08Z1st_exact_09Z1st_exact_10Z1st_exact_11r  )r@   r=   r   r   r
   r   r   rÀ   r   r   r   r$   r   r   r   rR   rR   rR   rS   rÚ     s‚   4<ý@6ûD	6ü4&ý0&ü4	&ýX>ÿFÿ.þÿNüR2ÿûÿõ6þ0þ0Rþ0Lþ·ýrÚ   c                  C   sú  t t ƒ} ttƒ td¡}dttƒ td¡ d|  ttƒ t¡ ttƒ t }dttƒ|t|   tttƒtt td ƒ t ttttd d  dt d    t t ƒ  d ƒgdd	œ||  tttƒtt td ƒ t ttttd
    t t ƒ  d ƒgdd	œttƒ t¡d tttƒtt ƒgdd	œ|dttƒ t¡  dttƒ  d tttƒtt dt ƒ tt t ƒ  d ƒgdd	œ|dttƒ t¡  dttƒ  dt tƒ  tttƒtt dt ƒ tt t ƒ  dt tƒ  ƒgdd	œ|dttƒ t¡  d
ttƒ  dt t tƒ  dt t ƒ  tttƒt t tƒ dt t ƒ  tt dt ƒ  tt dt ƒ  ƒgdd	œ|dttƒ t¡  ttƒ td t t ƒ  tttƒttttd d    t t ƒ ƒgdd	œ|dttƒ t¡  dttƒ  tt t ƒ  tttƒtt tƒ tt dt ƒ  dt d t t ƒ d  ƒgdd	œttƒ td¡d|  dttƒ t¡  ttƒ t tƒ tttƒttttttd      t tƒ ƒgdd	œ|dttƒ t¡  ttƒ t t ƒt  tttƒtttttƒ   t t ƒ ƒgdd	œ|ttƒ dt	tƒ d t
tƒ  tttƒttt	tƒd ƒd  tt	tƒd ƒd  t
tƒ ttt
tƒd ƒd  tt
tƒd ƒd  t	tƒ  ƒgdd	œttƒ td¡dt  tttƒttt  ttd   td tttƒd    ƒgdd	œttƒ td¡dttƒ td¡  ttƒ t¡ dt  t tt ƒ tttƒttd  ttttd
  dt tt ƒ d  dt t t ƒ d    dt dt t ƒ d  dt t tt ƒ  dt t t t ƒ  t	tƒ  ttttt d
  dt t tt ƒ d  dt t t t ƒ d    dt t dt t ƒ d  dt tt ƒ  dt t t ƒ  t
tƒ  tt tt ƒ  ƒgdœttƒ td¡dttƒ td¡  ttƒ t¡ t tt ƒ tttƒtttttd
    dt dt t ƒ d  t	tƒ  ttttt d
    dt t dt t ƒ d  t
tƒ  tt tt ƒ  ƒgdœtttƒttƒdttƒ  ttƒ tttƒttd  t	dt ƒd  t	dt ƒ ttt
tƒƒ dtt
tƒd ƒ d  dt
tƒd  d  t
dt ƒ  ƒgdd	œdœdœS )Nr›   rœ   rÖ   r@  r9  r'  rw   TrA  r  rš   r,  r  r  r8  r  rþ   r&  rÂ   )Zvar_of_parameters_01Zvar_of_parameters_02Zvar_of_parameters_03Zvar_of_parameters_04Zvar_of_parameters_05Zvar_of_parameters_06Zvar_of_parameters_07Zvar_of_parameters_08Zvar_of_parameters_09Zvar_of_parameters_10Zvar_of_parameters_11Zvar_of_parameters_12Zvar_of_parameters_13Zvar_of_parameters_14Zvar_of_parameters_15r  )r   r=   r@   r
   r   r  rÀ   rÁ   r   r   r   r  r   r  r   r#   )rA   rU  r  rR   rR   rS   rÓ   }  sª   
6
Pý@ýý$,ý,4ý>Fý.,ý.@ý8.ý*(ý"2ÿ2ÿü:ýDâÿÿÿÿÿþ<Žþ"<ÿÿ
ÿü©ýrÓ   c                   C   sL  dt tƒtd t tƒ td¡ tt tƒ t¡  td d t tƒ  tt tƒttdtƒ ttdtƒ  ƒgdœtd t tƒ td¡ tt tƒ t¡  td d t tƒ  tt tƒttdt tƒ ttdt tƒ  ƒgdœtd t tƒ td¡ tt tƒ t¡  td t tƒ  tt tƒttdtƒ ttdtƒ  ƒgdœtd t tƒ td¡ tt tƒ t¡  dtd  t	d	ƒd
  t tƒ  tt tƒttt	d	ƒd d
t ƒ ttt	d	ƒd d
t ƒ  ƒgdœtd t tƒ td¡ tt tƒ t¡  td d t tƒ  tt tƒttd	td d ƒ ttd	td d ƒ  ƒgdœtd t tƒ td¡ dt t tƒ t¡  td d t tƒ  tt tƒttt
dƒd td d ƒ ttt
dƒd td d ƒ  t
tƒ ƒgdœtd t tƒ td¡ tt tƒ t¡  td t	d	ƒd  t tƒ  tt tƒttt	d	ƒd tƒ ttt	d	ƒd tƒ  ƒgdœtd t tƒ td¡ dt t tƒ t¡  dt d t tƒ  tt tƒtd ttddt
tƒ ƒ ttddt
tƒ ƒ   ƒgdœtt tƒ td¡ t tƒ t¡ dtd  t tƒ  tt tƒtttt	d	ƒd td ƒ ttt	d	ƒd td ƒ   ƒgdœtd d t tƒ td¡ td t tƒ t¡  dtd d  t tƒ  tt tƒtd ttd	dt d ƒ ttd	dt d ƒ   ƒgdœt tƒ tt¡dt t tƒ t¡  t tƒ tt tƒttt	d	ƒd tƒ ttt	d	ƒd tƒ  t
tƒ ƒgdœdœdœS )NZ2nd_linear_besselr›   rš   rÂ   é   rÖ   r   éQ   rw   r  rœ   é   )Z2nd_lin_bessel_01Z2nd_lin_bessel_02Z2nd_lin_bessel_03Z2nd_lin_bessel_04Z2nd_lin_bessel_05Z2nd_lin_bessel_06Z2nd_lin_bessel_07Z2nd_lin_bessel_08Z2nd_lin_bessel_09Z2nd_lin_bessel_10Z2nd_lin_bessel_11r  )r@   r=   r
   r   rÀ   r,   rÁ   r-   r   r   r$   rR   rR   rR   rS   rÍ   æ  sJ   <&þ<.þ8&þH>þ<6þ@NþD6þ@>þ4BþH>þ,>þÌýrÍ   c                   C   sÎ  dt tƒttd  t tƒ td¡ tdƒd dt  t tƒ t¡  dt tƒ  tt tƒtttdƒd   ttdƒd tdƒd ftdƒd ftƒ ttdtdƒ d ftƒ  ƒgdœttd  t tƒ td¡ tdƒd t t tƒ t¡  t tƒ tt tƒtdt tdƒd   ttdƒd dftdƒd fdt ƒ tttdƒ d d	ftdƒ d fdt ƒ  td tdƒd   ƒgdœttd  t tƒ td¡ tdƒtdƒd t  t tƒ t¡  t tƒ tt tƒtdt td
ƒd   ttdƒd dftdƒd fdt ƒ tttdƒ d dftdƒ d fdt ƒ  td td
ƒd   ƒgdœttdƒd   dttdƒd   d dttdƒd   d  tdƒt d   t tƒ dttdƒd   t d  ttdƒd  t d   tt tƒtdfƒ tt tƒttdƒd  tttdƒd   ttdƒd tdƒ d ftdƒd fttdƒd  ƒ tttdƒd td
ƒ d ftdƒd fttdƒd  ƒ   ttdƒd  d tdƒd   ƒgddœdœdœS )NZ2nd_hypergeometricrw   r›   rœ   rÖ   r¿   )r¾   r,  rÂ   r,  r*  rý   éûÿÿÿr  i`þÿÿiQ	  rT  i*  éÄ   r  é-   éb   rš   é   r  é   éT   Tr  )Z2nd_2F1_hyper_01Z2nd_2F1_hyper_02Z2nd_2F1_hyper_03Z2nd_2F1_hyper_04r  )	r@   r=   r
   r   r   rÀ   r   rÁ   r   rR   rR   rR   rS   r¼   '  sJ   Hdþ@D,ÿÿþHD,ÿÿþjÿÿÿÿ`:ÿÿûîýr¼   c                   C   s@  dt tƒt tƒ td¡tt tƒƒ tt tƒƒ ttdttdt	 tt	ƒ  dt	  dtt	ƒ  ƒ t	t tƒfƒt
t ƒttdttdt	 tt	ƒ  dt	  dtt	ƒ  ƒ t	t tƒfƒt
t ƒgddœt tƒ td¡tt tƒƒ dt tƒ  ttdƒtdtdt dt	tddƒ   dtt	ƒ  ƒ t	t tƒfƒ t
t ƒttdƒtdtdt dt	tddƒ   dtt	ƒ  ƒ t	t tƒfƒ t
t ƒgddœt tƒ td¡tt tƒƒ ttdttdtt	ƒ  ƒ t	t tƒfƒt
t ƒttdttdtt	ƒ  ƒ t	t tƒfƒt
t ƒgddœt tƒ td¡tt tƒƒ ttdttdtt	ƒ  ƒ t	t tƒfƒt
t ƒttdttdtt	ƒ  ƒ t	t tƒfƒt
t ƒgddœt tƒ td¡tt tƒƒ ttdttdt	 tt	ƒ  dtdt	d  ƒ  ƒ t	t tƒfƒt
t ƒttdttdt	 tt	ƒ  dtdt	d  ƒ  ƒ t	t tƒfƒt
t ƒgddgd	œd
œdœS )NZ"2nd_nonlinear_autonomous_conservedr›   rw   Fr\  rœ   rš   rÆ   ©rC   rD   rG   rE   )Z%2nd_nonlinear_autonomous_conserved_01Z%2nd_nonlinear_autonomous_conserved_02Z%2nd_nonlinear_autonomous_conserved_03Z%2nd_nonlinear_autonomous_conserved_04Z%2nd_nonlinear_autonomous_conserved_05r  )r@   r=   r
   r   r   r   r   r$   rÀ   rÉ   rÁ   r   r   r   r   r    r   r   rR   rR   rR   rS   rÄ   H  sF   &FFþú&	LLþú	..þú	..þú	FFþùßýrÄ   c                   C   s  t tƒ t¡} dt tƒt|  t tƒdtd t tƒ d    tttd t tƒ ƒd ttd t tƒ tddƒ ƒd  tttƒ ƒgddgdœt tƒ t¡t tƒtd	 t tƒ t   tttd t tƒ ƒd	 ttd t tƒ td	dƒ ƒd
  tttƒ ƒgdddœt|  t tƒtd t tƒ   tttd t tƒ ƒd ttd t tƒ d ƒd  tttƒ ƒgddœtt tƒ t¡t tƒt dttdƒd  t tƒ d    dƒtdtttdƒd  t tƒ ƒ dtdttd	ƒd   t tƒd  d ƒ d  tttƒ ƒgddœtt tƒ t¡t tƒt dtt tƒ d    dƒtt tƒtdƒ tdtttƒ  ƒ dt  ƒtt tƒtdƒtdtttƒ  ƒ dt  ƒgdœtt tƒ t¡td	 t tƒd  td t tƒ  t tƒ ttd t tƒd  td	 t tƒd      dƒtt tƒtddtd    ƒgdœtt tƒ t¡t tƒd t tƒ t  dƒtt tƒtdƒ tdtttƒ  ƒ d ƒtt tƒtdƒtdtttƒ  ƒ d ƒgdœtt tƒ t¡t tƒd t tƒ tt tƒd    dƒttt tƒd ƒ d dtt tƒƒ d  tttƒ ƒgddgdœtt tƒ t¡t tƒd t tƒ t  dƒtt tƒdttd  d  ƒgdœtt tƒ t¡t tƒd t tƒ t tƒ t  dƒtttƒ tt tƒd ƒ tt tƒƒ dt tƒ  tƒgdgdœt tƒ t¡t tƒtd	 t tƒ t   tt tƒtdƒ tddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ d tdƒtddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   d	td   d	tdƒ td tddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ   ƒ d  ddtd    ƒtt tƒtdƒ tddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ d tdƒtddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   d	td   d	tdƒ td tddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ   ƒ d  ddtd    ƒtt tƒtdƒtddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ d tdƒtddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   d	td   d	tdƒ td tddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ   ƒ d  ddtd    ƒtt tƒtdƒtddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ d tdƒtddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   d	td   d	tdƒ td tddtddƒ  tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ  ddtddƒ  t	d
t ƒ tdt	d
t ƒ td  t	dt ƒ ƒt	d
t ƒtd   tddƒ   dtd   ƒ   ƒ d  ddtd    ƒgdddœtd t tƒd  tt
t tƒtƒ  tt tƒdt ttd  d  ƒgdœdœdœS )Nr¶   rw   r›   rœ   r  Fr·   rg  rš   r  T)rC   rD   rG   rH   r\  r   r  rÂ   r  iôÿÿÿr9  r  )rC   rD   rH   r;   )Zseparable_reduced_01Zseparable_reduced_02Zseparable_reduced_03Zseparable_reduced_04Zseparable_reduced_05Zseparable_reduced_06Zseparable_reduced_07Zseparable_reduced_08Zseparable_reduced_09Zseparable_reduced_10Zseparable_reduced_11Zseparable_reduced_12r  )r@   r=   r
   r   r   r   rÀ   r   r$   r   r   )r¹   rR   rR   rS   r¸   {  s<  &Hü(	HüBý>^ý2.,ÿþjþ**(þþ6	8ü*þ28ý(	hbÿ
ÿÿ^bÿ
ÿhbÿ
ÿþýþûhbÿ
ÿÿ^bÿ
ÿhbÿ
ÿþýþûfbÿ
ÿÿ^bÿ
þhbÿ
ÿþýþûfbÿ
ÿÿŠÿ
ÿÿÿ
ÿHÿÿbÿ
ÿÿþþüîæ$"þŸýr¸   c                  C   sÐ  t dƒ\} }}dttƒi dtttƒ t¡ ttƒd  ttƒd  dttƒ  dt  g dddœ“dtttƒ t¡ ttƒd  ttƒd  dttƒ  dt  g dd	œ“d
ttd tttƒtƒ dtd  ttƒd   dtd  d ttƒd   dƒg dd	œ“dttƒ t¡ttƒtttƒ  d td   ttƒ g dgdœ“dttƒ t¡d tttƒtƒgdgdœ“dtttƒ t¡td ttƒ ƒtttƒtttd ƒt	ddƒ  ƒgdœ“dttƒ t¡| ttƒ  |t|t ƒ  tttƒt
t | |  |tt| |  ƒ  t|  t ƒ | |  t| | ƒft |t  t|  t ƒ dfƒƒgdœ“dttƒ t¡dt ttƒ  tttd  ƒ  tttƒttd d  ttd  ƒ ƒgdœ“dddt  ttƒ t¡ d dtttƒ ƒ  tttƒttdt d  d ƒƒgdœ“dtd ttƒ t¡ ttƒ td ttdt  ƒ  tttƒtttƒ tdt ƒ  ƒgdgdœ“dtd ttƒd  ttttƒtƒ  tttƒdttd   ƒgdœ“dtttƒtƒdt ttƒ  tttd  ƒ  tttƒttd  ƒttd d   ƒgdœ“dtttƒtƒttƒttƒ  tdt ƒ tttƒtttƒ ƒtttdt ƒtttƒƒ tƒ  ƒgdœ“dtttƒtƒttƒttƒ  tdt ƒd  tttƒttttƒ ƒ ttƒ d ƒgdœ“dttttƒtƒ ttƒ tttƒ  tttƒttttƒ  ttƒ t ƒgdœ“d ttttƒtƒ ttƒ tttƒ  tttƒtttttƒƒ  ƒgdœ“d!ttƒ t¡ttƒ ttƒ t¡ttƒ  tttƒtttƒ ƒtttƒttt ƒ ƒgdœ“ttƒ t¡ttƒ t¡ttƒ  tttƒtttƒ ƒtttƒtƒgdœttƒ t¡ttƒ ttƒ t¡ttƒ  tttƒttt ƒ ƒtttƒtttƒ ƒgdœttƒ t¡ttƒ t¡ttƒ  tttƒtƒtttƒttt ƒ ƒgdœd"œ¥d#œS )$Nza b cr·   Zlie_group_01rš   r›   T)rC   rD   rI   rJ   Zlie_group_02rB  Zlie_group_03r¿   rÖ   rœ   r   Zlie_group_04r  Zlie_group_05r<  Zlie_group_06rw   rÂ   Zlie_group_07Zlie_group_08Zlie_group_09Zlie_group_10r¾   Zlie_group_11Zlie_group_12Zlie_group_13Zlie_group_14Zlie_group_15Zlie_group_16Zlie_group_17)Zlie_group_18Zlie_group_19Zlie_group_20r  )r%   r@   r=   r
   r   r   r   rÀ   r   r   r   r   r   r   r   )rË   r  r  rR   rR   rS   r´   ê  sÞ   <üþ	<ý÷Nýñ4ýëýå!$þß&(@
ÿÿþÚ,.(þÔ1."þÏ64$ýÊ<$þÄA.(þ¿F(:þºK,(þµP$&þ°U$þ«Z*,þ¦"`"þ*,þ"$þ—ýr´   c                   C   sº   dt tƒt tƒ td¡tt tƒ  tt tƒtttƒ tttƒ  ƒgdœt tƒ td¡dt t tƒ  tt tƒttdtdƒd   t ƒ ttdtdƒd   t ƒ  ƒgdœdœdœS )NZ2nd_linear_airyr›   rÂ   rw   rœ   )Z2nd_lin_airy_01Z2nd_lin_airy_02r  )	r@   r=   r
   r   rÀ   r*   rÁ   r+   r   rR   rR   rR   rS   r²   a	  s   "þFþúýr²   c                  C   s”  t ddd} t ddd}dd„ tdƒD ƒ\}}}}}d	d„ tdƒD ƒ\}}}	}
}d
d„ tdƒD ƒ\}}}}}dd„ tdƒD ƒ\}}}}}dd„ tdƒD ƒ\}}}}}tdƒ}dttƒi dttƒ td¡dttƒ t¡  tttƒtttdt ƒ  ƒgdœ“dttƒ td¡dttƒ t¡  dttƒ  tttƒttttƒ  ttƒ ƒgdœ“dttƒ td¡ttƒ tttƒttt ƒ tttƒ  ƒgdœ“dttƒ td¡ttƒ td¡ dttƒ t¡  tttƒtttdt ƒ  t	tdt ƒ  ƒgddœ“ddttƒ td¡ dttƒ t¡  dttƒ  tttƒtttd ƒ tttt
ddƒ ƒ  ƒgddœ“dtttƒ td¡dttƒ t¡  ttƒ dƒtttƒtttdtdƒ  ƒ ttttdƒ d  ƒ  ƒgddœ“d tttƒtdƒtttƒtdƒ d!tttƒtƒ  dttƒ  tttƒttdt ƒ tttdtdƒ  ƒ  t	ttdtdƒ  ƒ  ƒgddœ“d"ttƒ td¡ttƒ td¡ dttƒ td¡  dttƒ t¡  tttƒtttdt ƒ  t	ttƒ  ttdt ƒ  ƒgddœ“d#ttƒ td¡dttƒ td¡  ttƒ td¡ dttƒ t¡  dttƒ  tttƒt	tt ƒ tttƒ  tttdƒ t ƒ tttdƒt ƒ  tdt ƒ  ƒgddœ“d$ttƒ td¡| d ttƒ  tttƒttt| ƒ t ƒ ttt| ƒt ƒ  t	tt| ƒt ƒ  ttt| ƒt ƒ  ƒgddœ“d%ttƒ td¡d| ttƒ t¡  dttƒ  tttƒttt|t|d d ƒ  ƒ ttt|t|d d ƒ  ƒ  ƒgddœ“d&ttƒ td¡d| ttƒ t¡  d'|d  ttƒ  tttƒttd(| t ƒ ttd| t ƒ  ƒgddœ“d)ttƒ td¡tttƒttt  t	td   ttd   ƒgddœ“d*ttƒ td¡dttƒ t¡  dttƒ  tttƒttt  tdt ƒ ƒgddœ“d+dttƒ td¡ dttƒ td¡  ttƒ t¡ ttƒ tttƒttt  tt ƒ t	ttd ƒ  ƒgddœ“d,ttƒ td¡dttƒ td¡  d'ttƒ t¡  d-ttƒ  tttƒtttt	t    tdt ƒ ƒgddœ“d.ttƒ td¡d|  ttƒ t¡  | d ttƒ  tttƒttt  t| t ƒ ƒgddœ“i d/ttƒ td¡dttƒ td¡  tttƒttt  t	td   ttdt ƒ  ƒgddœ“d0ttƒ td¡dttƒ td¡  tttƒttt  t	ttdƒ t ƒ  tttdƒt ƒ  ƒgddœ“d1ttƒ td¡dttƒ td¡  dttƒ td¡  d'ttƒ t¡  d2ttƒ  tttƒttt  tdt ƒ t	tt  tdt ƒ  ƒgddœ“d3d2ttƒ td¡ d4ttƒ td¡  dttƒ t¡  dttƒ  tttƒttt ƒ ttt d ƒ  t	ttd ƒ  tttt
ddƒ ƒ  ƒgddœ“d5ttƒ td¡d-ttƒ td¡  d6ttƒ  tttƒttt  tdt ƒ t	tt  tdt ƒ  ƒgddœ“d7ttƒ td¡dttƒ t¡  dttƒ  tttƒttdt ƒ ttdt ƒ  ttƒ ƒgddœ“d8ttƒ td¡ttƒ t¡ ttƒ tttƒttttdƒ d ƒ ttttdƒ d ƒ  ttd ƒ ƒgddœ“d9ttƒ td¡dttƒ td¡  dttƒ  tttƒtttdƒt ƒ tttdƒt ƒ  t	ttdƒt ƒ  tttdƒt ƒ  ƒgddœ“d:ttƒ td¡dttƒ t¡  d;ttƒ  tttƒttdt ƒ ttdt ƒ  tdt ƒ ƒgddœ“d<ttƒ td¡dttƒ td¡  dttƒ  tttƒttt  tttdƒ ƒ t	tt  tttdƒ ƒ  ƒgddœ“d=ttƒ td¡d-ttƒ  tttƒttttdƒ ƒ ttttdƒ ƒ  ttƒ t	tdt ƒ  ƒgddœ“d>ttƒ td¡dttƒ td¡  tttƒttt  t	tdt ƒ  ttdt ƒ  ƒgddœ“d?ttƒ td¡dttƒ td¡  ttƒ t¡ tttƒttt	t  ttƒ  ttt  ttƒ  ƒgddœ“d@ttƒ td¡ttƒ td¡ ttƒ tttƒtttdƒt d ƒ tttdƒt d ƒ  tt d ƒ t	ttdƒt d ƒ tttdƒt d ƒ  ttd ƒ  ƒgddœ“dAttƒ td¡dttƒ td¡  ttƒ tttƒtttttdƒ d ƒ ƒ tttttdƒd ƒ ƒ  t	ttttdƒ d ƒ ƒ  tttttdƒd ƒ ƒ  ƒgddœ“dBttƒ td¡dttƒ t¡  dttƒ  tttƒtt|t ƒ tt|ƒt ƒttt|ƒt ƒ ttt|ƒt ƒ    tt|ƒt ƒt	tt|ƒt ƒ ttt|ƒt ƒ    ƒgddCœ“dDttƒ td¡dttƒ t¡  ttƒ tttƒt	t|t ƒ tt|t ƒ  tt|	t ƒ  tt|
ƒt ƒttt|
ƒt ƒ ttt|
ƒt ƒ    ƒgddCœ“¥ttƒ td¡dEttƒ td¡  dFttƒ t¡  ttƒ tttƒtt|t ƒ tt|t ƒ  t	t|t ƒ  tt|t ƒ  tt|t ƒ  ƒgddCœttƒ td¡dttƒ td¡  dttƒ td¡  d!ttƒ t¡  dGttƒ  tttƒttdt ƒ ttt| ƒ  tt|ƒt ƒttt|ƒt ƒ ttt|ƒt ƒ    tt|ƒt ƒt	tt|ƒt ƒ ttt|ƒt ƒ    ƒgddCœttƒ td!¡dttƒ td¡  dttƒ td¡  ttƒ td¡ dttƒ td¡  ttƒ tttƒttt  tt| ƒ t	tt  ttt|ƒ ƒ  ttt  ttt|ƒ ƒ  ttt|ƒ ƒ  ttt  ttt|ƒ ƒ  tt t ttt|ƒ ƒ  ttt|ƒ ƒ  ƒgddCœttdƒttƒ ttt¡ ttƒ t¡ dƒtttƒtttdt
ddƒ t d ƒ  t	tdt
ddƒ t d ƒ  ƒgdœt|ttƒ ttt¡ ttƒ t¡ dƒtttƒttttt|ƒ ƒ  t	ttt|ƒ ƒ  ƒgdœttttƒ ttt¡ ttƒ t¡ dƒtttƒttttttƒ ƒ  t	ttttƒ ƒ  ƒgdœttttƒ ttt¡ ttƒ t¡ dƒtttƒtttttƒ t ƒ  t	tttƒt ƒ  ƒgdœttƒ tt¡tttƒ  tttƒttt tt ƒ ƒ ttttt ƒ ƒ  ƒgdœtdHttƒ tt¡ ttƒ dƒtttƒtttd ƒ tttd ƒ  ƒgdœtdHttƒ tt¡ ttƒƒtttƒttt d ƒ tttd ƒ  ƒgdœtttƒ tt¡dtttƒtƒ  dttƒ  dƒtttƒttttƒ  ttƒ ƒgdœtttƒ tt¡dtttƒtƒ  dttƒ  dƒtttƒttt  tdt ƒ ƒgdœtttƒ tt¡dtttƒtƒ  dttƒ  dƒtttƒttttdƒ ƒ ttttdƒ ƒ  tt ƒ ƒgdœttƒ tt¡dttƒ  tttƒttdt ƒ ttdt ƒ  ƒgdœdIœ¥dJœS )KNrË   TrE  rJ  )Úrealc                 S   s&   g | ]}t td  dt  d |ƒ‘qS )rÖ   r*  r›   r  r  rR   rR   rS   r}   z	  ó   & zO_get_examples_ode_sol_nth_linear_constant_coeff_homogeneous.<locals>.<listcomp>rÖ   c                 S   s&   g | ]}t td  dt  d |ƒ‘qS )rÖ   rœ   rw   r  r  rR   rR   rS   r}   {	  ri  c                 S   s2   g | ]}t td  dtd   dt  d |ƒ‘qS )rÖ   éd   rœ   éè  rw   r  r  rR   rR   rS   r}   |	  s   2 c                 S   s&   g | ]}t td  td  d |ƒ‘qS )rÖ   rš   r8  r  r  rR   rR   rS   r}   }	  ri  c                 S   s"   g | ]}t td  t d |ƒ‘qS )rÖ   rw   r  r  rR   rR   rS   r}   ~	  s   " rw   Z%nth_linear_constant_coeff_homogeneousZlin_const_coeff_hom_01r›   r,  rÂ   Zlin_const_coeff_hom_02rœ   Zlin_const_coeff_hom_03Zlin_const_coeff_hom_04r  r  rA  Zlin_const_coeff_hom_05r*  rš   Zlin_const_coeff_hom_06r   r¾   Zlin_const_coeff_hom_07r8  Zlin_const_coeff_hom_08Zlin_const_coeff_hom_09Zlin_const_coeff_hom_10Zlin_const_coeff_hom_11Zlin_const_coeff_hom_12r  iúÿÿÿZlin_const_coeff_hom_13Zlin_const_coeff_hom_14Zlin_const_coeff_hom_15Zlin_const_coeff_hom_16r  Zlin_const_coeff_hom_17Zlin_const_coeff_hom_18Zlin_const_coeff_hom_19Zlin_const_coeff_hom_20rþ   Zlin_const_coeff_hom_21é%   Zlin_const_coeff_hom_22r&  Zlin_const_coeff_hom_23Zlin_const_coeff_hom_24Zlin_const_coeff_hom_25Zlin_const_coeff_hom_26r.  Zlin_const_coeff_hom_27Zlin_const_coeff_hom_28Zlin_const_coeff_hom_29Zlin_const_coeff_hom_30Zlin_const_coeff_hom_31Zlin_const_coeff_hom_32Zlin_const_coeff_hom_33r  Zlin_const_coeff_hom_34rj  rk  é2   r  )Zlin_const_coeff_hom_35Zlin_const_coeff_hom_36Zlin_const_coeff_hom_37Zlin_const_coeff_hom_38Zlin_const_coeff_hom_39Zlin_const_coeff_hom_40Zlin_const_coeff_hom_41Zlin_const_coeff_hom_42Zlin_const_coeff_hom_43Zlin_const_coeff_hom_44Zlin_const_coeff_hom_45Zlin_const_coeff_hom_46Zlin_const_coeff_hom_47Zlin_const_coeff_hom_48r  )r)   rŠ   r   r@   r=   r
   r   rÀ   rÁ   r  r   r$   r  r   r   r  r   r   r   ÚC7ÚC8ÚC10ÚC9r   r   r?   )rË   rJ  r!  r"  r#  r$  r%  Zr6Zr7Úr8Zr9Zr10Zr11Zr12Zr13Zr14Zr15Zr16Zr17Zr18Zr19Zr20Zr21Zr22Zr23Zr24Zr25r   rR   rR   rS   r¬   t	  s    þÿ,"þú$þõ0.ýð00ýê.<ýä"<JýÞ(2ÿ:üØ/2ÿ
ÿZüÑ6\ýÊ<0JýÄB82ý¾H.ý¸N,"ý²T<0ý¬Z@*ý¦`4"ý f"2ýšl"@ý”r6ÿ
ÿ:üŽyDPý‡.:ý ,2ý ú $Fý ô .Nÿü î ,6ý ç .Bý á %Jý Û +"6ý Õ 106ý Ï 7&D:ÿü É >*@ÿÿü Â F,F6ÿÿû º O(.6ÿÿû ± <YZýTÿ6þ6ýÿù6ÿÿÿ:ÿÿÿÿÿú,
Jþ(6þ(6þ(8þ8þ *þ,þ2"þ2"þ2<þ*þ  Øýr¬   c                   C   sŒ  dt tƒt tƒt tt tƒt ƒ tt tƒ tt tƒt ƒ tt tƒt ƒ t tƒ t¡  tttƒttt tƒtt tƒt ƒ t ƒ ƒgddœtt tƒ t¡ t tƒ ttt tƒt ƒ  tttƒttƒttt tƒt ƒd ƒd  ttt tƒt ƒd ƒd  ƒgddœttt tƒt ƒ t tƒtt tƒt ƒ  ttt tƒt ƒ t tƒ t¡  tttƒttt tƒ t ƒtt tƒt ƒ d  tt tƒ t ƒtt tƒt ƒ d  ƒgddœt tƒ t¡t tƒt  dtt tƒt ƒ  tt tƒtt	tttƒ ƒ dt
   ƒtt tƒtt	tttƒ ƒ ƒgddœttt tƒt ƒ t tƒ tt tƒ t¡  tt tƒtdtttƒ  t ƒƒgddœd	œd
œS )Nr¤   TrA  rw   r›   Fr\  r  )Zdep_div_indep_01Zdep_div_indep_02Zdep_div_indep_03Zdep_div_indep_04Zdep_div_indep_05r  )r@   r=   r   r   r
   r   r   rÀ   r   r   r   rR   rR   rR   rS   r¦   ±
  s0   T.ý,JýLZý,Dý,	"ýäýr¦   c                
   C   sf   dt tƒdt tƒ t¡ddt tƒ  td   tt tƒttd dt  d  tddƒ ƒgdœidœS )	NZlinear_coefficientsZlinear_coeff_01rœ   r›   r  r  rÂ   r  )r@   r=   r
   r   rÀ   r   rR   rR   rR   rS   r¡   Ú
  s   $,þÿýr¡   c                   C   sp  dt tƒt tƒttt tƒt ƒ dt  tt tƒtƒ  tt tƒttƒ tt tt d ƒ ƒ ƒgddœdt tƒ ttt tƒ ƒ t tƒt tƒ t¡  dt ttt tƒ ƒ t tƒ t¡  ttt tƒƒtdttt tƒ ƒ  ƒgdœdtd  t tƒ t tƒd  tt tƒd  dtd   t tƒ t¡  tt tƒtdt tdtd	  td
t ƒ ƒd  ƒt ƒgddœttt tƒd tt tƒ  ƒ t tƒ t¡ t tƒ ttt tƒƒtdtt t tƒ d ƒ  ƒgddœtt tƒ tt tƒ t tƒ t¡  tttƒtttdt tƒd td   ƒƒ t	t tƒt ƒ ƒgdœtt tƒ t¡ t tƒ tt
t tƒt ƒ  tt tƒdt t	tt ƒ ƒgdœtd t tƒd  dt t tƒ t tƒ t¡  tt tƒtttt  ƒ ƒtt tƒtttt  ƒƒgdœt tƒd ttt tƒd td  ƒ tt tƒ  t tƒ t¡  tttƒttt tƒt ƒ tt tƒt ƒ ƒgdœdœdœS )Nr?  r›   rw   Tr  rÂ   rœ   r,  rš   rF  rA  )Z1st_homogeneous_coeff_best_01Z1st_homogeneous_coeff_best_02Z1st_homogeneous_coeff_best_03Z1st_homogeneous_coeff_best_04Z1st_homogeneous_coeff_best_05Z1st_homogeneous_coeff_best_06Z1st_homogeneous_coeff_best_07Z1st_homogeneous_coeff_best_08r  )r@   r=   r   r
   r   r   rÀ   r   r$   r   r   r   rR   rR   rR   rS   r§   ç
  s>   0,ýV&þH:ý4,ý$>þ,þ04þ@.þÕýr§   c                  C   sl   t t t t t t t t t t	 t
 t t t t t t t t t t t t t t t } | S rh   )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¡   )re   rR   rR   rS   ra     sh   ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçra   )F)¥Ú__doc__rG  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'   Z
sympy.corer(   r)   Zsympy.functionsr*   r+   r,   r-   r.   Zsympy.integrals.rischr/   Zsympy.solvers.oder0   r1   Zsympy.solvers.ode.oder2   r3   Zsympy.solvers.ode.singler4   r5   r6   r7   r8   Zsympy.solvers.ode.subscheckr9   Zsympy.testing.pytestr:   r;   r<   r…   r=   r>   rÉ   r?   r@   rA   rÀ   rÁ   r  r  r  r   rn  ro  rq  rp  r€   r‰   rŒ   r‹   r‡   r‘   rU   r]   rg   rq   rr   rY   rc   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÷   rú   rÐ   rÞ   rà   rã   rÚ   rÓ   rÍ   r¼   rÄ   r¸   r´   r²   r¬   r¦   r¡   r§   ra   rR   rR   rR   rS   Ú<module>   s.   





P%







	















:
,
&


L

 
*
3
 
U
  	
 0
`
h
@
 
2
n
v

  >
(

7