mpmath

Skjermbilde programvare:
mpmath
Prog.varedetaljer:
Versjon: 0.17
Last opp dato: 12 May 15
Lisens: Gratis
Popularitet: 81

Rating: 3.0/5 (Total Votes: 1)

mpmath er en erstatning for Pythons float / komplekse typer og matematikk / cmath moduler med ubegrenset presisjon og eksponent størrelser. Den mpmath programvaren er skrevet helt i Python uten eksterne avhengigheter, og dermed kjører nesten hvor som helst, uten behov for kompilering.
Å installere, pakke ut mpmath arkiv og kjøre
  python setup.py installere
Dokumentasjon og bruk:
Import mpmath med
    fra mpmath import *
Dette gir klassene MPF og MPC som arbeider analogt Pythons flyte og komplekse typer:
    >>> MPF (2) / MPF (3)
    MPF (',66666666666666663')
    >>> MPC (0, -1)
    MPC (ekte = "0", imag = '- 1 ")
    >>> MPF (-0,6) ** MPF (-0,2)
    MPC (ekte = ',89603999408558288', imag = '- ,65101116249684809')
For penere ut (som også skjuler små avrundingsfeil), bruk utskrifts eller str ():
    >>> Print MPF (2) / MPF (3)
    0,666666666666667
    >>> Print MPC (1 + 2j) ** 0,5
    (1,27201964951407 + 0.786151377757423j)
Presisjonen er kontrollert av egenskapene mpf.prec (antall biter) og mpf.dps (antall desimaler). Disse egenskapene er knyttet sammen, så endrer man automatisk oppdaterer den andre til å matche. Innstilling prec eller dps endrer presisjonen der alle operasjoner blir utført og antall sifre som skal vises når du skriver ut tall. Standardverdien er
prec = DPS = 53 og 15, den samme som Python flyter.
    >>> Mpf.dps = 30
    >>> MPF (2) / MPF (3)
    MPF ('0,66666666666666666666666666666663')
    >>> Print _
    ,666666666666666666666666666667
    >>> mpf.dps = 15 # gjenopprette til standard
Du kan opprette mpfs og MPCS fra Python tall, eller kombinere mpfs og MPCS med Python tall i regneoperasjoner, men vær oppmerksom på at regelmessig Python flyter bare har begrenset nøyaktighet. For å initialisere en MPF ​​med full presisjon verdi, bruk en streng:
    >>> MPF (0,1)
    MPF ('0,10000000000000001') # samme nøyaktighet som float
    >>> Mpf.dps = 50
    >>> MPF (0,1)
    MPF ('0,1000000000000000055511151231257827021181583404541016') # junk
    >>> MPF ('0.1')
    MPF ('0,1000000000000000000000000000000000000000000000000001') # ok
Følgende standardfunksjoner er tilgjengelige og støtte både reelle og komplekse argumenter:
  sqrt, exp, log, makt, cos, sin, tan, cosh, sinh, tanh,
  Acos, Asin, Atan, acosh, asinh, ATANH
Eksempel:
    >>> Mpf.dps = 15
    >>> utskrifts cos (1)
    0,540302305868140
    >>> Mpf.dps = 50
    >>> utskrifts cos (1)
    0,54030230586813971740093660744297660373231042061792
Noen mindre vanlige funksjoner er også tilgjengelig: gamma (gamma-funksjonen), fakultet, erf (feilfunksjon), lower_gamma / upper_gamma (ufullstendig gamma funksjon) og zeta (Riemann zeta funksjon).
Til slutt, de praktiske funksjonene hypot og ATAN2 er tilgjengelige (definert for reelle tall bare).
Konstantene pi, e, og cgamma (Eulers konstant) er tilgjengelig som spesialobjekter som oppfører seg som mpfs men hvis verdier automatisk justere seg til presisjon.
    >>> 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 (ekte = '- 1', imag = '1,0106 [...] E-51')
Regissert avrunding er delvis implementert. For eksempel beregner dette, og bekrefter en 15-sifret tilnærming intervall for 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     Sann

Hva er nytt i denne utgaven:

  • Generelt
  • Det er nå mulig å opprette flere kontekst gjenstander og bruke kontekst lokale metoder i stedet for globale statlige / funksjoner (f.eks mp2 = mp.clone (); mp2.dps = 50; mp2.cos (3)). Ikke alle funksjoner er konvertert til kontekst metoder, og det er noen bugs, så denne funksjonen er foreløpig eksperimentell.
  • Hvis mpmath er installert i Sage 4.0 eller nyere, mpmath vil nå bruke sage.Integer stedet for Python lang internt.
  • Fjernet forekomster av gammel stil heltallsdivisjon fra kodebasen.
  • runtests.py kan kjøres med -coverage å generere dekning statistikk.
  • Typer og grunnleggende aritmetikk
  • Fast sammenligning med -Inf.
  • Endret repr format av MPI intervalltype å gjøre eval (repr (x)) == x.
  • Forbedret utskrift av intervaller, med konfigurerbare output format (bidratt med Vinzent Steinberg basert på koden ved Don Peterson).
  • Intervaller støttet av mpmathify () og nstr () (bidratt med Vinzent Steinberg).
  • er MPC nå hashable.
  • Lagt mer formateringsalternativer til den interne funksjonen to_str.
  • Raskere pure-Python kvadratroten.
  • Fix etterfølgende mellomrom gir feil verdier i str- & gt;. MPF konvertering
  • Kalkulus
  • Fast nsum () med Euler-Maclaurin summering som tidligere ville ignorere start indeksen og sum fra n = 1.
  • Gjennomført Newtons metode for findroot () (bidratt med Vinzent Steinberg).
  • Lineær algebra
  • Fast LU_decomp () for å gjenkjenne enkelt matriser (bidro med Vinzent Steinberg).
  • De forskjellige norm funksjoner ble erstattet av den generiske vektor norm funksjon norm (x, p) og den generiske matrise norm funksjon mnorm (x, p).
  • Spesialfunksjoner:
  • Noen interne cacher ble endret til alltid litt overallocate presisjon. Dette løser worst-case atferd der tidligere den bufrede verdi måtte bli omregnet på hver funksjon samtale.
  • Fast log (lite antall) returnerer tull med høy presisjon.
  • Fast gamma () og avledede funksjoner som binomial () returnerer feil resultat på heltall inngangene er delelig med et stort potens av 2.
  • Fast Asin () ikke å heve et unntak ved høy presisjon (bidratt med Vinzent Steinberg).
  • Optimalisert AGM-kode for den naturlige logaritmen, noe som gjør den tidligere brukte Newton metoden på mellom presiseringer foreldet.
  • Det aritmetiske-geometrisk gjennomsnitt funksjon agm () er nå en størrelsesorden raskere ved lav presisjon.
  • Raskere implementeringer av ellipk () og ellipe ().
  • Analytisk fortsettelse av ellipe () til | x | & gt;. = 1 implementert
  • Gjennomført loggen gamma-funksjonen (loggamma ()) med riktige avdelings kutt (treg, plassholder implementering).
  • Faste avdelings kutt av hyperfac ().
  • Gjennomført Riemann-Siegel Z-funksjon (siegelz ()).
  • Gjennomført Riemann-Siegel theta funksjon (siegeltheta ()).
  • Gjennomført beregning av Gram punkter (grampoint ()).
  • Gjennomført beregning av Riemann zeta funksjonen nuller (zetazero ()).
  • Gjennomført stats telling funksjon: en langsom, eksakt versjon (primepi ()). og en rask omtrentlig versjon (primepi2 ()) som gir en markerings intervall.
  • Gjennomført Riemann R prime telling funksjon (riemannr ()).
  • Gjennomførte Bell tall og polynomer (bell ()).
  • Gjennomført den expm1 () -funksjonen.
  • implementert 'polyeksponensielt funksjonen' (polyexp ()).
  • Gjennomført twin prime konstant (twinprime) og Mertens 'konstant (mertens).
  • Gjennomført stats zeta-funksjonen (primezeta ()).

Hva er nytt i versjon 0.10:

  • Tilgang inkluderer plotting støtte, matriser og lineære algebra funksjoner, nye root-funn- og kvadratur algoritmer, forbedret intervall aritmetikk, og noen nye spesielle funksjoner.
  • Mange fart forbedringer har blitt begått (noen funksjoner er en størrelsesorden raskere enn i 0,9), og diverse bugs har blitt fikset.
  • Viktigere denne utgivelsen fikser mpmath å jobbe med Python 2.6.

Krav

  • Python

Lignende programvare

Eigen
Eigen

19 Feb 15

Gplib++
Gplib++

12 May 15

DanCalculator
DanCalculator

20 Feb 15

Annen programvare fra utvikleren Fredrik Johansson

mpmath
mpmath

14 Apr 15

Kommentarer til mpmath

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!