o
    jgg‡ ã                
   @   sF  d Z ddlmZmZ ddlmZ ddl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mZ ddlmZmZ dd	lmZmZmZ dd
l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%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ ddl,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@ ddlAmBZBmCZC ddlDmEZEmFZF ddlGmHZHmIZImJZJmKZKmLZL ddlMmNZN ddlOmPZPmQZQ ddlRZRe8dƒZSe8dƒZTedƒZUe8dƒZVe7dƒZWe7dƒZXed ƒ\
ZYZZZ[Z\Z]Z^Z_Z`ZaZbed!ƒ\ZcZdZed"Zfd#Zgd$Zhd%Zid&Zjd'Zkd(d)„ Zld»d+d,„Zmd»d-d.„Znd/d0„ Zod1d2„ Zpd»d3d4„Zqg dfd5d6„Zrd7d8„ Zsd9d:„ ZteQd;d<„ ƒZueQd=d>„ ƒZveQd?d@„ ƒZweQdAdB„ ƒZxdCdD„ ZyeQdEdF„ ƒZzeQdGdH„ ƒZ{eQdIdJ„ ƒZ|eQdKdL„ ƒZ}dMdN„ Z~eQdOdP„ ƒZdQdR„ Z€eQdSdT„ ƒZeQdUdV„ ƒZ‚eQdWdX„ ƒZƒdYdZ„ Z„eQd[d\„ ƒZ…eQd]d^„ ƒZ†eQd_d`„ ƒZ‡dadb„ ZˆeQdcdd„ ƒZ‰eQdedf„ ƒZŠeQdgdh„ ƒZ‹eQdidj„ ƒZŒdkdl„ ZeQdmdn„ ƒZŽeQdodp„ ƒZeQdqdr„ ƒZdsdt„ Z‘eQdudv„ ƒZ’dwdx„ Z“dydz„ Z”d{d|„ Z•eQd}d~„ ƒZ–dd€„ Z—dd‚„ Z˜eQdƒd„„ ƒZ™eld…d†„ ƒZšeld‡dˆ„ ƒZ›eld‰dŠ„ ƒZœeld‹dŒ„ ƒZelddŽ„ ƒZželdd„ ƒZŸeld‘d’„ ƒZ eld“d”„ ƒZ¡eld•d–„ ƒZ¢eld—d˜„ ƒZ£eld™dš„ ƒZ¤eld›dœ„ ƒZ¥elddž„ ƒZ¦eldŸd „ ƒZ§eld¡d¢„ ƒZ¨eld£d¤„ ƒZ©eld¥d¦„ ƒZªeld§d¨„ ƒZ«eld©dª„ ƒZ¬eld«d¬„ ƒZ­eld­d®„ ƒZ®eld¯d°„ ƒZ¯eld±d²„ ƒZ°eld³d´„ ƒZ±eldµd¶„ ƒZ²eld·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.

