Вы находитесь на странице: 1из 5

Primeros pasos con SymPy

Lo primero, como siempre, es importar aquello que vayamos a necesitar. La manera usual de
hacerlo con SymPy es importar la función init_session:
from sympy import init_session
init_session(use_latex=True)
from sympy import (symbols, pi, I, E, cos, sin, exp, tan, si
mplify, expand, factor, collect, apart, cancel, expand_trig,
diff, Derivative, Function, integrate, limit, series, Eq, so
lve, dsolve, Matrix, N)
Esta función ya se encarga de importar todas las funciones básicas y preparar las salidas gráficas.

1. Definición de variables¶
En contraste a otros sistemas de álgebra computacional, en SymPy hay que
declarar las variables simbólicas de forma explícita:
2. >>> from sympy import init_session
3. >>> init_session(use_latex=True)
4. >>> from sympy import (symbols)
5. >>> x = symbols('x')
6. >>> y = symbols('y')

7. Después de declararlas podrán ser usadas:


8. >>> x+y+x-y
9. 2*x
10.
11. >>> (x+y)**2
12. (x + y)**2

13. Los símbolos, ahora, pueden ser manipulados usando algunos de los operadores
python: +, -, *, ** (arithmetic), &, |, ~ , >>, << (boolean).

14. x = symbols('x')
15. In [16]:
16. x**2 + 4*x + 1
17. Out[16]:
18. x**2 + 4*x + 1
19. In [17]:
20. x+4*x
21. Out[17]:
22. 5*x
23. In [18]:
24. x**4/x**2
25. Out[18]:
26. x**2
Símbolos

En contraste a otros sistemas de álgebra computacional, en SymPy hay que declarar las
variables simbólicas de forma explícita:
>>> from sympy import *
>>> x = Symbol('x')
>>> y = Symbol('y')

Después de declararlas podrán ser usadas:


>>> x+y+x-y
2*x

>>> (x+y)**2
(x + y)**2

Los símbolos, ahora, pueden ser manipulados usando algunos de los operadores python:
+, -, *, ** (arithmetic), &, |, ~ , >>, << (boolean).

SymPy define tres tipos numéricos: Real, Racional y Entero.

La clase Racional representa un número racional como una pareja de números Enteros:
el numerador y el denominador, de esta forma Rational(1,2) representa 1/2, Rational(5,2)
5/2, etcétera:

>>> from sympy import *


>>> a = Rational(1,2)

>>> a
1/2

>>> a*2
1

SymPy usa mpmath (mpmath is a free (BSD licensed) Python library for real and
complex floating-point arithmetic with arbitrary precision.) en segundo plano, lo que hace
posible ejecutar cálculos usando aritmética con precisión arbitraria. De esta forma,
algunas constantes especiales como e, pi, oo (Infinito), son tratadas como símbolos y
pueden ser evaluadas con precisión arbitraria:
>>> pi**2
pi**2
>>> pi.evalf()
3.14159265358979

>>> (pi+exp(1)).evalf()
5.85987448204884

Como puedes ver, evalf evalúa la expresión como un número decimal.

También existe una clase para representar el infinito (matemático) llamada oo:
>>> oo > 99999
True
>>> oo + 1
oo

Ejercicio

27. Calcular en aritmética racional.


28. >>> from sympy import *
29. >>> a = Rational(1,2)
30. >>> b = Rational(1,3)
31.
32. >>> c=a+b
33. >>> print( c)
34.

Manipulaciones algebraicas

SymPy es capaz de ejecutar potentes manipulaciones algebraicas. Echaremos un vistazo


a algunas de las más usadas: expandir y simplificar.

Expandir

Usa lo siguiente para expandir una expresión algebraica. Tratará de expandir las potencias
y multiplicaciones:
In [23]: expand((x+y)**3)
Out[23]: 3*x*y**2 + 3*y*x**2 + x**3 + y**3

Se pueden usar diferentes opciones a partir de palabras clave:


In [28]: expand(x+y, complex=True)
Out[28]: I*im(x) + I*im(y) + re(x) + re(y)

In [30]: expand(cos(x+y), trig=True)


Out[30]: cos(x)*cos(y) - sin(x)*sin(y)

Simplificación

Usa simplify si quieres transformar una expresión en algo más sencillo:


In [19]: simplify((x+x*y)/x)
Out[19]: 1 + y

Simplificación es un término vago, es por ello que existen alternativas más precisas que
simplify: powsimp (simplificación de exponentes), trigsimp (para expresiones
trigonométricas), logcombine(combina logaritmos a un solo término), together(une
fracciones a un solo termino.

Ejercicios

1. Calcular la forma expandida de .


2. >>> from sympy import init_session
3. >>> init_session(use_latex=True)
4. >>> from sympy import (symbols,expand)
5. >>> x = Symbol('x')
6. >>> y = Symbol('y')
7. >>>c=expand((x+y)**6)
8. >>> print( c )
9. >>>x**6+6*x**5*y+15*x**4*y**2+20*x**3*y**3+15*x**2*y**4+6*x*y**5+y**5

10. Simplificar la expresión trigonométrica sin(x) / cos(x)

11. >>> from sympy import init_session


12. >>>init_session(use_latex=True)
13. >>> from sympy import (symbols,trigsimp)
14. >>> x = Symbol('x')
15. >>> y = Symbol('y')
16. >>> c=trigsimp(sin(x)/cos(x)
17. >>> print( c )
18. >>>tan(x)

Bibliografía
https://www.pybonacci.org/scipy-lecture-notes-ES/advanced/sympy.html

http://pyciencia.blogspot.com/2016/12/sympy.html

Вам также может понравиться