o
    à8VaV/  ã                   @   sÖ   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 d dlmZmZ d dlmZmZ d dlmZmZ edƒ\ZZZZZ eddd\Z!Z"Z#Z$ed	ƒZ%ed
ƒZ&edƒZ'edd„ ƒZ(dd„ Z)dS )é    )ÚcosÚ
DerivativeÚdiffÚEqÚerfÚerfiÚexpÚFunctionÚIÚIntegralÚlogÚpiÚRationalÚsinÚsqrtÚSymbolÚsymbolsÚEi)ÚcheckodesolÚchecksysodesol)ÚbesseljÚbessely)ÚraisesÚslowzC0:5zu,x:zT)ÚrealÚfÚgÚhc               
   C   s
  t tdd„ ƒ t tdd„ ƒ tttƒ t¡ttttƒtƒƒdttƒ t¡ tttƒ t¡ d fks4J ‚tttƒ t¡tttƒtƒƒdusGJ ‚tttƒ t¡tttƒtƒƒdksZJ ‚tttƒd d	ttƒ  d
ttƒ  t dƒ} tt| jtƒ| ƒdks~J ‚tt| jtƒt	ttƒƒ | ƒdks‘J ‚tt| jtd
ƒ| ƒdksŸJ ‚tt| jtd
ƒt	ttƒƒ | ƒdks³J ‚tt| jtdƒ| ƒdksÁJ ‚tt| jtdƒt	ttƒƒ | ƒdksÕJ ‚tt| jtdƒtttƒtt
tƒ ƒƒddtd  t
tƒd d
 t
tƒ  t
tƒd  t
tƒd
  dtd  t
tƒd   d fksJ ‚ttt	ttƒƒt tƒt tt	ttƒƒt dƒƒdks7J ‚ttt	ttƒƒt tƒt tt	ttƒƒt dƒdddksWJ ‚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
   ƒgƒdddtfgksŽJ ‚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
   ƒhƒdddtfhksÅJ ‚tttƒ t¡dttƒ d
  tttƒd
 tƒƒddgksåJ ‚tttƒ t¡ttƒ ttt	tƒ ttƒƒƒdksJ ‚tt	ttƒt ƒ ttƒ tttƒ t¡  }tttƒt
t
tt ƒt  ƒƒ}t||ƒd  ttƒ¡r7J ‚ttttttƒtƒ tƒt t	tƒƒ}tttƒttt
tƒ  t	tƒ ttƒ ƒ}t||d
ddd slJ ‚td
 ttƒ td
¡ tttƒ t¡  d
td
  d ttƒ  }tttƒttdt td
ƒt ƒ ttdt td
ƒt ƒ  ƒ}t||ƒdks¶J ‚tttƒ t¡ttƒttƒ ƒtttƒ t¡ttƒttƒ ƒg}tttƒt tt	d
t ƒ  ƒtttƒttt	d
t ƒ  ƒg}t||ƒdddgfksJ ‚d S )Nc                   S   s"   t tttƒ t¡ttttƒtƒƒS ©N)r   r   ÚxÚyr   r   © r!   r!   úH/usr/lib/python3/dist-packages/sympy/solvers/ode/tests/test_subscheck.pyÚ<lambda>   s   " z"test_checkodesol.<locals>.<lambda>c                   S   s(   t ttƒ t¡ttttƒtƒtttƒƒS r   )r   r   r   r   r   r    r!   r!   r!   r"   r#      s
    ÿÿFé   T)Fr$   é   é   é   r   )Tr   é   é<   é   é	   )Úsolve_for_func)Zorderr,   é   )r   Ú
ValueErrorr   r   r   r   r   r    Zlhsr   r   ÚC1ÚC2Zhasr   r   r   r
   r   r   r   )Zsol1Zeq3Zsol3ZeqnÚsolÚeqZeqsr!   r!   r"   Útest_checkodesol   sv   &ÿ&&.&(($$
