Sympy

Software screenshot:
Sympy
Software informatie:
Versie: 0.7.2
Upload datum: 20 Feb 15
Ontwikkelaar: Ondrej Certik
Licentie: Gratis
Populariteit: 148

Rating: 3.7/5 (Total Votes: 3)

Sympy is een open source symbolische manipulatie pakket, geschreven in pure Python.
Doel Sympy is om een ​​complete CAS in Python geworden, terwijl de code zo eenvoudig mogelijk te houden, zodat het gemakkelijk uit te breiden en begrijpelijk kan zijn

Kenmerken .

  • elementaire rekenkunde *, /, +, -
  • basis vereenvoudiging (zoals a * b * b + 2 * b * a * b - & gt; 3 * a * b ^ 2)
  • uitbreiding (zoals (a + b) ^ 2 - & gt; een ^ 2 + 2 * a * b + b ^ 2)
  • functies (exp, ln, sin, cos, tan, ...)
  • complexe getallen (zoals exp (I * x) .evalc () - & gt; cos (x) + I * sin (x))
  • differentiatie
  • taylor serie
  • basis substitutie (zoals x- & gt; ln (x))
  • willekeurige precisie gehele getallen en rationale getallen
  • norm (python) drijft

Wat is nieuw in deze release:.

  • SymPy ondersteunt nu Python 3 en pypy
  • Deze release bevat ook belangrijke nieuwe functies in combinatoriek, definitieve integratie, random variabelen, matrix uitdrukkingen, sets, klassieke mechanica, quantummechanica, commutatieve algebra, plotten, en differentiële meetkunde.
  • Er waren ook honderden bugfixes in de gehele code base.

