mpmath on korvaa Pythonin float / monimutkaisia tyyppejä ja matematiikka / cmath modules rajoittamaton tarkasti ja eksponentti kokoja. Mpmath ohjelmisto on kirjoitettu kokonaan Python ilman ulkoisia riippuvuuksia ja siis toimii lähes missä tahansa, ilman kokoelma.
Asentaa, purkaa mpmath arkisto ja ajaa
python setup.py asentaa
Dokumentointi ja käyttö:
Tuo mpmath kanssa
alkaen mpmath tuonti *
Tämä tarjoaa luokat MPF ja MPC jotka toimivat analogisesti Pythonin float ja monimutkaisia tyyppejä:
>>> MPF (2) / MPF (3)
MPF ('+0,66666666666666663')
>>> MPC (0, -1)
MPC (todellinen = '0', imaginääri = '- 1')
>>> MPF (-0,6) ** MPF (-0,2)
MPC (real = '+0,89603999408558288', imag = '- +0,65101116249684809')
For kauniimpi ulostulo (joka myös piilottaa pienet pyöristysvirheet), käyttö tulostaa tai str ():
>>> Print MPF (2) / MPF (3)
0,666666666666667
>>> Print MPC (1 + 2 j) ** 0,5
(+1,27201964951407 + 0.786151377757423j)
Tarkkuus ohjataan ominaisuudet mpf.prec (bittien määrä) ja mpf.dps (desimaalien määrä). Nämä ominaisuudet ovat sidoksissa, joten muuttamalla yhden päivittyy automaattisesti muita vastaamaan. Asetus prec tai dps muuttaa tarkkuuden jossa kaikki toiminnot suoritetaan ja numeroiden lukumäärä näyttää tulostettaessa numeroita. Oletuksena on
PREC = 53 ja DP = 15, sama kuin Pythonin kelluu.
>>> Mpf.dps = 30
>>> MPF (2) / MPF (3)
MPF ('0,66666666666666666666666666666663')
>>> Print _
,666666666666666666666666666667
>>> Mpf.dps = 15 # palauttaa default
Voit luoda MPFS ja Välimeren kumppanuusmaiden välillä Python numeroita, tai yhdistää MPFS ja Välimeren kumppanuusmaiden kanssa Python numerot laskutoimituksia, mutta muista, että säännöllinen Python kelluu vain rajallinen tarkkuuden. Alustaa MPF kanssa täyden tarkkuuden arvon, käytä merkkijono:
>>> MPF (0.1)
MPF ('+0,10000000000000001') # samalla tarkkuudella kuin float
>>> Mpf.dps = 50
>>> MPF (0.1)
MPF ('0,1000000000000000055511151231257827021181583404541016') # junk
>>> MPF (0.1)
MPF ('0,1000000000000000000000000000000000000000000000000001') # ok
Seuraavat standardin toiminnot ovat käytettävissä ja tukea sekä todellisia ja monimutkaisia argumentteja:
sqrt, exp, log, valta, cos, sin, tan, cosh, sinh, tanh,
acos, asin, atan, acosh, asinh, atanh
Esimerkki:
>>> Mpf.dps = 15
>>> Print cos (1)
+0,540302305868140
>>> Mpf.dps = 50
>>> Print cos (1)
0,54030230586813971740093660744297660373231042061792
Joitakin vähemmän yhteisiä toimintoja ovat myös käytettävissä: gamma (gamma-toiminto), kertoma, erf (virhefunktion), lower_gamma / upper_gamma (keskeneräinen gamma-toiminto) ja zeta (Riemannin zeta-toiminto).
Lopuksi, mukavuutta toiminnot hypot ja ATAN2 ovat käytettävissä (määritelty oikeasti vain numeroita).
Vakiot pi, e, ja cgamma (Eulerin vakio) on saatavana erityisiä esineitä, jotka käyttäytyvät kuin MPFS mutta joiden arvot säätyvät automaattisesti tarkkuuden.
>>> 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 ')
Ohjaus pyöristys on toteutettu osittain. Esimerkiksi tämä laskee ja varmistaa 15-numeroinen lähentämisestä välein 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
Mikä on uusi tässä julkaisussa:
- Yleiset
- Nyt on mahdollista luoda useita asiayhteys esineitä ja käyttää yhteydessä-paikallisista menetelmistä sijaan maailmanlaajuisen valtion / toiminnot (esim mp2 = mp.clone (); mp2.dps = 50; mp2.cos (3)). Ei kaikki toiminnot on muunnettu yhteydessä menetelmiä, ja joitakin bugeja, joten tämä ominaisuus on tällä hetkellä kokeellinen.
- Jos mpmath asennetaan Sage 4.0 tai uudempi, mpmath käyttää nyt sage.Integer sijaan Python pitkiä sisäisesti.
- Poistettu tapauksia vanhanaikaisten kokonaislukujaolla alkaen codebase.
- runtests.py voidaan ajaa -coverage tuottaa kattavuutta tilastoja.
- Tyypit ja peruslaskutoimituksia
- Kiinteät verrattuna -inf.
- Vaihtoi repr muoto MPI intervallityypin tehdä eval (repr (x)) == x.
- Parannettu tulostuksen välein, jossa määritettävä esitysmuodon (myötävaikuttanut Vinzent Steinberg perustuu code Don Peterson).
- Intervalli tukee mpmathify () ja NSTR () (myötävaikuttanut Vinzent Steinberg).
- MPC on nyt hashable.
- Lisäsin muotoilua vaihtoehtoja toiminnoissa to_str.
- Nopeampi puhdas-Python neliöjuuren.
- Fix perään välilyönti antaa vääriä arvoja vuonna str- & gt; MPF muuntaminen.
- Calculus
- Kiinteä nsum () Euler-Maclaurin summattu joka aiemmin huomiotta lähtö- indeksin ja summan n = 1.
- Toteutetut Newtonin menetelmä findroot () (myötävaikuttanut Vinzent Steinberg).
- Lineaarialgebra
- Kiinteä LU_decomp () tunnistaa yksikössä matriiseihin (myötävaikuttanut Vinzent Steinberg).
- Eri normi toiminnot korvattiin geneerisen vektorin normi toiminto normi (x, p) ja geneerinen matriisinormi funktio mnorm (x, p).
- Erikoistoiminnot:
- Jotkut sisäiset välimuistit muutettiin aina hieman overallocate tarkkuutta. Tämä korjaa pahin käyttäytyminen, jossa on aiemmin välimuistissa arvo oli laskea uudelleen joka funktiokutsuna.
- Kiinteät log (pieni määrä) paluu hölynpölyä suurella tarkkuudella.
- Kiinteä gamma () ja johdannainen toimintoja, kuten binomiaalinen () paluu väärä tulokset kokonaisluku panoksia on jaollinen suuri teho 2.
- Kiinteä asin () olla esittämättä poikkeuksen suurella tarkkuudella (myötävaikuttanut Vinzent Steinberg).
- Optimoitu AGM koodi luonnollinen logaritmi, mikä aiemmin käytetty Newtonin menetelmällä keskitason tarkennuksia vanhentunut.
- aritmeettinen-geometrinen keskiarvo toiminto AGM () on nyt suuruusluokkaa nopeammin alhaisilla tarkkuutta.
- Nopeampi toteutusten ellipk () ja ellipe ().
- Analyyttinen jatkoa ellipe () ja | x | & gt; = 1 täytäntöön.
- Toteutetaan log gammafunktion (loggamma ()) oikean haaran leikkauksia (hidas, paikanvaraaja täytäntöönpano).
- Kiinteä haara palat hyperfac ().
- Toteutetaan Riemannin-Siegel Z-toiminto (siegelz ()).
- Toteutetaan Riemannin-Siegel theeta toiminto (siegeltheta ()).
- Toteutettu laskemista Gram pistettä (grampoint ()).
- Toteutettu laskettaessa Riemannin Zeta funktio nollaa (zetazero ()).
- Toteutetaan prime laskentatoiminto: hidas, tarkka versio (primepi ()). ja nopea likimääräinen versio (primepi2 ()), joka antaa rajaavat välein.
- Toteutetaan Riemannin R prime laskentatoiminto (riemannr ()).
- Toteutetut Bell numeroita ja polynomit (Bell ()).
- Toteutettu expm1 () toiminto.
- Toteutetaan 'polyeksponentiaalista toiminto "(polyexp ()).
- Toteutetaan alkulukupari vakio (twinprime) ja Mertens vakio (Mertens).
- Toteutetaan prime Zeta funktio (primezeta ()).
Mikä on uusi versiossa 0.10:
- Lisäykset ovat myös piirtämistä tukea, matriisit ja lineaarialgebra toiminnot, uudet root-löydös ja quadrature algoritmeja, parantaa intervalli aritmeettinen, ja joitakin uusia erikoistoimintoja.
- Monet nopeus parannuksia on tehty (muutama toiminnot ovat kertaluokkaa nopeammin kuin 0,9), ja erilaisia vikoja on korjattu.
- Tärkeää on, tämä julkaisu korjaukset mpmath työskennellä Python 2.6.
vaatimukset
- Python
Kommentteja ei löytynyt