ÿ
ÿÿÿ
ÿ0
ÿ.ÿ
ÿ$0ÿ
þ$0ÿ
þ0
ÿ8. &*B>@> r3   c                  C   sŠ  t dtd\} }}tdƒ}tt| |ƒ|ƒd||ƒ ƒtt||ƒ|ƒd| |ƒ ƒf}t| |ƒdt tdtdƒ | ƒ dt tdtdƒ | ƒ  ƒt||ƒdtdƒ t tdtdƒ | ƒ dtdƒ t tdtdƒ | ƒ  ƒg}t	||ƒd	d
d
gfks€J ‚tt| |ƒ|ƒd| |ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d||ƒ  ƒf}t| |ƒdt t|tdƒ d t
ddƒ  ƒ dt t|tdƒd t
ddƒ  ƒ  ƒt||ƒttdƒ d t
ddƒ  t|tdƒ d t
ddƒ  ƒ tt
ddƒtdƒd   t|tdƒd t
ddƒ  ƒ  ƒg}t	||ƒd	d
d
gfks!J ‚tt| |ƒ|ƒ| |ƒ||ƒ ƒtt||ƒ|ƒd| |ƒ d||ƒ  ƒf}t| |ƒtttdƒ| d ƒ tttdƒ| d ƒ  t|t
ddƒ ƒ ƒt||ƒtd tdƒt d  ttdƒ| d ƒ tdƒt d td  ttdƒ| d ƒ  t|t
ddƒ ƒ ƒg}t	||ƒd	d
d
gfks³J ‚tt| |ƒ|ƒ| |ƒ||ƒ d ƒtt||ƒ|ƒd| |ƒ d||ƒ  d ƒf}t| |ƒtt|tdƒ d  ƒ tt|tdƒd  ƒ  t
ddƒ ƒt||ƒttdƒ d  t|tdƒ d  ƒ tdtdƒ  t|tdƒd  ƒ  t
ddƒ ƒg}t	||ƒd	d
d
gfks<J ‚tt| |ƒ|ƒ| |ƒ||ƒ d ƒtt||ƒ|ƒd| |ƒ ||ƒ d ƒf}t| |ƒtttdƒ| ƒ tttdƒ| ƒ  t|ƒ t
ddƒ ƒt||ƒtdƒt ttdƒ| ƒ tdƒt ttdƒ| ƒ  t|ƒ t
ddƒ ƒg}t	||ƒd	d
d
gfks¼J ‚tt| |ƒ|ƒd| | |ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d| ||ƒ  ƒf}t| |ƒtttd|ƒ ¡ ƒ tttd|ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒt||ƒtttd|ƒ ¡ ƒ tttd|ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒg}t	||ƒd	d
d
gfksDJ ‚tt| |ƒ|ƒd| | |ƒ |d ||ƒ  ƒtt||ƒ|ƒ|d  | |ƒ d| ||ƒ  ƒf}t| |ƒttt|d |ƒ ¡ ƒ ttt|d |ƒ ¡ ƒ  ttd| |ƒ ¡ ƒ ƒt||ƒt tt|d |ƒ ¡ ƒ ttt|d |ƒ ¡ ƒ  ttd| |ƒ ¡ ƒ ƒg}t	||ƒd	d
d
gfksØJ ‚tt| |ƒ|ƒd| | |ƒ |d ||ƒ  ƒtt||ƒ|ƒ|d  | |ƒ d| d|d   ||ƒ  ƒf}t| |ƒtttdƒ d t
ddƒ t|d |ƒ ¡  ƒ tttdƒd t
ddƒ t|d |ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒt||ƒttdƒ d t
ddƒ  ttdƒ d t
ddƒ t|d |ƒ ¡  ƒ ttdƒd t
ddƒ  ttdƒd t
ddƒ t|d |ƒ ¡  ƒ  ttd| |ƒ ¡ ƒ ƒg}t	||ƒd	d
d
gfks¶J ‚tt| |ƒ||ƒd| |ƒ d||ƒ  ƒtt||ƒ||ƒ| |ƒd||ƒ  ƒf}ttdƒ d ƒ }ttdƒ d ƒ}ttdƒd ƒ }ttdƒd ƒ}	t| |ƒdt t|| ƒ dt t|| ƒ  dt t|| ƒ  dt t||	 ƒ  ƒt||ƒt|d d  t|| ƒ t|d d  t|| ƒ  t|d d  t|| ƒ  t|	d d  t||	 ƒ  ƒg}t	||ƒd	d
d
gfkszJ ‚tt| |ƒ||ƒd| |ƒ d||ƒ  d ƒtt||ƒ||ƒd| |ƒ d||ƒ  d ƒf}ttdƒ d t
ddƒ ƒ }ttdƒ d t
ddƒ ƒ}ttdƒd t
ddƒ ƒ }ttdƒd t
ddƒ ƒ}	t| |ƒdt t|| ƒ dt t|| ƒ  dt t|| ƒ  dt t||	 ƒ  t
dd ƒ ƒt||ƒt|d d  t|| ƒ t|d d  t|| ƒ  t|d d  t|| ƒ  t|	d d  t||	 ƒ  t
d!d ƒ ƒg}t	||ƒd	d
d
gfksbJ ‚tt| |ƒ||ƒdt||ƒ|ƒ  d| |ƒ  d
ƒtt||ƒ||ƒdt| |ƒ|ƒ  d||ƒ  d
ƒf}t| |ƒtt|t
ddƒtdƒd   ƒ tt|t
ddƒtdƒd   ƒ  tt|tdƒ d t
ddƒ  ƒ  tt|tdƒ d t
ddƒ  ƒ  ƒt||ƒt t|t
ddƒtdƒd   ƒ tt|t
ddƒtdƒd   ƒ  tt|tdƒ d t
ddƒ  ƒ  tt|tdƒ d t
ddƒ  ƒ  ƒg}t	||ƒd	d
d
gfks;J ‚tt| |ƒ||ƒd| t||ƒ|ƒ d||ƒ  ƒtt||ƒ||ƒd| t| |ƒ|ƒ d| |ƒ  ƒf}tdƒdt
d"dƒ  ttƒ ttdƒdt
d"dƒ  | d ƒ d tdtdƒ |d  d ƒ|  }
tdƒ dt
d"dƒ  ttƒ ttdƒdt
d"dƒ  | d ƒ d td#tdƒ |d  d ƒ|  }t| |ƒt| |dt |
 dt |    ƒt||ƒt| |dtdƒ t |
 dtdƒ t |    ƒg}t	||ƒd	d
