SymPy - Clase de función
El paquete Sympy tiene la clase Function, que se define en el módulo sympy.core.function. Es una clase base para todas las funciones matemáticas aplicadas, como también un constructor para clases de funciones no definidas.
Las siguientes categorías de funciones se heredan de la clase de función:
- Funciones para números complejos
- Funciones trigonométricas
- Funciones para números enteros
- Funciones combinatorias
- Otras funciones diversas
Funciones para números complejos
Este conjunto de funciones se define en sympy.functions.elementary.complexes módulo.
re
Esta función devuelve parte real de una expresión:
>>> from sympy import *
>>> re(5+3*I)
La salida para el fragmento de código anterior se proporciona a continuación:
5
>>> re(I)
El resultado del fragmento de código anterior es:
0
Im
Esta función devuelve una parte imaginaria de una expresión:
>>> im(5+3*I)
La salida para el fragmento de código anterior se proporciona a continuación:
3
>>> im(I)
La salida para el fragmento de código anterior se proporciona a continuación:
1
sign
Esta función devuelve el signo complejo de una expresión.
Para una expresión real, el signo será:
- 1 si la expresión es positiva
- 0 si la expresión es igual a cero
- -1 si la expresión es negativa
Si la expresión es imaginaria, el signo devuelto es -
- Yo si im (expresión) es positiva
- -I si im (expresión) es negativa
>>> sign(1.55), sign(-1), sign(S.Zero)
La salida para el fragmento de código anterior se proporciona a continuación:
(1, -1, 0)
>>> sign (-3*I), sign(I*2)
La salida para el fragmento de código anterior se proporciona a continuación:
(-I, I)
Abs
Esta función devuelve el valor absoluto de un número complejo. Se define como la distancia entre el origen (0,0) y el punto (a, b) en el plano complejo. Esta función es una extensión de la función incorporada abs () para aceptar valores simbólicos.
>>> Abs(2+3*I)
La salida para el fragmento de código anterior se proporciona a continuación:
$\sqrt13$
conjugate
Esta función devuelve conjugado de un número complejo. Para encontrar el conjugado complejo cambiamos el signo de la parte imaginaria.
>>> conjugate(4+7*I)
Obtiene el siguiente resultado después de ejecutar el fragmento de código anterior:
4 - 7i
Funciones trigonométricas
SymPy tiene definiciones para todas las relaciones trigonométricas - sin cos, tan, etc., así como sus contrapartes inversas como asin, acos, atan, etc. Estas funciones calculan el valor respectivo para un ángulo dado expresado en radianes.
>>> sin(pi/2), cos(pi/4), tan(pi/6)
La salida para el fragmento de código anterior se proporciona a continuación:
(1, sqrt(2)/2, sqrt(3)/3)
>>> asin(1), acos(sqrt(2)/2), atan(sqrt(3)/3)
La salida para el fragmento de código anterior se proporciona a continuación:
(pi/2, pi/4, pi/6)
Funciones sobre números enteros
Este es un conjunto de funciones para realizar varias operaciones en números enteros.
ceiling
Esta es una función univariante que devuelve el valor entero más pequeño no menor que su argumento. En caso de números complejos, techo de las partes real e imaginaria por separado.
>>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)
La salida para el fragmento de código anterior se proporciona a continuación:
(4, 7, 3 + 4*I)
floor
Esta función devuelve el valor entero más grande no mayor que su argumento. En el caso de números complejos, esta función también toma el piso de las partes real e imaginaria por separado.
>>> floor(pi), floor(Rational(100,6)), floor(6.3-5.9*I)
La salida para el fragmento de código anterior se proporciona a continuación:
(3, 16, 6 - 6*I)
frac
Esta función representa la parte fraccionaria de x.
>>> frac(3.99), frac(Rational(10,3)), frac(10)
La salida para el fragmento de código anterior se proporciona a continuación:
(0.990000000000000, 1/3, 0)
Funciones combinatorias
La combinatoria es un campo de las matemáticas que se ocupa de problemas de selección, disposición y operación dentro de un sistema finito o discreto.
factorial
El factorial es muy importante en combinatoria, donde da el número de formas en que se pueden permutar n objetos. ¡Se representa simbólicamente como! Esta función es la implementación de la función factorial sobre enteros no negativos, el factorial de un entero negativo es infinito complejo.
>>> x=Symbol('x')
>>> factorial(x)
La salida para el fragmento de código anterior se proporciona a continuación:
x!
>>> factorial(5)
La salida para el fragmento de código anterior se proporciona a continuación:
120
>>> factorial(-1)
La salida para el fragmento de código anterior se proporciona a continuación:
$\infty\backsim$
binomio
Esta función indica el número de formas en que podemos elegir k elementos de un conjunto de n elementos.
>>> x,y=symbols('x y')
>>> binomial(x,y)
La salida para el fragmento de código anterior se proporciona a continuación:
$(\frac{x}{y})$
>>> binomial(4,2)
La salida para el fragmento de código anterior se proporciona a continuación:
6
Las filas del triángulo de Pascal se pueden generar con la función binomial.
>>> for i in range(5): print ([binomial(i,j) for j in range(i+1)])
Obtiene el siguiente resultado después de ejecutar el fragmento de código anterior:
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
fibonacci
Los números de Fibonacci son la secuencia entera definida por los términos iniciales F0 = 0, F1 = 1 y la relación de recurrencia de dos términos Fn = Fn − 1 + Fn − 2.
>>> [fibonacci(x) for x in range(10)]
El siguiente resultado se obtiene después de ejecutar el fragmento de código anterior:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
tribonacci
Los números de Tribonacci son la secuencia entera definida por los términos iniciales F0 = 0, F1 = 1, F2 = 1 y la relación de recurrencia de tres términos Fn = Fn-1 + Fn-2 + Fn-3.
>>> tribonacci(5, Symbol('x'))
El fragmento de código anterior proporciona una salida equivalente a la siguiente expresión:
$x^8 + 3x^5 + 3x^2$
>>> [tribonacci(x) for x in range(10)]
El siguiente resultado se obtiene después de ejecutar el fragmento de código anterior:
[0, 1, 1, 2, 4, 7, 13, 24, 44, 81]
Funciones misceláneas
A continuación se muestra una lista de algunas funciones de uso frecuente:
Min- Devuelve el valor mínimo de la lista. Se llama Min para evitar conflictos con la función incorporada min.
Max- Devuelve el valor máximo de la lista. Se llama Max para evitar conflictos con la función incorporada max.
root - Devuelve la raíz n-ésima de x.
sqrt - Devuelve la raíz cuadrada principal de x.
cbrt - Esta función calcula la raíz cúbica principal de x, (atajo para x ++ Rational (1,3)).
Los siguientes son ejemplos de las funciones misceláneas anteriores y sus respectivas salidas:
>>> Min(pi,E)
e
>>> Max(5, Rational(11,2))
$\frac{11}{2}$
>>> root(7,Rational(1,2))
49
>>> sqrt(2)
$\sqrt2$
>>> cbrt(1000)
10