é    )Ú
DerivativeÚdiff)ÚMul)ÚEÚIÚRationalÚpi)ÚEqÚNe)ÚS)ÚDummyÚsymbols)ÚimÚre)ÚLambertWÚexpÚlog)ÚasinhÚcoshÚsinhÚtanh)ÚcbrtÚsqrt)Ú	Piecewise)ÚacosÚasinÚatanÚcosÚsecÚsinÚtan)ÚEiÚerfi)Úhyper)ÚIntegralÚ	integrate)Úrootof)ÚFunctionÚSymbol)ÚairyaiÚairybiÚbesseljÚbesselyÚ
lowergamma)ÚNonElementaryIntegral)Úclassify_odeÚdsolve)ÚallhintsÚ_remove_redundant_solutions)ÚFirstLinearÚODEMatchErrorÚSingleODEProblemÚSingleODESolverÚNthOrderReducible)Úcheckodesol)ÚraisesÚslowNÚxÚuÚyÚfÚgzC1:11úa b cz^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)rB   rC   rD   rE   Úexample_namer:   rF   rG   rH   rI   rJ   )ÚgetÚappend)ÚsolverrA   ÚexampleÚtemp©rE   © ú[/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/solvers/ode/tests/test_single.pyÚinnerŸ   s"   õz _add_example_keys.<locals>.innerrR   )rE   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:   rJ   T)Úsolver_flagÚ	xpass_msgÚ )Ú_test_particular_exampleÚprint)Úode_examplesÚrun_slow_testrO   Ú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Ú	_IntegralÚseries)Úlistr1   Ú_get_all_examplesÚendswithÚ_test_all_examples_for_one_hint)ÚrunxfailÚ	all_hintsÚall_examplesÚour_hintrR   rR   rS   Ú_test_all_hints¿   s   ýrj   c                    s,   t |ƒtkrt‡ fdd„|D ƒƒS ˆ  |¡S )Nc                 3   s    | ]}ˆ   |¡V  qd S ©N)Údummy_eq)Ú.0Úsub_dsol©Úexpected_solrR   rS   Ú	<genexpr>Ë   s   € z"_test_dummy_sol.<locals>.<genexpr>)Útyperb   Úanyrl   )rp   Ú
dsolve_solrR   ro   rS   Ú_test_dummy_solÉ   s   
ru   c                 C   s*   t ƒ }|D ]}|d |krt| |ƒ qd S )NrK   )rc   rY   )ri   rK   rh   rO   rR   rR   rS   Ú_test_an_exampleÐ   s   
€þrv   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 rD||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 |r6|g kr6d}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}|s6|
s6t|||dd|kr6||d< d}tj| |||d}|r0tj||d}t|ƒ‚d| |d< |rD|rD|d |  |d < |S )!NrB   rC   rK   rD   rE   rX   )ÚmsgrW   rF   rG   rH   rI   T)rO   rB   ri   Ú
match_list©ÚsimplifyrJ   é   r   Úexception_list)ÚerJ   rO   rB   rw   F)rO   rB   rC   rt   c                 S   s   g | ]}d ‘qS )©Tr   rR   ©rm   ÚirR   rR   rS   Ú
<listcomp>  s    z,_test_particular_example.<locals>.<listcomp>r~   )Úsolve_for_funcÚunsolve_list)rJ   rB   rC   rt   )rO   rB   zAssertionError: zis now passing for the hintrW   )r/   Úhint_messageÚformatÚAssertionErrorr0   ÚlenÚ	ExceptionÚ	tracebackÚ	print_excÚexception_msgÚstrrZ   rr   rb   Úhasr   ru   Úexpected_sol_messageÚranger8   Údsol_incorrect_msgÚcheckodesol_msg)ri   Úode_examplerV   rB   rp   rO   ÚxfailrE   r]   rF   rG   rH   rI   ÚxpassÚmessagert   r}   Úexpect_sol_checkÚsub_solÚ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 )NrD   rx   rƒ   r|   rw   rX   )rJ   ÚmatchedÚsolveÚunsolveÚ
exceptions)rc   rY   rL   rZ   r‡   Úcheck_hint_msgr…   )ri   rh   rf   rx   rƒ   r|   r’   r“   r]   rw   Úmatch_countÚsolvedrR   rR   rS   re   '  s0   
€üre   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 rk   )ÚmatchesrR   ©rN   rR   rS   Ú<lambda>F  ó    z&test_SingleODESolver.<locals>.<lambda>c                      r    rk   ©Úget_general_solutionrR   r¢   rR   rS   r£   G  r¤   c                      r    rk   )Ú_matchesrR   r¢   rR   rS   r£   H  r¤   c                      r    rk   )Ú_get_general_solutionrR   r¢   rR   rS   r£   I  r¤   c                      r    rk   r¥   rR   r¢   rR   rS   r£   R  r¤   Fr{   é   é   é   T)r5   r>   r;   r   r6   r9   ÚNotImplementedErrorr3   r4   r¡   ÚorderÚis_autonomous)ÚproblemrR   r¢   rS   Útest_SingleODESolverA  s&   *"<8<r°   c                   C   ó   t tƒ d S rk   )r^   Ú)_get_examples_ode_sol_linear_coefficientsrR   rR   rR   rS   Útest_linear_coefficientsf  ó   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   r/   r^   Ú>_get_examples_ode_sol_1st_homogeneous_coeff_subs_dep_div_indepÚ0_get_examples_ode_sol_1st_homogeneous_coeff_best)Úeq1Úc1Úeq2Úc2ÚsdiÚsidrR   rR   rS   Útest_1st_homogeneous_coeff_odej  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_odey  s   rÁ   c                   C   r±   rk   ©r^   Ú;_get_examples_ode_sol_nth_linear_constant_coeff_homogeneousrR   rR   rR   rS   Ú*test_nth_linear_constant_coeff_homogeneous  ó   rÄ   c                   C   ó   t tdd d S rÀ   rÂ   rR   rR   rR   rS   Ú8test_slow_examples_nth_linear_constant_coeff_homogeneous„  ó   rÇ   c                   C   r±   rk   )r^   Ú%_get_examples_ode_sol_2nd_linear_airyrR   rR   rR   rS   Útest_Airy_equation‰  r´   rÊ   c                   C   r±   rk   )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ª   r{   )Ú
factorableÚseparable_reducedÚ	lie_groupÚseparable_reduced_Integral)r>   r;   r   r    r/   r^   Ú'_get_examples_ode_sol_separable_reduced)ÚdfrB   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±   rk   )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 )
Nr{   rª   éÿÿÿÿé   r©   )r{   Ú2nd_hypergeometric_Integral)rJ   r~   )r;   r>   r   r   r	   ÚC1ÚC2r$   r   r#   r0   r8   ©rB   rC   rR   rR   rS   Ú$test_2nd_2F1_hypergeometric_integral¥  s,   F0ÿÿÿÿÿÿÿÿþrÝ   c                   C   r±   rk   )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ª   r{   Ú+2nd_nonlinear_autonomous_conserved_IntegralF©rJ   rz   c                 S   s   g | ]}|  ¡ ‘qS rR   )Údoit)rm   ÚsrR   rR   rS   r   »  s    zDtest_2nd_nonlinear_autonomous_conserved_integral.<locals>.<listcomp>r~   )r>   r;   r   r   r	   r$   r   rÚ   Ú_urÛ   r0   Úziprl   r8   )rB   ÚactualrŸ   Úarã   rR   rR   rS   Ú0test_2nd_nonlinear_autonomous_conserved_integral³  s   44ÿ$rè   c                   C   r±   rk   )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Û   r2   r^   Ú#_get_examples_ode_sol_nth_algebraic)ÚeqnÚsolnsÚ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±   rk   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 )
NÚ:nth_linear_constant_coeff_variation_of_parameters_Integralé   rª   r«   Trá   F©r­   r‚   r~   )r>   r;   r   r   r   r0   r8   )ri   rB   Úsol_simpÚ	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±   rk   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ª   FÚ1st_exact_Integralry   r{   r÷   )r   r>   r;   r   r   r0   r8   )rB   Ú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   ÚHalfr/   r^   r  )rB   ri   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 rk   )r7   r5   r>   r;   r§   )rB   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±   rk   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±   rk   )r^   Ú_get_examples_ode_sol_riccatirR   rR   rR   rS   Útest_Riccati_special_minus2+  r´   r  c                   C   r±   rk   )r^   Ú*_get_examples_ode_sol_1st_rational_riccatirR   rR   rR   rS   Útest_1st_rational_riccati/  rÅ   r  c                   C   r±   rk   )r^   Ú_get_examples_ode_sol_bernoullirR   rR   rR   rS   Útest_Bernoulli4  r´   r  c                   C   r±   rk   )r^   Ú _get_examples_ode_sol_1st_linearrR   rR   rR   rS   Útest_1st_linear8  r´   r  c                   C   r±   rk   )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`   )r/   r   r>   r;   r^   Ú_get_examples_ode_sol_liouville)rJ   Únot_Liouville1Únot_Liouville2rR   rR   rS   Útest_Liouville_ODE@  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>   r/   r^   Ú'_get_examples_ode_sol_euler_homogeneous)r;   Útrç   ÚbÚcr=   ri   rB   rR   rR   rS   Ú*test_nth_order_linear_euler_eq_homogeneousO  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©ÚintegerÚ<nth_linear_euler_eq_nonhomogeneous_undetermined_coefficientsr©   r#  rª   r$  )r   r   r>   r/   r   r^   Ú._get_examples_ode_sol_euler_undetermined_coeff©r;   r&  rç   r'  r(  Údri   rB   rR   rR   rS   ÚGtest_nth_order_linear_euler_eq_nonhomogeneous_undetermined_coefficients]  s   DJr0  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>   r/   r   r^   Ú$_get_examples_ode_sol_euler_var_parar.  rR   rR   rS   ÚEtest_nth_order_linear_euler_eq_nonhomogeneous_variation_of_parametersk  s   Dhr5  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   r{   ©r&   r;   ©rm   ÚnrR   rR   rS   r   |  s   J z;_get_examples_ode_sol_euler_homogeneous.<locals>.<listcomp>rö   r"  éýÿÿÿrª   r   rÜ   r«   r©   é   r{   iƒÿÿÿé=   r3  é	   Ú2nd_power_series_regularr,  ©rB   rC   rD   T©rB   rC   rG   )	Úeuler_hom_01Úeuler_hom_02Úeuler_hom_03Úeuler_hom_04Úeuler_hom_05Úeuler_hom_06Úeuler_hom_07Úeuler_hom_08Úeuler_hom_09©rJ   rE   rA   )r   r>   r;   r	   r   rÚ   rÛ   r   r   r   ÚC3r   r   ÚC4ÚC5ÚC6r   )Úr1Úr2Úr3Úr4Úr5rR   rR   rS   r%  z  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ª   r{   rÜ   r«   r©   r2  é   é    é@   rØ   é   r>  é   r$  rö   )Úeuler_undet_01Úeuler_undet_02Úeuler_undet_03Úeuler_undet_04Úeuler_undet_05Úeuler_undet_06Úeuler_undet_07rM  )r>   r;   r	   r   rÚ   rÛ   r   r   rN  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 )Nr1  rª   r©   r«   r>  rÜ   r2  r{   rö   )Úeuler_var_01Úeuler_var_02Úeuler_var_03Úeuler_var_04Úeuler_var_05Úeuler_var_06rM  )r>   r;   r	   r   rÚ   rÛ   r   r   r   r   r!   r   r   rR   rR   rR   rS   r4  â  s,   B&þNjþJ2þ@4þ0*þ<>þæýr4  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   r{   rÎ   rB  rÜ   )Úbernoulli_01Úbernoulli_02Úbernoulli_03rM  )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 )	NÚRiccati_special_minus2Ú
riccati_01rª   r«   éþÿÿÿr©   rÜ   rM  )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 )=NÚ1st_rational_riccatirª   r   rÜ   r©   ro  r{   r>  rö   r«   é   é   rØ   r@  é<   é^   éH   é!   r2  é   é9   é:   é   i  iì  iô  rW  r3  é(   r6  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Ñù )
Úrational_riccati_01Úrational_riccati_02Úrational_riccati_03Úrational_riccati_04Úrational_riccati_05Úrational_riccati_06Úrational_riccati_07Úrational_riccati_08Úrational_riccati_09Úrational_riccati_10rM  )
r>   r;   r	   r   r   rÚ   r   r   r   r   rR   rR   rR   rS   r  2  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_linearÚ	linear_01rª   rÜ   rM  )	r>   r;   r	   r   rÚ   r   r   r   r"   rR   rR   rR   rS   r    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 ƒtt  ƒd  ƒƒtttƒtt tt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, a4rÍ   Úfact_01r   )Ú	separableÚ	1st_exactr‰  ri  Ú1st_homogeneous_coeff_bestr¶   rµ   rÏ   r,  Ú1nth_linear_constant_coeff_variation_of_parametersr1  r	  rB  Úfact_02rª   )ri  r‰  rÏ   Úfact_03r«   rÜ   Úfact_04Úfact_05r{   r©   Úfact_06T©rB   rC   r:   Úfact_07Úfact_08Úfact_09r>  rö   Úfact_10rØ   r3  Úfact_11r×   ©rB   rC   rH   Úfact_12rÏ   Úfact_13Úfact_14Úfact_15Úfact_16Úfact_17g      à¿rC  )Úfact_18Úfact_19Úfact_20rM  )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=   Úa0Úa1Úa2Úa3Úa4rR   rR   rS   r  Ž  sT  ýÿ$Pýô8Dþî4@þé*Jþä!(,,ýùß+.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©Úpositiver>   Úalmost_linearrª   r«   r{   r×   rÜ   r©   éüÿÿÿ)Úalmost_lin_01Úalmost_lin_02Úalmost_lin_03Úalmost_lin_04Úalmost_lin_05rM  )Ú'sympy.functions.special.error_functionsr!   r(   r'   r;   r   r	   rÚ   r   r   r   r   r   r   )r!   rª  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Ü   r{   r   r«   )Úliouville_01Úliouville_02Úliouville_03Úliouville_04Úliouville_05Úliouville_06Úliouville_07Úliouville_08rM  )r(   r   r>   r;   r   r	   r   rÚ   rÛ   r   Úexpandr   r-   r   r.   )r<  Ú_yrR   rR   rS   r  T  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ÚkÚnth_algebraicÚalgeb_01r{   rª   rÜ   Úalgeb_02Úalgeb_03Úalgeb_04r«   ©rB   rC   rE   Úalgeb_05rŒ  rB  Úalgeb_06Úalgeb_07Úalgeb_08Úalgeb_09Úalgeb_10Úalgeb_11r   )rŒ  r  r‰  ri  rŽ  r¶   rµ   rÏ   r	  r,  r  r1  Úalgeb_12Úalgeb_13Úalgeb_14Úalgeb_15rö   Úalgeb_16Úalgeb_17Trr  r©   é   r>  )Úalgeb_18Úalgeb_19Úalgeb_20Úalgeb_21Úalgeb_22Úalgeb_23rM  )r   r'   r(   r>   r;   r   r	   rÚ   rÛ   r   r   r   r?   rN  r   r   r!   r   r
   )ÚMÚmÚrr&  r¿  rÀ  rR   rR   rS   rì   ˆ  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 )NÚnth_order_reduciblerª   r   r×   Tr•  r«   r©   ro  rÜ   r>  r=  rö   r{   F)Úevaluate)Úreducible_01Úreducible_02Úreducible_03Úreducible_04Úreducible_05Úreducible_06Úreducible_07Úreducible_08Úreducible_09Úreducible_10Úreducible_11Úreducible_12rM  )r>   r;   r	   r   rÚ   r   rÛ   r   r   r!   r   r   r   rN  r   rO  rP  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 alphaTr«  Úomegar	  Úundet_01r}  rX  r{   r•  Úundet_02r2  Úundet_03r©   ro  Úundet_04r3  Úundet_05r|  Úundet_06Úundet_07Úundet_08r>  Úundet_09Úundet_10r@  Úundet_11Úundet_12Úundet_13Úundet_14Úundet_15Úundet_16rW  Úundet_17Úundet_18rs  Úundet_19rØ   Úundet_20r$  Úundet_21r×   r=  Úundet_22Úundet_23Úundet_24Úundet_25iëÿÿÿé   é‚   i  Úundet_26Úundet_27Úundet_28Úundet_29Úundet_30rÜ   Úundet_31é1   iùÿÿÿr{  Úundet_32Úundet_33Úundet_34rÆ  )Úundet_35Úundet_36Úundet_37Úundet_38Úundet_39Úundet_40rM  )r   r;   r>   r   r   r'   r(   r	   rN  rÚ   rÛ   r   r   r   r   r   rO  r   r
  rP  r   r   )r?   Úf2r(  r&  r<   ÚRÚLÚCÚE_0Úalpharí  rR   rR   rS   r  v  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ƒ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(œttƒ t¡tttƒt ƒ tttƒtttƒ tttƒ d  ƒƒgdœd)œ
¥d*œS )+Nza,té`   gš™™™™™#@gš™™™™™É?ÚvrŒ  Úseparable_01rÜ   Úseparable_02Úseparable_03Úseparable_04rª   r{   Úseparable_05Úseparable_06Úseparable_07r«   r©   Tr•  Úseparable_08Úseparable_09)rB   rC   r:   rG   Úseparable_10Úseparable_11Úseparable_12Úseparable_13Úseparable_14Úseparable_15Úseparable_16r×   Úseparable_17rÏ   rB  gfffff†I@gÃXvH”?rÆ  g	ý‡Q|%QÀg+RÕ4JÂ?)rB   rC   rE   rG   )
Úseparable_18Úseparable_19Úseparable_20Úseparable_21Úseparable_22Úseparable_23Úseparable_24Úseparable_25Úseparable_26Úseparable_27rM  )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À  Úf1r   rR   rR   rS   r  ~  s.  þÿþúþõ(þð þë  þæB::ÿüá&420ÿüÚ-,üÓ40NýÌ:R0&þúÆCþ½H440þþ¸P(þ°U,ü«\$þ¤aD*(þþŸjþ<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ª   Tr•  r{   rÏ   )rB   rC   rD   r:   rG   )rB   rC   rD   r:   r«   F)rB   rC   r:   rF   ©rB   rC   rF   r@  iåÿÿÿr  )rB   rC   r:   rH   r   rÜ   c              	   S   s6   g | ]}t ttƒ|tttd   d ƒ d t ƒ‘qS )rª   r{   )r	   r>   r;   r   rÚ   r   rR   rR   rS   r   ƒ  s   6 z3_get_examples_ode_sol_1st_exact.<locals>.<listcomp>)r×   r{   )Ú1st_exact_01Ú1st_exact_02Ú1st_exact_03Ú1st_exact_04Ú1st_exact_05Ú1st_exact_06Ú1st_exact_07Ú1st_exact_08Ú1st_exact_09Ú1st_exact_10Ú1st_exact_11rM  )r>   r;   r   r   r   r	   r   rÚ   r   r   r   r   r   r   r   rR   rR   rR   rS   rü   2  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  r}  rX  r{   Tr•  r2  r©   ro  r3  r@  r|  r>  r$  rW  rÜ   )Úvar_of_parameters_01Úvar_of_parameters_02Úvar_of_parameters_03Úvar_of_parameters_04Úvar_of_parameters_05Úvar_of_parameters_06Úvar_of_parameters_07Úvar_of_parameters_08Úvar_of_parameters_09Úvar_of_parameters_10Úvar_of_parameters_11Úvar_of_parameters_12Úvar_of_parameters_13Úvar_of_parameters_14Úvar_of_parameters_15rM  )r   r;   r>   r   r	   rN  rÚ   rÛ   r   r   r   rO  r   rP  r   r   )r?   r  r(  rR   rR   rS   rò   “  sª   
6
Pý@ýý$,ý,4ý>Fý.,ý.@ý8.ý*(ý"2ÿ2ÿü:ýDâÿÿÿÿÿþ<Žþ"<ÿÿ
ÿü©ýrò   c                   C   sþ  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œtd t tƒ td¡ tt tƒ t¡  td td  td  td  t tƒ  tt tƒttt
td ƒtt
td td  ƒ ƒ ttt
td ƒtt
td td  ƒ ƒ  ƒgdœdœdœS )NÚ2nd_linear_besselrª   r©   rÜ   é   rö   r   éQ   r{   r@  r«   é   )Ú2nd_lin_bessel_01Ú2nd_lin_bessel_02Ú2nd_lin_bessel_03Ú2nd_lin_bessel_04Ú2nd_lin_bessel_05Ú2nd_lin_bessel_06Ú2nd_lin_bessel_07Ú2nd_lin_bessel_08Ú2nd_lin_bessel_09Ú2nd_lin_bessel_10Ú2nd_lin_bessel_11Ú2nd_lin_bessel_12rM  )r>   r;   r   r	   rÚ   r+   rÛ   r,   r   r   r   rç   r(  r'  rR   rR   rR   rS   ré   ü  sP   <&þ<.þ8&þH>þ<6þ@NþD6þ@>þ4BþH>þ,>þP^þÈý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 )NÚ2nd_hypergeometricr{   rª   r«   rö   rØ   )r×   ro  rÜ   ro  r[  r#  éûÿÿÿr@  i`þÿÿiQ	  r  i*  éÄ   r>  é-   éb   r©   é   r6  é   éT   TrC  )Ú2nd_2F1_hyper_01Ú2nd_2F1_hyper_02Ú2nd_2F1_hyper_03Ú2nd_2F1_hyper_04rM  )	r>   r;   r   r   r	   rÚ   r#   rÛ   r   rR   rR   rR   rS   rÕ   A  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 )NÚ"2nd_nonlinear_autonomous_conservedrª   r{   Fr=  r«   r©   rà   ©rB   rC   rF   rD   )Ú%2nd_nonlinear_autonomous_conserved_01Ú%2nd_nonlinear_autonomous_conserved_02Ú%2nd_nonlinear_autonomous_conserved_03Ú%2nd_nonlinear_autonomous_conserved_04Ú%2nd_nonlinear_autonomous_conserved_05rM  )r>   r;   r   r   r   r	   r$   r   rÚ   rä   rÛ   r   r   r   r   r   r   r   rR   rR   rR   rS   rÞ   b  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Î   r{   rª   r«   r>  FrÏ   ru  r©   r3  T)rB   rC   rF   rG   r=  r   r=  rÜ   rB  iôÿÿÿr}  r@  )rB   rC   rG   r:   )Úseparable_reduced_01Úseparable_reduced_02Úseparable_reduced_03Úseparable_reduced_04Úseparable_reduced_05Úseparable_reduced_06Úseparable_reduced_07Úseparable_reduced_08Úseparable_reduced_09Úseparable_reduced_10Úseparable_reduced_11Úseparable_reduced_12rM  )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 )$Nr@   rÏ   Úlie_group_01r©   rª   T)rB   rC   rH   rI   Úlie_group_02r›  Úlie_group_03rØ   rö   r«   r   Úlie_group_04rB  Úlie_group_05rÍ   Úlie_group_06r{   rÜ   Úlie_group_07Úlie_group_08Úlie_group_09Úlie_group_10r×   Úlie_group_11Úlie_group_12Úlie_group_13Úlie_group_14Úlie_group_15Úlie_group_16Úlie_group_17)Úlie_group_18Úlie_group_19Úlie_group_20rM  )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 )NÚ2nd_linear_airyrª   rÜ   r{   r«   )Ú2nd_lin_airy_01Ú2nd_lin_airy_02rM  )	r>   r;   r   r	   rÚ   r)   rÛ   r*   r   rR   rR   rR   rS   rÉ   {	  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ç   Tr«  rÀ  )Úrealc                 S   s&   g | ]}t td  dt  d |ƒ‘qS )rö   r[  rª   r:  r;  rR   rR   rS   r   ”	  ó   & 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«   r{   r:  r;  rR   rR   rS   r   •	  rŸ  c                 S   s2   g | ]}t td  dtd   dt  d |ƒ‘qS )rö   éd   r«   éè  r{   r:  r;  rR   rR   rS   r   –	  s   2 c                 S   s&   g | ]}t td  td  d |ƒ‘qS )rö   r©   r|  r:  r;  rR   rR   rS   r   —	  rŸ  c                 S   s"   g | ]}t td  t d |ƒ‘qS )rö   r{   r:  r;  rR   rR   rS   r   ˜	  s   " r{   Ú%nth_linear_constant_coeff_homogeneousÚlin_const_coeff_hom_01rª   ro  rÜ   Úlin_const_coeff_hom_02r«   Úlin_const_coeff_hom_03Úlin_const_coeff_hom_04r>  r=  r•  Úlin_const_coeff_hom_05r[  r©   Úlin_const_coeff_hom_06r   r×   Úlin_const_coeff_hom_07r|  Úlin_const_coeff_hom_08Úlin_const_coeff_hom_09Úlin_const_coeff_hom_10Úlin_const_coeff_hom_11Úlin_const_coeff_hom_12r3  iúÿÿÿÚlin_const_coeff_hom_13Úlin_const_coeff_hom_14Úlin_const_coeff_hom_15Úlin_const_coeff_hom_16r2  Úlin_const_coeff_hom_17Úlin_const_coeff_hom_18Úlin_const_coeff_hom_19Úlin_const_coeff_hom_20r$  Úlin_const_coeff_hom_21é%   Úlin_const_coeff_hom_22rW  Úlin_const_coeff_hom_23Úlin_const_coeff_hom_24Úlin_const_coeff_hom_25Úlin_const_coeff_hom_26rr  Úlin_const_coeff_hom_27Úlin_const_coeff_hom_28Úlin_const_coeff_hom_29Úlin_const_coeff_hom_30Úlin_const_coeff_hom_31Úlin_const_coeff_hom_32Úlin_const_coeff_hom_33rC  Úlin_const_coeff_hom_34r   r¡  é2   r@  )Úlin_const_coeff_hom_35Úlin_const_coeff_hom_36Úlin_const_coeff_hom_37Úlin_const_coeff_hom_38Úlin_const_coeff_hom_39Úlin_const_coeff_hom_40Úlin_const_coeff_hom_41Úlin_const_coeff_hom_42Úlin_const_coeff_hom_43Úlin_const_coeff_hom_44Úlin_const_coeff_hom_45Úlin_const_coeff_hom_46Úlin_const_coeff_hom_47Úlin_const_coeff_hom_48rM  )r(   r   r   r>   r;   r   r	   rÚ   rÛ   rN  r   r   rO  r   r   rP  r   r   rQ  ÚC7ÚC8ÚC10ÚC9r   r   r=   )rç   rÀ  rR  rS  rT  rU  rV  Úr6Úr7Úr8Úr9Úr10Úr11Úr12Úr13Úr14Úr15Úr16Úr17Úr18Úr19Úr20Úr21Úr22Úr23Úr24Úr25r   rR   rR   rS   rÃ   Ž	  s    þÿ,"þú$þõ0.ýð00ýê.<ýä"<LýÞ(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µ   Tr•  r{   rª   Fr=  rC  )Údep_div_indep_01Údep_div_indep_02Údep_div_indep_03Údep_div_indep_04Údep_div_indep_05rM  )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 )	NÚlinear_coefficientsÚlinear_coeff_01r«   rª   r>  r@  rÜ   rM  )r>   r;   r   r	   rÚ   r   rR   rR   rR   rS   r²   ô
  s   $,þÿýr²   c                   C   sŒ  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dt   ƒ ƒtt tƒttt tdt   ƒ ƒgddœdœdœS )NrŽ  rª   r{   TrC  rÜ   r«   ro  r©   r®  r•  )Ú1st_homogeneous_coeff_best_01Ú1st_homogeneous_coeff_best_02Ú1st_homogeneous_coeff_best_03Ú1st_homogeneous_coeff_best_04Ú1st_homogeneous_coeff_best_05Ú1st_homogeneous_coeff_best_06Ú1st_homogeneous_coeff_best_07Ú1st_homogeneous_coeff_best_08rM  )r>   r;   r   r   r	   r   rÚ   r   r   r   r   rR   rR   rR   rS   r¸     s@   0,ýV&þH:ý4,ý$>þ,þ04þ@HýÕý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 rk   )r%  r-  r4  r  r  rì   r  r  rü   r  r  r  r  r  r  rò   ré   rÕ   rÞ   rÑ   rË   rÉ   rÃ   r¸   r·   r²   )rh   rR   rR   rS   rc   :  sh   ÿþýüûúùø	÷
