Sympy

Software skärmdump:
Sympy
Mjukvaruinformation:
Version: 0.7.2
Ladda upp dagen: 20 Feb 15
Utvecklare: Ondrej Certik
Licens: Gratis
Popularitet: 148

Rating: 3.7/5 (Total Votes: 3)

Sympy är ett open source symbolisk manipulation paket, skriven i ren Python.
Sympy mål är att bli en fullfjädrad CAS i Python, medan koden hålls så enkla som möjligt så det kan vara lätt utbyggbar och begriplig

Funktioner :.

  • grundläggande aritmetik *, /, +, -
  • grundläggande förenkling (som en * b * b + 2 * b * a * b - & gt; 3 * a * b ^ 2)
  • expansion (som (a + b) ^ 2 - & gt; a ^ 2 + 2 * a * b + b ^ 2)
  • funktioner (exp, ln, sin, cos, tan, ...)
  • komplexa tal (som exp (I * x) .evalc () - & gt; cos (x) + I * sin (x))
  • differentiering
  • taylor serien
  • grundläggande substitution (som x- & gt; ln (x))
  • godtyckliga precisions heltal och rationella
  • standard (python) flyter

Vad är nytt i den här versionen:.

  • SymPy stöder nu Python 3 och PyPy
  • Den här versionen innehåller också stora nya funktionerna i kombinatorik, definitiv integration, slumpvariabler, matrisuttryck, uppsättningar, klassisk mekanik, kvantmekanik, kommutativ algebra, konspirera, och differentialgeometri.
  • Det fanns också hundratals buggfixar i hela kodbas.

