Funciones simbólicas Sympy

Por facilidad, se pueden usar funciones matemáticas expresadas de forma simbólica con Sympy y descritas como funcionx.

El ejemplo se desarrolla en la ventana iterativa ¨shell¨

De debe importar la librería sympy; si no está disponible o sale un error la puede instalar con pip (revisar).

>>> import sympy as sym

Es necesario definir los símbolos que son usados como variables, para el ejercicio se usa la letra ‘x

>>> x = sym.Symbol('x') 
>>> funcionx = sym.cos(x)  

Usar símbolos permite generar las expresiones como la derivada funcionx.diff(x,k), la variable k indica la derivada k-ésima de la expresión.

>>> x
x
>>> funcionx
cos(x)
>>> funcionx.diff(x,1)
-sin(x)
>>> funcionx.diff(x,2)
-cos(x)

Las expresiones simbólicas se evaluan en un punto x0 usando la instrucción funcionx.subs(x,x0), que sustituye el símbolo de la variable x con el valor definido para x0.

>>> funcionx.subs(x,0)
1
>>> funcionx.subs(x,1/3)
0.944956946314738
>>> derivada = funcionx.diff(x,1)
>>> derivada
-sin(x)
>>> derivada.subs(x,1/3)
-0.327194696796152
>>> 

A una función simbólica se pueden añadir más términos con el mismo símbolo

>>> gx = funcionx + x
>>> gx
x + cos(x)
>>> gx = gx - 2
>>> gx
x + cos(x) - 2

Por lo que las funciones simbólicas son útiles cuando se construyen expresiones, como en el caso de series de Taylor descritas en la Unidad01


Observaciones:

Para evaluar en un punto x0 una función simbólica, requieren más tiempo de procesamiento (milisegundos), por lo que una vez construida la expresión pueden usarse para convertir a tipo numérica ¨lambda¨ y mejorar los tiempos de evaluación.

Dentro de las utilidades de sympy se dispone de la función lambdify para realizar éste cambio. Por ejemplo:

>>> funcionx.subs(x,0.1)
0.995004165278026

>>> fxn = sym.lambdify(x,funcionx,'numpy')
>>> fxn(0.1)
0.99500416527802582

la última parte de la expresión ‘numpy’, se usa para indicar la librería numérica de equivalencia de por ejemplo el cos().