L iNddlZ ddlmZddlZddlmZmZm Z m Z ddl m Z ddlmZddlmZddlmZmZmZmZmZmZddl Z dZd Zd Zd Zd Zd ZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0d Z1d!Z2d"Z3d#Z4d$Z5d%Z6d&Z7d'Z8d(Z9d)Z:d*Z;d+Zd.Z?d/Z@d0ZAd1ZBd2ZCd3ZDd4ZEd5ZFd6ZGe jjd7ZJy#e$r ddlmZYwxYw)8N)StringIO)assert_assert_array_equalassert_allclose assert_equal)raises) coo_matrix)erf) modify_meshestimate_fun_jacestimate_bc_jaccompute_jac_indicesconstruct_global_jac solve_bvpc<tj|d|dfSNrnpvstackxys d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/scipy/integrate/tests/test_bvp.pyexp_funrs 99adAaD\ ""cxtjdd|jdf}d|d<d|d<d|d<d|d<|S)Nrrrrrrrrrrremptyshaperrdf_dys r exp_fun_jacr(sH HHaAGGAJ' (EE$KE$KE$KE$K LrcBtj|ddz |dfSNrrrhstackyaybs rexp_bcr0#s" 99beaiA' ((rcHtj|ddz dz |dfS)Nrry?r+r-s rexp_bc_complexr2's& 99beai"nbe, --rcvtjddgddgg}tjddgddgg}||fSrrarrayr.r/dbc_dyadbc_dybs r exp_bc_jacr9+Shh A AGhh A AG G rctj| tj|dz z dtjdz z S)Nrr)rexprs rexp_solr?7s4 FFA2JA &1rvvbz> ::rcPtj|d|ddz |dzfS)Nrrrrrrps rsl_funrC;s, 99adQqT1WHqtO, --rc|j\}}tj|d|f}d|d<d|d<|ddz |d<d|d<tj|d|f}d|d<d|dz|dz|d<||fS) Nrrrrr r!r"r<)r%rr$rrrBnmr'df_dps r sl_fun_jacrI?s 77DAq HHaAY EE$KE$KQ47(E$KE$K HHaAY EE$Kqt)ad"E$K %<rcPtj|d|d|d|dz fSr*r+r.r/rBs rsl_bcrLNs, 99beRUBqEAaDL1 22rctjd}d|d<d|d<tjd}d|d<tjd}d|d<|||fS) N)rrr)rrr!)rNr)rrrzeros)r.r/rBr7r8dbc_dps r sl_bc_jacrSRs]hhvGGDMGDMhhvGGDM XXf FF4L GV ##rc8tj|d|zS)Nr)rsinrrBs rsl_solrW`s 66!A$( rcDtj|d|ddz fS)Nrrrrs r emden_funrZds$ 99adQqT1WH% &&rctjdd|jdf}d|d<d|d<d|ddzz|d<d|d <|S) Nrrrrr r!r"r#r&s r emden_fun_jacr^hsT HHaAGGAJ' (EE$KE$KqtQw,E$KE$K LrcBtj|d|ddz gS)NrrLXz?r4r-s remden_bcraqs# 88RUBqEJ./ 00rcvtjddgddgg}tjddgddgg}||fSr*r4r6s r emden_bc_jacrcur:rcd|dzdz zdzS)NrrrN࿩r>s r emden_solrgs 1QJ rc,tj|SNr zeros_likers r undefined_funrls == rcBtj|d|ddz gSr*r4r-s r undefined_bcrns" 88RUBqEAI& ''rcLtj|}|ddd|ddd<|S)Nrrrj)rrfs rbig_funrqs, aA qt!tWAccF HrcNtj|ddd|ddddz fS)Nrrr+r-s rbig_bcrss* 99b1gr#A#w{+ ,,rc^tjd|z|jf}||ddd<|S)Nr)ronessize)rrFrs rbig_solrws. Q A AccF Hrctj|}|ddd|ddd<|ddz |dddz|ddd<|ddz |dddz|ddd<|S)a Big version of sl_fun, with two parameters. The two differential equations represented by sl_fun are broadcast to the number of rows of y, rotating between the parameters p[0] and p[1]. Here are the differential equations: dy[0]/dt = y[1] dy[1]/dt = -p[0]**2 * y[0] dy[2]/dt = y[3] dy[3]/dt = -p[1]**2 * y[2] dy[4]/dt = y[5] dy[5]/dt = -p[0]**2 * y[4] dy[6]/dt = y[7] dy[7]/dt = -p[1]**2 * y[6] . . . rNrrr]rNrj)rrrBrps rbig_fun_with_parametersrys|( aA qt!tWAccFtQwh3Q3AaddGtQwh14a4 AaddG Hrc|j\}}tj|||f}d|td|dtd|df<|ddz |td|dtd|df<|ddz |td|dtd|df<tj|d|f}d|dz|td|dz|td|ddf<d|dz|td|dz|td|ddf<||fS)Nrrrr]rNr<r%rrQrangerEs rbig_fun_with_parameters_jacr}s 77DAq HHaAY E,-E%1a.%1a. ()-.qT1WHE%1a.%1a. ()-.qT1WHE%1a.%1a. () HHaAY E!AaDy1U1a^+< )*01GE!q&! eAq!n ,- XXq1uaj !FF1a4LGAqDMF1q5!8GAE1H GV ##rctjtj|d|ztj|d|zfSr*)rrrUrVs rbig_sol_with_parametersrs8 99bffQqTAX&qtax(89 ::rc @d}tj|d||dz|tjdzztjtj|zzztj|ztjtj|zzz |z fS)NMbP?rr)rrpicosrU)rrepss r shock_funrs C 99 ! ad(S255!8^bffRUUQY&77 7 %%!)bffRUUQY' ' ( )+. / rcBtj|ddz|dgS)Nrrr4r-s rshock_bcrs" 88RUQY1& ''rcd}tjd|z}tjtj|zt ||z t d|z z zS)Nrrr)rsqrtrrr )rrks r shock_solrsJ C CA 66"%%!) s1q5zCAJ6 66rc\tj|dtj|gS)Nr)rstackrkrs r nonlin_bc_funrs# 88QqT2==+, --rch|\}}|\}}d\}}}} } d|z dz } |tj| | ztj| | zz z} | ||zz} | |z dz }|tj| |ztj| |zz z}|||zz }tj| |gS)N)g= ףp=?{Gz?-C6??g33333sC@?)rr=r5)r.r/phiAphipAphiCphipCkappaioAioCVrphAiAres0hCiCres1s r nonlin_bc_bcrsKD%KD%9E3Q T#B qt rvvqbe}, -B  D TCB qt rvvqbe}, -B e D 88T4L !!rcdd|zz S)Ng /g) ?rfr>s r nonlin_bc_solrs )a- //rctjgdt}t|tjdgtjdg}t |tjgdtjgdt}t|tjdgt tjgd}t |gd y) N)rrrN dtyperr)rrrrNrYr)rrNr)rrrN) rr\rgrrrrNr]rYr)rr5floatr rint)rx_news rtest_modify_meshrs U+A 288QC="((A3- 8Eubhh'>?@ "%0A 288QCs3RXXi5H IEuIJrctjddd}tjd|jdf}d|d<d|d<tjg}t d|||\}}t ||}t||t|dutjdtjd}tjd|jdf}tj||d<tj||d<tjdg}t t|||\}}t|||\}}t||t||tjddd }tjd|jdf}d |d<d |d<tjg}t d |||\}}t||}t||t|duy) NrrrYrrg{Gz?ct||SrirrAs rz&test_compute_fun_jac.."s GAqMrr r`rct||Sri)rZrAs rrz&test_compute_fun_jac..6s IaOr)rlinspacer$r%r5r r(rrrrUrrCrIr^)rrrBr'rHdf_dy_andf_dp_ans rtest_compute_fun_jacrs Aq!A !QWWQZ!A AaD AaD  A#$A1aKLE51a HE8$ ETM Aruua A !QWWQZ!A 66!9AaD 66!9AaD #A#FAq!4LE5#Aq!,HhE8$E8$ Aq"A !QWWQZ!A AaD AaD  A#$CQ1MLE5Q"HE8$ ETMrcJtjddg}tjddg}tjg}td|||\}}}t||\}}t ||t ||t |dutjddg}tjddg}tjdg}tt |||\}}}t|||\}}}t ||t ||t ||tjdd g}tjd d g}tjg}td |||\}}}t||\}}t ||t ||t |duy) NgrrrNct||Srir0rKs rrz%test_compute_bc_jac..As &R.rrrrOdig%@ct||Sri)rarKs rrz%test_compute_bc_jac..Ts (2r*r) rr5r r9rrrLrSrc) r.r/rBr7r8rR dbc_dya_an dbc_dyb_an dbc_dp_ans rtest_compute_bc_jacr<sw 4) B 3( B  A.("b! 5GWf'B/J GZ(GZ( FdN 3( B 3) B #A.ub"a@GWf(1"b!(<%J IGZ(GZ(FI& 3* B 5$- B  A.*BA 7GWf)"b1J GZ(GZ( FdNrc d}d}d}t|||\}}ttj|||ffj }tj gdgdgdgdgdgdgdgdgdgdg }t ||y)Nrr]) rrrrrrrrrr) rrrrrrrrrr) rrrrrrrrrr) rrrrrrrrrr)rr r ones_liketoarrayr5r)rFrGrijss_trues rtest_compute_jac_indicesr[s A A A q!Q 'DAqBLLOaV,-557A XX&&&&&&&&&&  Fq&!rcd}d}d}tddd\}}tjddd}tj|}tjtj tj |ztj tjtj |zzf}tjdg}t|||} |ddd|zz} d|ddddf|ddddfzz|dz | ddddf| ddddfz zz } t|||\} } t| | |\}}t|dddf|dddf|\}}}t||||||| || |||| }|j}d }tj||z|z||z|zf}t|dz D],}||||d|||z|dz|z||z|dz|zf<.||dzzd z |dddf|dddfz z|d|dz |zddf<|||dddf|dddfzz|dzd z |dddf|dddfz zzz|d|dz |zddf<d|d <d|d <d|d <d|d<t!||dt#t|||\} } t#t| | |\}}t%t&|dddf|dddf|\}}}t||||||| || |||| }|j}t!||ddy)NrrYrrg@rOrc tj|dz|dzzdz dz d|z|dz |dzzdz dzd|zgd|z|dzz|dz|dzzdz dz d|z|dzzd|dz|dzzdz z ggS)Nr rrerr4)hrBs rJ_blockz(test_compute_global_jac..J_blocksxx T!Q$Yr\A tAv1uQTz"}q'8$q& A U1a4ZAad2)3q5A:q1a419R<7G H   rr)rr)rr)rr)rr绽|=rtolg:0yU>ratol)rrrdiffrrUrrr5rCrIrSrrrQr|rr r rL)rFrGri_jacj_jacrrrrBrpx_middley_middler'rH df_dy_middle df_dp_middler7r8rRJrJ_truers rtest_compute_global_jacrps~ A A A&q!Q/LE5 Aq!A  A 266"%%!)$beebffRUUQY.?&?@AA #Aq!QA"vaHa3B3i!AqrE(*+acQq!"uX!SbS& 5I.JJHaA&LE5!+Hh!BL,(1a4!ArE(A>GWfQ1eUAul"L'7F LA A XXq1uqy!a%!), -F 1q5\M9@1qt9Lq1uq1uk!1q51q5A+#556M"#QT!qCRCy1QU8/C!DF>QUaK>2 "#qAa"fI!QR%,@'A'(!tAv1crc6Qq!"uX1E'F(G#HF1a!eq[?B F4LF4LF5MF6NAvE*#FAq!4LE5!1&(Ha!PL,.ua1gqBxKGWfQ1eUAul"L'7F LA AAvDt4rc Bgd}tjd}tttt t ||tjddd}tjd}tttt t ||d}d}tjd |jdf}ttt||||dg d }ttt||||tjddgg}tttt t ||| y) N)rrr)rrNrrrY)rr]ct||SrirrAs rfunz&test_parameter_validation..funsq!}rct||SrirrKs rbcz%test_parameter_validation..bcsb"~rr)rBc,tjdS)NrNrPrs rwrong_shape_funz2test_parameter_validation..wrong_shape_funsxx{r)S) rrQ assert_raises ValueErrorrrr0rr%r5)rrrrrrs rtest_parameter_validationrsA A*i&!Q? Aq!A A*i&!Q? !QWWQZ!A*ib!Q1#>*i"aC 1a&A*i&!Q!Drc tjddd}tjddd}tjd|jdf}dtfD]}dt fD]}t tt||||}t|jdt|jt|jjd|j|}t!|dt#|dt||}|j|d|z }|dtj$|zz } tj&| dzd d z} ttj(| d kttj(|j*d kt!|j|j|j,d d t!|j|jd|j.d d y)NrrrYrrfun_jacbc_jach㈵>raxisrrrr)rrrQr%r(r9rrr0rstatusrsuccessrrvsolrr?abssumall rms_residualsryp rx_testrrrrsol_testf_testrrel_resnorm_ress rtest_no_paramsr s Aq!A [[As #F !QWWQZ!A+&OZ( OFGVQ7#)+C Q ' CKK Q 'wwvH HQKt DVX.F"V+A1rvvf~-.Gvvgqjq136H BFF8d?+ , BFF3,,t34 5 CGGCEENCEEE J CGGCEE1-svvE N+ OOrc tjdtjd}tjdtjd}tjd|jdf}dt fD]}dt fD]}ttt||dg||}t|jdt|jt|jjdkt!|j"dgd |j%|}t!|dt'|dgd d t||dg}|j%|d|z }|dtj(|zz } tj*| dzd dz} ttj,| d kttj,|j.d kt!|j%|j|j0dd t!|j%|jd|j2dd y)NrrYrrrrBrrrrrrrrrr)rrrrur%rIrSrrCrLrrrrrrvrrBrrWrrrrrrrs rtest_with_paramsr s Aruua A [[BEE3 'F AGGAJ A*%OY' OFFE1aC5'#)+C Q ' CKK CEEJJO $ CEEA3T 2wwvH HQK)r9sf !))*#CC#). ;. 3 $'1 ( -  6 E $$; (7 . "&0K@>"*25jE4O:OBO>O> G0"OJG0G022esC,, C:9C: