mpmath felváltja a Python float / összetettebb és matematikai / cmath modulok korlátlan pontosság és kitevő méretben. A mpmath szoftver teljes egészében Pythonban nélkül külső függőségek és így fut szinte bárhol, anélkül, hogy szükség fordításra.
Telepíteni, csomagolja ki a mpmath archívum és fuss
python setup.py telepíteni
Dokumentáció és használat:
Import mpmath a
re mpmath import *
Ez biztosítja az osztályok MPF és MPC, amely a munka analóg Python float és összetett típusok:
>>> MPF (2) / MPF (3)
MPF (",66666666666666663)
>>> MPC (0, -1)
MPC (real = "0", imag = '- 1 ")
>>> MPF (-0,6) ** MPF (-0,2)
MPC (real = ',89603999408558288', imag = '- ,65101116249684809)
Mert szebb kimenet (hogy is elrejti a kis kerekítési hiba), a Nyomtatás vagy str ():
>>> Print MPF (2) / MPF (3)
0,666666666666667
>>> Print MPC (1 + 2 J) ** 0,5
(1,27201964951407 + 0.786151377757423j)
A precíziós által ellenőrzött tulajdonságai mpf.prec (bitek száma) és mpf.dps (tizedesjegyek száma). Ezek a tulajdonságok kapcsolódnak, így változik az ember automatikusan frissíti a másik, hogy megfeleljen. Beállítás prec vagy DPS megváltoztatja a precizitást, amely minden műveletet hajtanak végre, és a számjegyek száma jelenik meg, ha a nyomtatás számok. Az alapértelmezett beállítás
prec = 53 és dps = 15, ugyanaz, mint a Python úszik.
>>> Mpf.dps = 30
>>> MPF (2) / MPF (3)
MPF ("0,66666666666666666666666666666663)
>>> Print _
,666666666666666666666666666667
>>> Mpf.dps = 15 # alaphelyzetbe
Tudod teremt mpfs és MPC-re Python számok, vagy kombinálni mpfs és MPC Python számok aritmetikai műveletek, de ne feledje, hogy a rendszeres Python úszók csak véges pontossággal. Inicializálni egy MPF egy teljes pontossággal értéket, a szöveg:
>>> MPF (0,1)
MPF ("0,10000000000000001") # ugyanolyan pontossággal, mint a float
>>> Mpf.dps = 50
>>> MPF (0,1)
MPF ("0,1000000000000000055511151231257827021181583404541016") # junk
>>> MPF (0,1 ")
MPF ("0,1000000000000000000000000000000000000000000000000001") # ok
A következő standard funkciók állnak rendelkezésre, és támogatja mind a valós és komplex érvek:
sqrt, exp, log, teljesítmény, cos, sin, tan, gumibot, Sinh, tanh,
acos, asin, atan, acosh, asinh, atanh
Példa:
>>> Mpf.dps = 15
>>> Print cos (1)
,540302305868140
>>> Mpf.dps = 50
>>> Print cos (1)
0,54030230586813971740093660744297660373231042061792
Néhány kevésbé gyakori funkciók is rendelkezésre állnak: gamma (gamma függvény), faktoriális, EMA (error függvény), lower_gamma / upper_gamma (nem teljes gamma-függvény) és a zéta (Riemann-féle zéta funkció).
Végül a kényelmi funkciók hypot és atan2 állnak rendelkezésre (meghatározott valós számok esetén).
Az állandók pi, e és cgamma (Euler-állandó) állnak rendelkezésre, mint a különleges tárgyakat, hogy úgy viselkednek, mint mpfs de amelyeknek az értéke automatikusan beállítja a pontosság.
>>> 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')
Rendező kerekítés részben valósult meg. Például, ez a kiszámítja és ellenőrzi, egy 15-jegyű közelítés intervallum 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
Mi az új ebben a kiadásban:
- Általános
- Most már lehetséges, hogy több tekintetben tárgyak és környezetfüggő helyi módszerek helyett globális állam / funkciók (pl MP2 = mp.clone (); mp2.dps = 50; mp2.cos (3) bekezdés). Nem minden funkció már át a kontextusban módszerek, és vannak olyan hibák, így ez a funkció jelenleg tesztelés alatt áll.
- Ha mpmath van telepítve Sage 4.0 vagy újabb, mpmath használható majd sage.Integer helyett Python hosszú belsőleg.
- Az eltávolított példányai régi stílusú egészosztás a codebase.
- runtests.py lehet futtatni -coverage generálni lefedettség statisztikák.
- fajtái és alapvető számtani
- Fix összehasonlítása -inf.
- Megváltozott repr formátumát MPI intervallum típusú tenni eval (repr (x)) == x.
- Továbbfejlesztett nyomtatás intervallumok, konfigurálható kimeneti formátumot (hozzájárult Vinzent Steinberg alapuló kódot Don Peterson).
- periódusai által támogatott mpmathify () és nstr () (járult hozzá Vinzent Steinberg).
- MPC hashable.
- Added több formázási lehetőségek a belső funkciót to_str.
- Gyorsabb tiszta Python négyzetgyöke.
- Fix szóközöket adva rossz értékeket str- & gt; mpf átalakítás.
- A fogkő
- Fix nsum () az Euler-Maclaurin összegzése, amely korábban figyelmen kívül hagyják a kezdő index és összege az n = 1.
- Megvalósult Newton-módszerrel findroot () (járult hozzá Vinzent Steinberg).
- Lineáris algebra
- Fix LU_decomp () elismerni egyes szám mátrixok (hozzájárult Vinzent Steinberg).
- A különböző norma funkciók váltották fel a generikus vektor norma függvény norma (x, p) és a generikus mátrix norma funkciót mnorm (x, p).
- Speciális funkciók:
- Néhány belső cache megváltoztatták, hogy mindig kicsit overallocate pontossággal. Ez rögzíti legrosszabb eset viselkedése, ahol korábban a tárolt értéket kellett újraszámítását minden függvényhívás.
- Fix log (apró száma) visszatérő nonszensz nagy pontossággal.
- Fix gamma () és a származékos funkciók, mint például a binomiális () visszatérő rossz eredmények egész bemenetek hogy osztható nagy ereje 2.
- Fix asin () nem emel kivételt nagy pontosságú (hozzájárult Vinzent Steinberg).
- Optimalizált az AGM kódot az természetes logaritmus, így a korábban használt Newton módszer a köztes pontosításokat elavult.
- A számtani-mértani közép funkció AGM () most egy nagyságrenddel gyorsabb, alacsony pontossággal.
- Gyorsabb megvalósításai ellipk () és ellipe ().
- analitikus folytatása ellipe (), hogy | x | & gt; = 1 megvalósítani.
- Megvalósult a log gamma funkció (loggamma ()) a helyes ág darabok (lassú, helykitöltő végrehajtása).
- Fix ága darabolt hyperfac ().
- Megvalósult a Riemann-Siegel Z-funkció (siegelz ()).
- Megvalósult a Riemann-Siegel theta funkció (siegeltheta ()).
- Megvalósult számítása Gram pont (grampoint ()).
- Megvalósult kiszámítása Riemann zéta-függvény nullát (zetazero ()).
- Megvalósult az elsődleges mérési funkció: a lassú, pontos verziót (primepi ()). és gyors közelítő változata (primepi2 ()), hogy ad egy befoglaló intervallumot.
- Megvalósult a Riemann R elsődleges számláló funkció (riemannr ()).
- Megvalósult Bell számok és polinomok (Bell ()).
- Megvalósult a expm1 () függvény.
- hajtotta végre a "tekintve poliexponenciális funkció" (polyexp ()).
- Megvalósult a Ikerprím állandó (twinprime) és Mertens "állandó (Mertens).
- Megvalósult az elsődleges zéta-függvény (primezeta ()).
Mi az új verzióban 0,10:
- kiegészítések közé összebeszélés támogatást, mátrixok és lineáris algebra funkciók, új gyökér-megállapítás és merőleges algoritmusok, továbbfejlesztett intervallum aritmetika, és néhány új speciális funkciók.
- Sok sebesség javulás követtek (néhány funkció egy nagyságrenddel gyorsabb, mint 0,9), és a különböző hiba javítva lett.
- Fontos, hogy ez a kiadás javítások mpmath dolgozni Python 2.6.
követelmények :
- Python
Hozzászólás nem található