mpmath ay isang kapalit para float / kumplikadong uri Python at math / cmath module na may unlimited katiyakan at exponent sukat. Ang mpmath software na ito ay lubos na nakasulat sa Python na walang anumang mga panlabas na dependencies at samakatuwid ay nagpapatakbo ng halos kahit saan, nang walang pangangailangan para compilation.
Upang i-install, alisan ng laman ang mpmath archive at patakbuhin
python setup.py install
Documentation at paggamit:
Import mpmath sa
mula mpmath import *
Ito ay nagbibigay ng mga klase MPF at mpc na gumagana analogously na float sawa at kumplikadong uri:
>>> MPF (2) / MPF (3)
MPF ('.66666666666666663')
>>> Mpc (0, -1)
mpc (real = '0', imag = '- 1')
>>> MPF (-0.6) ** MPF (-0.2)
mpc (real = '0.89603999408558288', imag = '- 0.65101116249684809')
Para prettier output (na maghukay din maliit error rounding), gamitin print o str ():
>>> Print MPF (2) / MPF (3)
0.666666666666667
>>> Print mpc (1 + 2J) ** 0.5
(1.27201964951407 + 0.786151377757423j)
Precision ay kinokontrol ng ang mga katangian mpf.prec (bilang ng bits) at mpf.dps (bilang ng mga decimals). Ang mga katangian ay naka-link, kaya ang pagbabago ng isa awtomatikong update sa iba upang tumugma sa. Pagtatakda prec o dps pagbabago ang katumpakan at kung saan ay natupad sa lahat ng mga operasyon at ang bilang ng mga digit na ipapakita kapag nag-print na mga numero. Ang default ay
prec = 53 at dps = 15, ang parehong bilang Python kamay.
>>> Mpf.dps = 30
>>> MPF (2) / MPF (3)
MPF ('0,66666666666666666666666666666663')
>>> Print _
0.666666666666666666666666666667
>>> Mpf.dps = 15 # ibalik sa default
Maaari kang lumikha ng mpfs at mpcs mula Python numero, o pagsamahin mpfs at mpcs may sawa numero sa operasyon aritmetika, ngunit magkaroon ng kamalayan na sa kamay lamang ang regular na Python may hangganan precision. Upang magpasimula ng isang MPF may halagang full-precision, gumamit ng isang string:
>>> MPF (0.1)
MPF ('.10000000000000001') # parehong kawastuhan bilang float
>>> Mpf.dps = 50
>>> MPF (0.1)
MPF ('0,1000000000000000055511151231257827021181583404541016') # junk
>>> MPF ('0.1')
MPF ('0,1000000000000000000000000000000000000000000000000001') # ok
Ang mga sumusunod na mga standard na function ay magagamit at suportahan ang parehong tunay at kumplikadong mga argumento:
sqrt, exp, mag-log, kapangyarihan, si Cos, kasalanan, kayumanggi, tahimik, sinh, tanh,
acos, asin, atan, acosh, asinh, atanh
Halimbawa:
>>> Mpf.dps = 15
>>> Print Cos (1)
.540302305868140
>>> Mpf.dps = 50
>>> Print Cos (1)
0,54030230586813971740093660744297660373231042061792
Ang ilang mga di-gaanong karaniwang mga function ay magagamit din: gamma (gamma function), factorial, ERF (error function), lower_gamma / upper_gamma (hindi kumpleto function na gamma) at zeta (Riemann zeta function).
Panghuli, ang pag-andar convenience hypot at atan2 ay magagamit (na tinukoy para sa tunay na mga numero lamang).
Ang constants pi, e, at cgamma (Euler constant) ay magagamit bilang mga espesyal na bagay na kumilos na tulad mpfs ngunit na ang mga halaga ay awtomatikong ayusin sa precision.
>>> Mpf.dps = 15
>>> Print pi
3.14159265358979
>>> Mpf.dps = 50
>>> Print pi
3,1415926535897932384626433832795028841971693993751
>>> Mpf.dps = 15
>>> E ** (- pi * 1J)
mpc (real = '- 1', imag = '- 1.2289836075083701E-16')
>>> Mpf.dps = 50
>>> E ** (- pi * 1J)
mpc (real = '- 1', imag = '1.0106 [...] E-51')
Itinuro sa rounding ay bahagyang naipatupad. Halimbawa, ito computes at nakumpirma ang isang 15-digit approximation pagitan para pi:
>>> Mpf.dps = 15
>>> Mpf.round_down (); pi1 = + pi
>>> Mpf.round_up (); pi2 = + pi
>>> Pi1
MPF ('3.1415926535897931')
>>> Pi2
MPF ('3.1415926535897936')
>>> Mpf.dps = 30
>>> Pi1
Ano ang bago sa release na ito:
- General
- Ito ay posible na ngayon upang lumikha ng maramihang context bagay at gamitin ang context-lokal na pamamaraan sa halip ng global estado / function (eg mp2 = mp.clone (); mp2.dps = 50; mp2.cos (3)). Hindi lahat ng mga function na ay nai-convert sa pamamaraan ng konteksto, at may ilang mga bug, kaya ang tampok ay kasalukuyang experimental.
- Kung mpmath naka-install sa Sage 4.0 o mas bago, mpmath ay ngayong gamitin sage.Integer halip ng Python mahaba sa loob.
- Inalis pagkakataon ng old-style integer division mula sa codebase.
- maaaring tumakbo sa -coverage upang bumuo ng mga istatistika coverage runtests.py.
- Mga Uri at basic arithmetic
- Mga Fixed paghahambing -inf.
- Nagbago format repr ang uri interval mpi upang gumawa eval (repr (x)) == x.
- Pinahusay na pag-print ng mga pagitan, may isaayos ng output format (na iniambag sa pamamagitan Vinzent Steinberg batay sa code sa pamamagitan ng Don Peterson).
- Agwat suportado ng mpmathify () at nstr () (na iniambag sa pamamagitan Vinzent Steinberg).
- mpc ngayon hashable.
- Added opsyon higit formatting sa mga panloob na function to_str.
- Mas mabilis na wagas ang pag-sawa square root.
- Ayusin ang trailing whitespace pagbibigay ng maling mga halaga sa str- & gt;. MPF conversion
- Calculus
- Mga Fixed nsum () sa Euler-Maclaurin pagbubuo na kung saan ay dati nang pansinin ang panimulang index at sum mula n = 1.
- Ipinatupad Newton paraan para findroot () (na iniambag sa pamamagitan Vinzent Steinberg).
- De-algebra
- Mga Fixed LU_decomp () upang kilalanin ang isahan matrices (iniambag sa pamamagitan Vinzent Steinberg).
- Ang iba't-ibang mga function na pamantayan ay papalitan sa pamamagitan ng mga generic na vector karaniwan function pamantayan (x, p) at ang generic pamantayan matrix function na mnorm (x, p).
- Mga espesyal na function:
- Ang ilang mga panloob na mga cache ay nabago na palaging bahagyang overallocate precision. Ito ay pag-aayos pinakamasama-case na pag-uugali na kung saan dati ang naka-cache na halaga ay kailangang muling pagkuwenta sa bawat tawag function.
- Mga Fixed log (maliliit number) bumabalik bagay na walang kapararakan sa mataas na katumpakan.
- Mga Fixed gamma () at mga hinalaw na mga function tulad ng dalawang pangalan () bumabalik maling resulta sa integer input na mahahati sa pamamagitan ng isang malaking kapangyarihan ng 2.
- Mga Fixed asin () ay hindi na itaas ang isang exception sa mataas na katumpakan (iniambag sa pamamagitan Vinzent Steinberg).
- Sinulit ang AGM code para sa natural logarithm, ginagawa ang dati na ginagamit Newton paraan sa intermediate precisions lipas na.
- Ang arithmetic-geometriko ibig sabihin ng function agm () ay isang order ng magnitude na mas mabilis na ngayon sa mababang katumpakan.
- Mas mabilis na pagpapatupad ng ellipk () at ellipe ().
- Analytic pagpapatuloy ng ellipe () upang | x | & gt;. = 1 ipinatupad
- Ipinatupad ang log gamma function (loggamma ()) na may tamang branch biyak (mabagal, placeholder pagpapatupad).
- Mga Fixed branch biyak ng hyperfac ().
- Ipinatupad Riemann-Siegel Z-function (siegelz ()).
- Ipinatupad Riemann-Siegel theta function (siegeltheta ()).
- Ipinatupad pagkalkula ng Gram points (grampoint ()).
- Ipinatupad pagkalkula ng Riemann zeta function zero (zetazero ()).
- Ipinatupad ang kalakasan pagbibilang function: isang mabagal, eksaktong bersyon (primepi ()). at ang isang mabilis approximate bersyon (primepi2 ()) na nagbibigay ng isang interval bounding.
- Ipinatupad Riemann R prime pagbibilang function (riemannr ()).
- Ipinatupad Bell numero at polynomials (bell ()).
- Ipinatupad ang function expm1 ().
- Ipinatupad ang 'function polyexponential' (polyexp ()).
- Ipinatupad ang twin prime tapat (twinprime) at Mertens 'constant (Mertens).
- Ipinatupad ang kalakasan zeta function (primezeta ()).
Ano ang bago sa bersyon 0.10:
- Mga karagdagan isama plotting support, matrices at linear algebra function, mga bagong root-paghahanap at kuwadratura algorithms, pinahusay pagitan ng aritmetika, at ilang bagong mga espesyal na pag-andar.
- Maraming mga pagpapabuti ng bilis ay nakatuon (ng ilang mga function ay isang order ng magnitude na mas mabilis kaysa sa 0.9), at iba't ibang mga bug ay naayos na.
- Mahalaga, ito pagsasaayos release mpmath upang gumana sa Python 2.6.
Kinakailangan :
- sawa
Mga Komento hindi natagpuan