SymPy

De Viquipèdia
Dreceres ràpides: navegació, cerca
SymPy
SymPy
Desenvolupador(s) comunitat SymPy
Versió inicial 2007
Versió estable

0.7.3

/ Juliol 13, 2013; fa 8 mesos (2013-07-13)
Estat de desenvolupament Actiu
Escrit en Python
Sistema operatiu Multiplataforma
Tipus Sistema algebraic computacional
Llicència Llicència BSD
Lloc web sympy.org

SymPy és una biblioteca escrita en Python l'objectiu és reunir totes les característiques d'un sistema d'àlgebra computacional (conegut per les sigles en anglès CAS, Computational Algebraic System), ser fàcilment extensible i mantenir el codi tot el simple que sigui possible. SymPy no requereix cap biblioteca externa, excepte per a suport gràfic.

Característiques[modifica | modifica el codi]

En la seva funcionalitat podem distingir entre:

  • Capacitats bàsiques, que inclouen:
    • Maneig d'enters de precisió arbitrària i de nombres racionals,
    • Simplificació bàsica, expansió, substitució bàsica,
    • Maneig de funcions sobre el cos dels complexos,
    • Derivació, expansió en sèries de Taylor o de Laurent,
    • Símbols no commutatius.
  • Mòduls que incorporen aquestes tasques:
    • Més funcions (factorial, zeta, Legendre, etc),
    • Límits,
    • Integració,
    • Divisibilitat i factorització de polinomis,
    • Resolució d'equacions algebraiques, diferencials i sistemes,
    • Operacions amb matrius simbòliques,
    • Àlgebra de Dirac i de Pauli,
    • Representació gràfica (en 2D i en 3D).
  • Paquets externs:
    • Symbide: GUI en PyGTK

Exemple d'ús[modifica | modifica el codi]

Noteu que, en contrast amb altres CAS, cal declarar les variables simbòliques abans d'utilitzar-les.

>>> from sympy import *
>>> x,y = symbols('xy') #Es declaren les variables simbòliques
>>> f = x**2 / y + 2 * x - ln(y)
>>> diff(f,x)
2 + 2*x/y
>>> f.diff(x) #Notació alternativa per a mètodes com la derivació i altres operadors
2 + 2*x/y
>>> diff(f,y)
-1/y - x**2*y**(-2)
>>> integrate(exp(-x), (x, 0, oo)) #oo és la classe que representa infinit
1

Enllaços externs[modifica | modifica el codi]