Vad är nytt i version 0.7.1:

  • Stora förändringar:

  • Stöds inte längre
  • Python 2.4. SymPy fungerar inte alls i Python 2.4. Om du fortfarande behöver använda SymPy enligt Python 2.4 av någon anledning, måste du använda SymPy 0.7.0 eller tidigare.
  • Pyglet plottning biblioteket är nu en (tillval) externt beroende. Tidigare levererades vi en version av Pyglet med SymPy, men detta var gamla och buggig. Planen är att på sikt göra plottning i SymPy mycket mer modulärt, så att den stöder många implementationer, men detta har inte skett ännu. För nu är fortfarande bara Pyglet stöds direkt. Observera att Pyglet är bara en valfri beroende och behövs endast för att rita. Resten av SymPy kan fortfarande användas utan några beroenden (utom för Python).
  • isympy arbetar nu med den nya ipython 0,11.
  • mpmath har uppdaterats till 0.17. Se motsvarande mpmath versionsfakta på http://mpmath.googlecode.com/svn/trunk/CHANGES.
  • Inkom en Subs objekt för att representera icke beräknade ersättningar. Detta låter slutligen oss representera derivat testade vid en punkt, dvs diff (f (x), x) .subs (x, 0) returnerar Subs (derivat (f (_x), _x), (_x,), (0, )). Detta innebär också att SymPy nu korrekt kan beräkna kedjeregeln när det krävs denna funktionalitet, till exempel med f (g (x)). Diff (x).
  • hypergeometriska funktioner / Meijer G-Funktioner:
  • Lades klasser hyper () och meijerg () för att representera hypergeometriska och Meijer G-funktioner, respektive. De stöder numerisk utvärdering (med mpmath) och symbolisk differentiering (ej med avseende på de parametrar).
  • Inkom en algoritm för att skriva hypergeometriska och Meijer g-funktioner i form av mer kända, kallade särskilda funktioner. Den är tillgänglig via funktionen hyperexpand (), eller också via expand_func (). Denna algoritm erkänner många elementära funktioner, och även kompletta och ofullständiga gammafunktioner, besselfunktioner och felfunktioner. Det kan lätt utvidgas till att hantera fler klasser av speciella funktioner.
  • Set:
  • Lade FiniteSet klass för att efterlikna python set beteende samtidigt som interagerar med befintliga Intervaller och unioner
  • FiniteSets och Intervaller samverkar så att exempelvis Intervall (0, 10) - FiniteSet (0, 5) producerar (0, 5) U (5, 10]
  • FiniteSets hanterar även icke-numeriska objekt så följande är möjligt {1, 2, "ett", "två", {a, b}}
  • Lade ProductSet att hantera kartesiska produkter av set
  • Skapa med hjälp av * operatören, dvs twodice = FiniteSet (1, 2, 3, 4, 5, 6) * FiniteSet (1, 2, 3, 4, 5, 6) eller fyrkantig = Intervall (0, 1) * Intervall (0, 1)
  • pow operatör fungerar också som förväntat: R3 = Intervall (-oo, oo) ** 3; (3, -5, 0) i R3 == Sann
  • subtraktion, union, mätning allt arbete med komplexa korsningar i beaktande.
  • Inkom as_relational metod för satser, producerar booleska uttalanden med hjälp Och Eller Eq, Lt, Gt, etc ...
  • Ändrade reduce_poly_inequalities att återvända fackföreningar uppsättningar i stället listor över set
  • Iterables:
  • Lade generera rutiner för heltal partitioner och binära partitioner. Rutinen för heltal partitioner tar 3 argument, själva numret, den högsta möjliga elementet tillåtna i partitioner som genereras och högsta möjliga antalet element som kommer att vara i partitionen. Binära partitioner kännetecknas av att de innehåller endast befogenheter två.
  • Inkom generera rutin för fler set partitioner. Givet en multimängd, algoritmen implementeras kommer att generera alla möjliga partitioner av den multi set.
  • Lade generera rutiner för bell permutationer, derangements och involutions. En klocka permutation är en i vilken de cykler som utgör den består av heltal i en minskande ordning. En störning är en permutation sådan att det ite elementet inte på te positionen. En involution är en permutation som multiplicerad med sig själv ger identitet permutation.
  • Lade generera rutin för obegränsad halsband. En obegränsad halsband är en a-ari sträng med n tecken, var och av möjliga typer. Dessa har präglats av parametrarna n och k i rutinen.
  • Lade generera rutin för orienterade skogar. Detta är en implementering av algoritmen S i TAOCP vol 4A.
  • xyz Spin baser:
  • representerar, skriva och inre produkt logik har förbättrats för att arbeta mellan två spin baser. Detta gjordes genom att använda Wigner-D matris, implementeras i WignerD klassen, att definiera de förändringar mellan de olika baserna. Representera en stat, dvs representerar (JzKet (1,0), bas = Jx), kan användas för att ge vektorrepresentation av någon få i någon av de x / y / z baser för numeriska värden på j och m i spinn eigenstate. Likaså skriva om stater i olika baser, dvs JzKet (1,0) .rewrite ("Jx '), kommer att skriva staterna som en linjär kombination av element i den givna grunden. Eftersom detta är beroende av representera funktionen, detta endast fungerar för numeriska j och m-värden. Den inre produkten av två egentillstånd i olika baser kan utvärderas, dvs inre produkt (JzKet (1,0), JxKet (1,1)). När två olika baser används, är en stat skrivas in i den andra grunden, så detta kräver numeriska värden på j och m, men innerproducts av stater i samma grund kan fortfarande göras symboliskt.
  • De Rotation.D och Rotation.d metoder, som representerar Wigner-D funktionen och Wigner små d funktion, returnera en instans av WignerD klassen, som kan utvärderas med doit () för att ge motsvarande matris inslag i Wigner-D matris.
  • Andra förändringar:
  • Vi använder nu MathJax i våra docs. MathJax gör LaTeX matematik entierly i webbläsaren med hjälp av JavaScript. Detta innebär att matte är mycket mer lättläst än den tidigare png matte, som använder bilder. MathJax stöds endast av moderna webbläsare, så LaTeX matematik i docs kanske inte fungerar på äldre webbläsare.
  • nroots () kan du nu ställa in precisionen i beräkningar
  • Stöd för gmpy och mpmath s typer att sympify ()
  • Fix del buggar med lambdify ()
  • Fix en bugg med as_independent och icke-kommutativa symboler.
  • Fix en bugg med samla (fråga 2516)
  • Många fixar rör portning SymPy till Python 3. Tack vare vår GSoC elev Vladimir Peric, denna uppgift är nästan klar.
  • En del människor blev retroaktivt läggas till författarna filen.
  • Inkom en lösare för ett specialfall av den Riccati ekvationen i ODE-modulen.
  • Itererad derivat ganska tryckt på ett kortfattat sätt.
  • Fix en bugg med att integrera funktioner med flera DiracDeltas.
  • Lägg till stöd för Matrix.norm () som fungerar för matriser (inte bara vektorer).
  • Förbättringar av Groebner baser algoritmen.
  • Plot.saveimage stöder nu en StringIO outfile
  • Expr.as_ordered_terms stöder nu icke lex ordningar.
  • diff canonicalizes nu ordningen på differentierings symboler. Detta är så att det kan förenkla uttryck som f (x, y) .diff (x, y) - f (x, y) .diff (y, x). Om du vill skapa ett Bearbetat objekt utan sortering av args, bör du skapa det uttryckligen med Derivat, så att du kommer att få Derivat (f (x, y), x, y)! = Derivat (f (x, y), y, x). Observera att internt, är derivat som kan beräknas alltid beräknas i den ordning som de ges i.
  • Lades funktioner is_sequence () och iterable () för att avgöra om något är en ordnad iterable eller normal iterable, respektive.
  • Aktiverad ett alternativ i Sphinx som lägger en källa länken bredvid varje funktion, som länkar till en kopia av källkoden för den funktionen.

Vad är nytt i version 0.7.0:

  • Detta är en större utgåva som tillför mycket ny funktionalitet .
  • Den största förändringen är de nya Polys, som är mycket mer kraftfull och mycket snabbare. Detta påverkar många delar av SymPy, inklusive lösare och förenkling.
  • En annan stor förändring är den nya kvant modulen, som tillkom som ett resultat av två Google Summer of Code projekt.
  • Förutom dessa stora förändringar, det finns många förändringar under hela SymPy.
  • Den här versionen har också några smärre bakåtkompatibilitets raster.

Vad är nytt i version 0.6.3:

  • portas till python2.6 (alla tester pass) och Jython (alla tester passerar utom de beroende på & quot; ast & quot; modul).
  • Sann division fastställdes (alla tester passerar med & quot; -Qnew & quot; Python tillval)
  • .
  • buildbot.sympy.org skapades; sympy nu testas regelbundet på Python 2.4, 2.5 och 2.6 på båda i386 och amd64.
  • py.bench:. Py.test Baserad benchmarking
  • bin / test: en enkel py.test liknande ram testning, utan yttre beroenden och med fint färgad utgång
  • .
  • De flesta gränserna fungerar nu.
  • Faktorisering över Z [x] förbättrades avsevärt.
  • Stegvis funktion tillsattes. nsimplify () genomfördes.
  • Symboler och var syntax var enat.
  • C-kod utskrift.

Krav :

  • Python

Liknande mjukvara

PG Calculator
PG Calculator

3 Jun 15

Hilbert II
Hilbert II

20 Feb 15

Gplib++
Gplib++

12 May 15

FreeMat
FreeMat

3 Jun 15

Kommentarer till Sympy

Kommentarer hittades inte
Kommentar
Slå på bilder!