Que es la computacion simbolica en python. Introduccion

 

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

La computación simbólica se ocupa del cálculo de objetos matemáticos. simbólicamente. Esto significa que los objetos matemáticos están representados. exactamente, no aproximadamente, y expresiones matemáticas con no evaluados las variables se dejan en forma simbólica.

Tomemos un ejemplo. Digamos que queremos usar las funciones integradas de Python para calcular raíces cuadradas. Podríamos hacer algo como esto:

  

math.sqrt(8)
2.82842712475

Aquí obtuvimos un resultado aproximado. 2.82842712475 no es la raíz cuadrada exacta de 8 (de hecho, la raíz cuadrada real de 8 no puede representarse mediante un número finito decimal, ya que es un número irracional). Si lo único que nos importara fuera el forma decimal de la raíz cuadrada de 8, habríamos terminado.

Pero supongamos que queremos ir más allá. Recordar que

. Nos resultaría difícil deducir esto del resultado anterior. Aquí es donde entra en juego el cálculo simbólico. Con un cálculo simbólico sistema como SymPy, las raíces cuadradas de números que no son cuadrados perfectos son dejado sin evaluar por defecto.

Raiz (8) = Raiz(2*4) = 2*Raiz(2)

 

 

más interesante

El ejemplo anterior comienza a mostrar cómo podemos manipular números irracionales. exactamente usando SymPy. Pero es mucho más poderoso que eso. Simbólico sistemas de cálculo (que, por cierto, también suelen denominarse álgebra informática) sistemas, o simplemente CAS) como SymPy son capaces de calcular simbólicos expresiones con variables.

Como veremos más adelante, en SymPy, las variables se definen usando symbols. A diferencia de muchos sistemas de manipulación simbólica, las variables en SymPy deben definirse antes de su uso (la razón de esto se discutirá en la próxima sección ).

Definamos una expresión simbólica, que represente la expresión matemática. x+2y

 

Tenga en cuenta que escribimos x + 2*y tal como lo haríamos si x y y fueran variables ordinarias de Python. Pero en este caso, en lugar de evaluar algo, la expresión permanece igual x + 2*y. Ahora juguemos con eso:

  

expr + 1
x + 2*y + 1
expr - x
2*y

Observe algo en el ejemplo anterior. cuando escribimos expr - x, no lo hicimos conseguir x + 2*y - x, sino más bien sólo 2*y. El x y el -x se cancelan automáticamente entre sí. Esto es similar a como sqrt(8) se convierte automáticamente en 2*sqrt(2)arriba. Este no es siempre el caso en SymPy, sin embargo:

x*expr
x*(x + 2*y)

Aquí podríamos haber esperado x(x+2y) transformarse en x´2 +2xy,  pero en cambio, vemos que la expresión se dejó sola. Este es un tema común en SymPy. Aparte de simplificaciones obvias como x-x=0 y raiz(8) = 2*raiz(2) , la mayoría de las simplificaciones no se realizan automáticamente. Esto es porque podríamos preferir la forma factorizada , o podríamos preferir el forma expandida . Ambas formas son útiles en diferentes circunstancias. En SymPy existen funciones para pasar de un formulario a otro.

 

El poder de la computación

El verdadero poder de un sistema de computación simbólica como SymPy es la capacidad hacer todo tipo de cálculos simbólicamente. SymPy puede simplificar expresiones, calcular derivadas, integrales y límites, resolver ecuaciones, trabajar con matrices y mucho, mucho más, y hacerlo todo simbólicamente. Incluye módulos para trazar, imprimir (como resultados impresos en 2D de matemáticas fórmulas, o ), generación de código, física, estadística, combinatoria, teoría de números, geometría, lógica y más. He aquí una pequeña muestra de este tipo. del poder simbólico del que SymPy es capaz, para abrirte el apetito. 

 

¿Por qué SymPy?

Existen muchos sistemas de álgebra informática. Esta Wikipedia El artículo enumera muchos de ellos. ¿Qué hace que SymPy sea una mejor opción que el ¿alternativas?

En primer lugar, SymPy es completamente gratuito. Es de código abierto y tiene licencia bajo la Licencia BSD liberal, por lo que puedes modificar el código fuente e incluso venderlo si lo deseas. querer. Esto contrasta con sistemas comerciales populares como Maple o Mathematica que costó cientos de dólares en licencias.

En segundo lugar, SymPy usa Python. La mayoría de los sistemas de álgebra informática inventan sus propios idioma. No SymPy. SymPy está escrito completamente en Python y se ejecuta completamente en Python. Esto significa que si ya conoces Python, es mucho Es más fácil comenzar con SymPy, porque ya conoces la sintaxis (y si no conoces Python, es muy fácil de aprender). eso ya lo sabemos Python es un lenguaje bien diseñado y probado en batalla. Los desarrolladores de SymPy son confiados en sus habilidades para escribir software matemático, pero programar El diseño del lenguaje es algo completamente diferente. Al reutilizar un existente lenguaje, podemos centrarnos en las cosas que importan: las matemáticas.

Otro sistema de álgebra informática, Sage, también utiliza Python como lenguaje. Pero Sage es grande, con una descarga de más de un gigabyte. Una ventaja de SymPy es que sea liviano. Además de ser relativamente pequeño, no tiene dependencias distintas a Python, por lo que se puede usar fácilmente en casi cualquier lugar. Además, los objetivos de Sage y los objetivos de SymPy son diferentes. Sabio pretende ser un sistema completo para matemáticas, y pretende hacerlo mediante compilar todos los principales sistemas matemáticos de código abierto en uno. Cuando llamas a alguna función en Sage, como integrate, grita a uno de los paquetes de código abierto que incluye. De hecho, SymPy es incluido en sabio. SymPy, por otro lado, pretende ser un sistema independiente, con todas las características implementadas en el propio SymPy.

Una última característica importante de SymPy es que se puede utilizar como biblioteca. Muchos Los sistemas de álgebra informática se centran en ser utilizables en entornos interactivos, pero si desea automatizarlos o ampliarlos, es difícil hacerlo. Con SymPy, puedes usarlo con la misma facilidad en un entorno interactivo de Python o importarlo en su propia aplicación Python. SymPy también proporciona API para hacerlo más fácil para ampliarlo con sus propias funciones personalizadas.

 

Comentarios

Entradas más populares de este blog

TEST DE VARIABLES EN PYTHON

PySDR: una guía para SDR y DSP usando Python by Dr. Marc Lichtman. Introducciòn.

LEER Y CONVERTIR AUDIOS CON PYTHON EN GOOGLE COLAB