öõôóòñðïîíìëêéèçrc   )F)µÚ__doc__Úsympy.core.functionr   r   Úsympy.core.mulr   Úsympy.core.numbersr   r   r   r   Úsympy.core.relationalr	   r
   Úsympy.core.singletonr   Úsympy.core.symbolr   r   Ú$sympy.functions.elementary.complexesr   r   Ú&sympy.functions.elementary.exponentialr   r   r   Ú%sympy.functions.elementary.hyperbolicr   r   r   r   Ú(sympy.functions.elementary.miscellaneousr   r   Ú$sympy.functions.elementary.piecewiser   Ú(sympy.functions.elementary.trigonometricr   r   r   r   r   r   r    r´  r!   r"   Úsympy.functions.special.hyperr#   Úsympy.integrals.integralsr$   r%   Úsympy.polys.rootoftoolsr&   Ú
sympy.corer'   r(   Úsympy.functionsr)   r*   r+   r,   r-   Úsympy.integrals.rischr.   Úsympy.solvers.oder/   r0   Úsympy.solvers.ode.oder1   r2   Úsympy.solvers.ode.singler3   r4   r5   r6   r7   Úsympy.solvers.ode.subscheckr8   Úsympy.testing.pytestr9   r:   r‰   r;   r<   rä   r=   r>   r?   rÚ   rÛ   rN  rO  rP  rQ  rÕ  rÖ  rØ  r×  rç   r'  r(  r„   rŽ   r‘   r   r‹   r   rU   r^   rj   ru   rv   rY   re   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)  r0  r5  r%  r-  r4  r  r  r  r  r  r  r  rì   r  r  r  rü   rò   ré   rÕ   rÞ   rÑ   rË   rÉ   rÃ   r·   r²   r¸   rc   rR   rR   rR   rS   Ú<module>   sV  $



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

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