Wat is nieuw in versie 0.7.1:

  • Belangrijke veranderingen:
  • Python 2.4 wordt niet meer ondersteund. SymPy zal helemaal niet werken in Python 2.4. Als je nog nodig hebt om SymPy gebruiken onder Python 2.4 om wat voor reden, moet u SymPy 0.7.0 of eerder te gebruiken.
  • De Pyglet plotten bibliotheek is nu een (optionele) externe afhankelijkheid. Eerder hebben we verscheept een versie van Pyglet met SymPy, maar deze oude en buggy was. Het plan is om uiteindelijk maken het plotten in SymPy veel meer modulair, zodat het ondersteunt vele backends, maar dit is nog niet gedaan. Voor nu, is nog maar Pyglet direct ondersteund. Merk op dat Pyglet is slechts een optionele afhankelijkheid en is alleen nodig voor het plotten. De rest van SymPy kan nog gebruikt worden zonder afhankelijkheden (behalve voor Python).
  • isympy werkt nu met de nieuwe ipython 0,11.
  • mpmath is bijgewerkt tot 0,17. Zie de bijbehorende mpmath release notes bij http://mpmath.googlecode.com/svn/trunk/CHANGES.
  • Toegevoegd een Subs object voor het vertegenwoordigen van ongeëvalueerde vervangingen. Dit laat eindelijk ons ​​derivaten geëvalueerd op een punt vertegenwoordigt, dat wil zeggen, diff (f (x), x) .subs (x, 0) retourneert Subs (Afgeleide (f (_x), _x), (_x,), (0, )). Dit betekent ook dat SymPy nu correct kan berekenen de keten regel bij deze functionaliteit nodig is, zoals bij f (g (x)). Diff (x).
  • Hypergeometrische functies / Meijer G-functies:
  • Toegevoegd klassen hyper () en meijerg () om Hypergeometrische en Meijer G-functies weer te geven, respectievelijk. Ze ondersteunen numerieke evaluatie (met mpmath) en symbolische differentiatie (niet met betrekking tot de parameters).
  • Toegevoegd een algoritme voor het herschrijven van hypergeometrische en meijer g-functies in termen van meer vertrouwd, genaamd speciale functies. Het is bereikbaar via de functie hyperexpand (), of ook via expand_func (). Dit algoritme herkent veel elementaire functies, alsmede volledige en onvolledige gammafuncties, Besselfuncties en foutfuncties. Het kan gemakkelijk worden uitgebreid naar meer klassen van speciale functies uit te voeren.
  • accessoires:
  • Toegevoegd FiniteSet klasse aan python set gedrag na te bootsen, terwijl ook de interactie met bestaande intervallen en Unions
  • FiniteSets en Intervallen interactie zodat bijvoorbeeld interval (0, 10) - FiniteSet (0, 5) produceert (0, 5) U (5, 10]
  • FiniteSets behandelen ook niet-numerieke objecten, zodat de volgende mogelijk is {1, 2, 'één', 'twee', {a, b}}
  • Toegevoegd ProductSet om Cartesiaanse producten van sets verwerken
  • Maak gebruik van de * operator, dwz twodice = FiniteSet (1, 2, 3, 4, 5, 6) * FiniteSet (1, 2, 3, 4, 5, 6) of vierkant = interval (0, 1) * Interval (0, 1)
  • pow operator werkt ook zoals verwacht: R3 = Interval (-oo, oo) ** 3; (3, -5, 0) in R3 == True
  • Aftrekken, unie, meet alle werkzaamheden waarbij complexe kruispunten in aanmerking.
  • Toegevoegd as_relational methode om sets, het produceren van boolean verklaringen met behulp van AND, OR, Eq, Lt, Gt, etc ...
  • Veranderd reduce_poly_inequalities vakbonden sets terug in plaats van lijsten van sets
  • Iterables:
  • Toegevoegde genereren routines voor integer partities en binaire partities. De routine van integere verdelingen duurt 3 argumenten, het nummer zelf, de maximale element toegelaten in de gegenereerde partities en het maximaal mogelijke aantal elementen die in de scheidingswand. Binaire partities worden gekenmerkt door het bevatten van slechts machten van twee.
  • Toegevoegd genereren routine voor multi-set partities. Gegeven een multiset, het algoritme geïmplementeerd zal alle mogelijke partities van die multi-set te genereren.
  • Toegevoegde genereren routines voor bell permutaties, derangements en involuties. Een belletje permutatie is er een waarin de cycli die het samenstellen bestaan ​​uit gehele getallen in een aflopende volgorde. Een storing is een permutatie zodanig dat het ide element niet de ide positie. Een involutie is een permutatie dat wanneer vermenigvuldigd met zelf geeft de identiteit permutatie.
  • Toegevoegde genereren routine voor onbeperkte kettingen. Een onbeperkt ketting is een een-voudige reeks van n karakters, elk van een mogelijke types. Deze zijn gekenmerkt door de parameters n en k in de routine.
  • Toegevoegde genereren routine voor gerichte bossen. Dit is een implementatie van algoritme S TAOCP Vol 4A.
  • xyz Spin bases:
  • Het vertegenwoordigen, herschrijven en inproductruimten logica is verbeterd om te werken tussen twee spin-bases. Dit werd gedaan door gebruikmaking van de Wigner-D matrix, in het WignerD klasse geïmplementeerd, het bepalen van de veranderingen tussen de verschillende basen. Die een toestand, namelijk vertegenwoordigen (JzKet (1,0), basis = Jx), kan worden gebruikt om de vector voorstelling geven van elke krijgen in elk van de x / y / z basis voor numerieke waarden van j en m de spin eigentoestand. Op dezelfde manier, het herschrijven van staten in verschillende bases, dwz JzKet (1,0) .rewrite ('Jx'), schrijft de staten als een lineaire combinatie van elementen van de gegeven basis. Omdat deze is gebaseerd op de vertegenwoordigen functie, dit werkt alleen voor numerieke j en m-waarden. Het inproduct van twee eigentoestanden in verschillende bases kan worden geëvalueerd, dwz inproductruimten (JzKet (1,0), JxKet (1,1)). Wanneer twee verschillende bases worden gebruikt, wordt één staat herschreven in de andere hand, dus dit vergt numerieke waarden van j en m, maar innerproducts van staten in de dezelfde basis kunnen nog steeds symbolisch worden gedaan.
  • De Rotation.D en Rotation.d methoden die de Wigner-D functie en de Wigner kleine-d functie terug een instantie van de klasse WignerD, die kan worden geëvalueerd met de methode doit () de overeenkomstige matrix geven element van de Wigner-D matrix.
  • Andere wijzigingen:
  • Wij gebruiken nu MathJax in onze docs. MathJax maakt LaTeX wiskunde entierly in de browser met behulp van Javascript. Dit betekent dat de wiskunde is beter leesbaar dan de vorige PNG math, welke beelden gebruikt. MathJax wordt alleen ondersteund op moderne browsers, dus LaTeX wiskunde in de docs kan niet werken op oudere browsers.
  • nroots () kunt u nu de precisie van berekeningen set
  • Ondersteuning toegevoegd voor gmpy en mpmath's typen om sympify ()
  • Bevestig een aantal bugs met lambdify ()
  • Een bug met as_independent en niet-commutatieve symbolen.
  • Een bug met collect (uitgave 2516)
  • Veel fixes in verband met het porten SymPy Python 3. Dankzij onze GSoC student Vladimir Peric, deze taak is bijna afgerond.
  • Sommige mensen werden met terugwerkende kracht toegevoegd aan de auteurs bestand.
  • Voegde een oplosser voor een speciaal geval van de Riccativergelijking in de ODE-module.
  • het Herhaalde derivaten worden behoorlijk afgedrukt in een beknopte manier.
  • Een bug met het integreren van functies met meerdere DiracDeltas.
  • ondersteuning voor Matrix.norm () die werkt voor Matrices (niet alleen vectoren) toevoegen.
  • Verbeteringen aan de Groebner bases algoritme.
  • Plot.saveimage ondersteunt nu een StringIO outfile
  • Expr.as_ordered_terms ondersteunt nu niet lex ordeningen.
  • diff canonicalizes nu de orde van differentiatie symbolen. Dit is dus het kan uitdrukkingen als f (x, y) .diff (x, y) te vereenvoudigen - f (x, y) .diff (y, x). Als u wilt een Afgeleid object te maken zonder het sorteren van de args, moet je het expliciet maken met Afgeleide, zodat u Afgeleide (f (x, y), x, y)! = Afgeleide (f (x, y) zal krijgen, y, x). Merk op dat intern, derivaten die kan worden berekend worden altijd berekend in de volgorde waarin ze worden gegeven in.
  • Toegevoegd functies is_sequence () en iterable () om te bepalen of iets een besteld iterable of normale iterable, respectievelijk.
  • Ingeschakeld een optie in Sphinx, dat een bron link voegt naast elke functie, die links naar een kopie van de broncode voor die functie.

