¿Qué es la computación simbólica en SymPy?

En este artículo, vamos a ver cómo realizar el cálculo simbólico en Sympy en Python.

La computación simbólica en Sympy se usa para resolver expresiones matemáticas al integrar las matemáticas con la informática usando símbolos matemáticos. Manipula objetos y expresiones matemáticas. Sympy evalúa expresiones algebraicas exactamente usando símbolos matemáticos tradicionales pero no aproximadamente.

Veamos un ejemplo para diferenciar la operación matemática Sympy de la operación matemática normal.

Operaciones básicas

Usando el módulo matemático, el valor de la raíz cuadrada de 5 se calcula aproximadamente. Pero al usar el módulo Sympy, la raíz cuadrada de 5 no se evalúa porque no es un cuadrado perfecto.

Python3

# import necessary packages
import math
import sympy
  
print('Using math')
print('Sqrt(25)=', math.sqrt(25))
print('Sqrt(5)=', math.sqrt(5))
  
print('\nUsing sympy')
print('Sqrt(25)=', sympy.sqrt(25))
print('Sqrt(5)=', sympy.sqrt(5))

Producción

Using math
Sqrt(25)= 5.0
Sqrt(5)= 2.23606797749979

Using sympy
Sqrt(25)= 5
Sqrt(5)= sqrt(5)

La raíz cuadrada de 24 usando el módulo matemático se calcula aproximadamente y sympy calcula la raíz cuadrada para cuadrados perfectos. 24 se puede escribir como 4×6 y 4 se puede sacar de la raíz cuadrada como 2. Entonces √(24)=2√6.

Python3

import math
import sympy
  
print('Using math')
print('Sqrt(24)=', math.sqrt(24))
  
print('\nUsing sympy')
print('Sqrt(24)=', sympy.sqrt(24))

Producción

Using math
Sqrt(24)= 4.898979485566356

Using sympy
Sqrt(24)= 2*sqrt(6)

Sympy también representa las expresiones y símbolos matemáticos en forma de látex usando diferentes métodos como racional, sqrt e integra, etc.

Número racional

Representar los números racionales usando el método Racional().

Python3

from sympy import Rational
  
r_number = Rational(2, 5)
r_number

Producción

Producción

Explicación: el método racional acepta dos números que son el numerador y el denominador de los números racionales y los representa en forma racional como a/b.

Representación de la raíz cuadrada

Aquí representaremos los símbolos de raíz cuadrada.

Python3

from sympy import sqrt
  
square_root_number = sqrt(2)
square_root_number

Producción

Producción

Ecuaciones

En esta sección, las ecuaciones se expanden y también se pueden factorizar e incluso las ecuaciones se pueden simplificar utilizando los métodos de expansión, factorización y simplificación, respectivamente. Además de las operaciones especificadas, también podemos resolver ecuaciones y realizar sustituciones en las ecuaciones. Todos estos temas se explican a continuación con ejemplos.

Ejemplo 1: Ecuación en expansión

Aquí primero se crea una expresión/ecuación, es decir, 3P+6Q-R al declarar los símbolos P, Q, R, y se usa el método expand() multiplicando P con la expresión.

Sintaxis expand(expresión)

donde expresión es una ecuación matemática

Python3

from sympy import *
  
P, Q, R = symbols("P Q R")
expression = 3*P+6*Q-R
  
expanded_exp = expand(P*expression)
expanded_exp

Producción

Producción

Ejemplo 2: factorizar la ecuación

Aquí, la expresión expandida 3P^2+6PQ-PR se factoriza en P(3P+6Q-R) utilizando el método factor().

Sintaxis: factor(expresión_expandida)

donde expresión_expandida es la expresión que necesitamos factorizar.

Python3

from sympy import *
  
P, Q, R = symbols("P Q R")
expression = 3*P+6*Q-R
# 3P+6Q-R
  
expanded_exp = expand(P*expression)
# 3P^2+6PQ-PR
  
factor(expanded_exp)

Producción

Producción

Ejemplo 3: simplificación de la ecuación

La expresión \frac{3P 2 +9}{3} se simplifica a P 2 +3 usando el método simplificar()

Sintaxis: simplificar (expresión)

donde expresión es cualquier expresión/ecuación matemática.

Python3

from sympy import *
  
P = Symbol("P")
expression = (3*P**2+9)/3
# (3P^2+9)/3
  
simplified_exp = simplify(expression)
simplified_exp

Producción

