miércoles, 11 de junio de 2025

Introduccion al calculo simbolico de Sympy

 

Introducción

¿Qué es el cálculo simbólico?

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 como 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:

>>import math
>>math.sqrt(9)
>>>3.0

9 es un cuadrado perfecto, por lo que obtuvimos la respuesta exacta, 3. Pero supongamos que calculamos la raíz cuadrada de un número que no es un cuadrado perfecto.

>>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 la forma decimal de la raíz cuadrada de 8, habríamos terminado.

Pero supongamos que queremos ir más allá. Recordar que √8 = √(4)*(2) = 2√2

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 en un sistema como SymPy, las raíces cuadradas de números que no son cuadrados perfectos son dejados sin evaluar por defecto.
 
>>import sympy
>>sympy.sqrt(3)
>>>sqrt(3)
 
Además, y aquí es donde empezamos a ver el poder real de la cálculo: los resultados simbólicos se pueden simplificar simbólicamente.
>>sympy.sqrt(8)
>>2*sqrt(2)

Un ejemplo 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ólicos 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

Definamos una expresión simbólica, que represente la expresión matemática.


>>from sympy import symbols
>>x, y = symbols('x y')
>>expr = x + 2*y
>>expr
>>>x + 2*y

Tenga en cuenta que escribimos x + 2*y tal como lo haríamos si x y 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 xy el -xse 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 x2 + 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 √8 = 2√2 , la mayoría de las simplificaciones no se realizan automáticamente. Esto es porque podríamos preferir la forma factorizada , x (x+2y) o podríamos preferir el forma expandida x2 + 2xy  . Ambas formas son útiles en diferentes circunstancias. En SymPy existen funciones para pasar de un formulario a otro 

>>from sympy import expand, factor
>>expanded_expr = expand(x*expr)
>>expanded_expr
>>x**2 + 2*x*y
>>factor(expanded_expr)
>>>x*(x + 2*y)

 

No hay comentarios.:

Publicar un comentario

Entradas recientes

Thinkcspy 7.7 Condicionales encadenados

  7.7. Condicionales encadenados Python proporciona una forma alternativa de escribir una selección anidada, como la que se muestra en la s...

Entradas Populares