d
gfksJ ‚tt| |ƒ|ƒd$| |ƒ ƒtt||ƒ|ƒd%| |ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d||ƒ  d||ƒ  ƒf}t| |ƒttd$| ƒ ƒt||ƒd%t td$| ƒ d& ttd| ƒ  ƒt||ƒd't td$| ƒ d( dt td| ƒ d  ttd| ƒ  ƒg}t	||ƒd	g d)¢fks«J ‚tt| |ƒ|ƒd||ƒ d*||ƒ  ƒtt||ƒ|ƒd||ƒ d| |ƒ  ƒtt||ƒ|ƒd*| |ƒ d||ƒ  ƒf}t| |ƒdt td+ƒt ttd+ƒ| ƒ  dt d d,t d  ttd+ƒ| ƒ  ƒt||ƒd*t td+ƒt ttd+ƒ| ƒ  d-t d dt d  ttd+ƒ| ƒ  ƒt||ƒdt td+ƒd.t d d*t d   ttd+ƒ| ƒ  d*t dt  ttd+ƒ| ƒ  ƒg}t	||ƒd	g d)¢fk	szJ ‚tdt| |ƒ|ƒ d/||ƒ||ƒ  ƒtdt||ƒ|ƒ d||ƒ| |ƒ  ƒtdt||ƒ|ƒ d| |ƒ||ƒ  ƒf}t| |ƒtdtdƒ t tdtdƒ | ƒ  dt d d0t d  tdtdƒ | ƒ  ƒt||ƒtdtdƒ t tdtdƒ | ƒ  d1t d2 dt d  tdtdƒ | ƒ  ƒt||ƒtdtdƒ d3t d4 d5t d4   tdtdƒ | ƒ  dt d dt d  tdtdƒ | ƒ  ƒg}t	||ƒd	g d)¢fk
sYJ ‚tt| |ƒ|ƒd| |ƒ ||ƒ ƒtt||ƒ|ƒd| |ƒ d||ƒ  ||ƒ ƒtt||ƒ|ƒd| |ƒ ||ƒ ƒf}t| |ƒttd| ƒ t| td| ƒ  ttd| ƒ  t|d  td| ƒ d  t| td| ƒ  ttd| ƒ  ƒt||ƒttd| ƒ t| td| ƒ  ttd| ƒ  t|d  td| ƒ d  t| td| ƒ  ƒt||ƒdt td| ƒ dt | td| ƒ  ttd| ƒ  t|d  td| ƒ  t| td| ƒ  ttd| ƒ  ƒg}t	||ƒd	g d)¢fksXJ ‚tt| |ƒ|ƒd| |ƒ ||ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ ||ƒ d||ƒ  ƒtt||ƒ|ƒd| |ƒ d||ƒ  ƒf}t| |ƒttd| ƒ tt|ƒ dt|ƒ    tdt|ƒ t|ƒ   ƒt||ƒtt|ƒ dt|ƒ   tdt|ƒ t|ƒ   ƒt||ƒttd| ƒ dt t|ƒ  dt t|ƒ  ƒg}t	||ƒd	g d)¢fks	J ‚tt| |ƒ|ƒ| |ƒ||ƒd  ƒtt||ƒ|ƒ||ƒd ƒf}t| |ƒttd6dt d|   t
d6dƒ ƒ ƒt||ƒd6dt d|   t
d"dƒ  ƒt| |ƒttd6d6dt d|   t
d"dƒ  ƒ ƒt||ƒd6dt d|   t
d"dƒ ƒt| |ƒttt d6dt d|   t
d"dƒ  ƒ ƒt||ƒt d6dt d|   t
d"dƒ  ƒt| |ƒtttd6dt d|   t
d"dƒ  ƒ ƒt||ƒtd6dt d|   t
d"dƒ  ƒg}t	||ƒd	d
d
gfksîJ ‚tt| |ƒ|ƒtd| |ƒ ƒ||ƒd  ƒtt||ƒ|ƒ||ƒd ƒf}t| |ƒttdd6dt d|   t
d"dƒ   ƒ d ƒt||ƒd6dt d|   t
d"dƒ  ƒt| |ƒttdd6dt d|   t
d"dƒ   ƒ d ƒt||ƒd6dt d|   t
d"dƒ ƒt| |ƒttdt d6dt d|   t
d"dƒ   ƒ d ƒt||ƒt d6dt d|   t
d"dƒ  ƒt| |ƒttdt d6dt d|   t
d"dƒ   ƒ d ƒt||ƒtd6dt d|   t
d"dƒ  ƒg}t	||ƒd	d
d
gfksèJ ‚t| |ƒ|t| |ƒ|ƒ t| |ƒ|ƒt||ƒ|ƒ  ƒt||ƒ|t||ƒ|ƒ t||ƒ|ƒd  ƒf}t| |ƒtt t|  ƒt||ƒtd t|  ƒh}t	||ƒd	d
d
gfksCJ ‚d S )7Nzx, y, z)ÚclsÚtr+   é   iúÿÿÿr(   é   Tr   r'   r*   é)   i±  é+   é'   éþÿÿÿé   r%   é   é   éQ   é:   é¹   éM   é/   é   é   ém   é   éµ   é   é·   r$   éýÿÿÿé   é   é   éÑ   éØ   )r   r   r   r&   é³   é‚   iÆÿÿÿiùÿÿÿé   é¤   iÍÿÿÿé
   i÷ÿÿÿr-   é   éÿÿÿÿ)r   r	   r   r   r   r/   r   r   r0   r   r   r   r   r   ZdoitÚC3ÚC4r   r   r   ÚC0r
   r   )r   r    Úzr5   r2   r1   Zroot0Zroot1Zroot2Zroot3ZI1ZI2r!   r!   r"   Útest_checksysodesolG   s^  8@PÿPBÿ2ÿ6ÿÿHJ@ÿÿÿÿP8ÿ2ÿÿÿÿLBRÿX4ÿÿÿÿb:ÿ"ÿÿÿn8.ÿÿPDÿÿþPX>ÿÿÿ\b>ÿÿÿÿhJ"ÿ"ÿ* ÿ"ÿ"ÿÿhdflvHHÿvTT`þv\\pþv|l€þ†Jrÿ@VX`\ýH`^hfýf4 r\   N)*Zsympyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Zsympy.solvers.ode.subscheckr   r   Zsympy.functionsr   r   Zsympy.testing.pytestr   r   rZ   r/   r0   rX   rY   Úur   r    r[   r   r   r   r3   r\   r!   r!   r!   r"   Ú<module>   s   P 
3