Producción

Ejemplo 4: Resolución de ecuaciones

El método solve() devuelve una lista de enteros que contienen raíces de la ecuación.

Sintaxis: solve(ecuación, símbolo)

donde ecuación representa la expresión/ecuación a resolver,

símbolo es la variable presente en la ecuación

Python3

from sympy import *
  
P = Symbol("P")
expression = (P**2+3*P-4)/3
# P^2+3P-4
  
solve(expression, P)

Producción

[-4,1]

Ejemplo 5: Sustitución

Aquí usaremos el método subs() para aplicar la sustitución dentro de la ecuación.

Sintaxis: expresión.subs(símbolo, constante)

donde expresión contiene la ecuación que estamos aplicando sustitución.

  • símbolo es la variable presente en la ecuación.
  • constante es el valor que está reemplazando el símbolo.

Python3

from sympy import *
  
P = Symbol("P")
expression = (P**2+3*P-4)
# P^2+3P-4
  
expression.subs(P, 3)

Producción

14

Trigonometría

Como todos saben, resolver expresiones que consisten en identidades trigonométricas es difícil de resolver. Se requieren muchas fórmulas para recordar para simplificar la expresión. En Sympy, existe un método llamado trigsimp() que simplifica las expresiones trigonométricas. Veamos un código de ejemplo para implementar el método trigsimp().

Python3

from sympy import *
  
x = Symbol('x')
  
print(trigsimp(cos(x)/sin(x)))
print(trigsimp(sin(x)**2+cos(x)**2))

Producción

1/tan(x)
1

Derivada, Integración y Límites

En Sympy, Derivadas, Integración y Límites se aplican a expresiones utilizando métodos simples. Cada uno de estos temas se explica a continuación con un código de ejemplo.

Ejemplo 1: Derivada

La derivada de una expresión se calcula usando el método diff() . La sintaxis del método diff se proporciona a continuación:

Sintaxis diff(expresión)

Aquí expresión contiene una ecuación/expresión que realizamos derivada sobre ella.

Python3

from sympy import *
  
x = Symbol('x')
expression = x**10
diff(expression)

Producción

10x9

Ejemplo 2: Integración

En Sympy, la integración en la expresión se puede realizar utilizando el método Integrate() . La sintaxis del método Integrar se menciona a continuación:

Python3

from sympy import *
  
x = Symbol('x')
e = Symbol('e')
  
expression = integrate(e**x, x)
expression

Producción

Producción

Explicación: el método de integración realiza la integración en la expresión e x , es decir, ∫e x dx para dar el resultado anterior. 

Ejemplo 3: Límites

El límite se puede aplicar a la expresión usando el método limit() en la expresión.

Sintaxis: límite (expresión, símbolo, valor)

Parámetros

  • expresión- Expresión/ecuación matemática
  • símbolo- Sobre qué base de símbolo necesitamos realizar derivadas y sustituciones.
  • value- Valor que sustituye al símbolo

Python3

from sympy import *
  
x = Symbol('x')
  
print(limit(x**2, x, 5))
print(limit(x**3, x, oo))

Producción

25
oo

Funciones especiales

Sympy proporciona varias funciones especiales como métodos factoriales y de reescritura. Cada uno de estos se explica a continuación con un ejemplo.

Ejemplo 1: factorial de un número

Python3

from sympy import *
  
factorial(5)
#5x4x3x2x1

Producción

120

Explicación: el método factorial acepta un número entero y devuelve el factorial de un número, es decir, para 5 devuelve 5×4×3×2×1=120

Ejemplo 2: reescribir

Usando el método rewrite(), la secante (x) se puede reescribir en términos de seno (x) como se mencionó anteriormente.

Python3

from sympy import *
  
x = Symbol('x')
sec(x).rewrite(sin(x))

Producción

Producción

Látex

El método Latex proporciona una forma de látex de una expresión matemática que se puede usar en palabras para representar expresiones de una manera agradable. Pasemos a un ejemplo del método latex(). Obtenga el código de látex para la fracción de dos números, sea a/b.

Python3

from sympy import *
  
a = Symbol('a')
b = Symbol('b')
  
latex(a/b)

Producción

'\\frac{a}{b}'

Este código de látex resultante se puede usar en Word y se puede convertir a la expresión original. Estas expresiones de látex son utilizadas principalmente por los escritores de artículos para representar las expresiones de una manera clara para evitar confusiones.

Publicación traducida automáticamente

Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *