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 fu
eran
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
Publicar un comentario