Wat is nieuw in versie 0.7.0:

  • Dit is een belangrijke release die veel nieuwe functionaliteit toevoegt .
  • De grootste verandering is de nieuwe poly's, die veel krachtiger en veel sneller zijn. Dit heeft invloed op vele delen van SymPy, waaronder de solvers en vereenvoudiging.
  • Een andere grote verandering is de nieuwe quantum-module, die werd toegevoegd als gevolg van twee Google Summer of Code projecten.
  • Afgezien van deze grote veranderingen, zijn er veel veranderingen in heel SymPy.
  • Deze versie heeft ook een paar meestal kleine backwards compatibility pauzes.

Wat is nieuw in versie 0.6.3:

  • geport naar python2.6 (alle tests doorstaan) en Jython (alle tests doorstaan, behalve die, afhankelijk van de & quot; ast & quot; module).
  • True divisie werd vastgesteld (alle tests doorstaan ​​met de & quot; -Qnew & quot; Python optie)
  • .
  • buildbot.sympy.org is gemaakt; sympy wordt nu regelmatig getest op Python 2.4, 2.5 en 2.6 op zowel i386 en amd64.
  • py.bench.:-Py.test gebaseerd benchmarking
  • bin / test: een eenvoudige py.test-achtige toetsingskader, zonder externe afhankelijkheden en met mooi gekleurde uitgang
  • .
  • De meeste grenzen nu aan het werk.
  • het ontbinden in factoren dan Z [x] is sterk verbeterd.
  • Piecewise functie werd toegevoegd. nsimplify () werd uitgevoerd.
  • Symbolen en var syntaxis werden verenigd.
  • C-code afdrukken.

Eisen

  • Python

Vergelijkbare software

NetworkX
NetworkX

20 Feb 15

libagf
libagf

20 Feb 15

OctPlot
OctPlot

3 Jun 15

FLENS
FLENS

20 Feb 15

Reacties op Sympy

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!