Saltar al contenido

Sympy – Comparando expresiones

Esta inquietud se puede abordar de diversas formas, pero te dejamos la respuesta más completa para nosotros.

Solución:

De la documentación de SymPy

== representa la prueba de igualdad estructural exacta. “Exacto” aquí significa que dos expresiones se compararán igual con == solo si son exactamente iguales estructuralmente. Aquí, (x+1)^2 y x^2+2x+1 no son lo mismo simbólicamente. Uno es el poder de una suma de dos términos, y el otro es la suma de tres términos.

Resulta que al usar SymPy como biblioteca, tener == La prueba de igualdad simbólica exacta es mucho más útil que hacer que represente la igualdad simbólica o que pruebe la igualdad matemática. Sin embargo, como nuevo usuario, probablemente le importen más los dos últimos. Ya hemos visto una alternativa a la representación simbólica de igualdades, Eq. Para probar si dos cosas son iguales, es mejor recordar el hecho básico de que si a=b, entonces a−b=0. Por lo tanto, la mejor manera de verificar si a=b es tomar a−b y simplificarlo, y ver si llega a 0. Más adelante aprenderemos que la función para hacer esto se llama simplify. Este método no es infalible; de ​​hecho, se puede demostrar teóricamente que es imposible determinar si dos expresiones simbólicas son idénticamente iguales en general, pero para la mayoría de las expresiones comunes, funciona bastante bien.

Como demostración para su pregunta en particular, podemos usar la resta de expresiones equivalentes y comparar con 0 así

>>> from sympy import simplify
>>> from sympy.abc import x,y
>>> vers1 = (x+y)**2
>>> vers2 = x**2 + 2*x*y + y**2
>>> simplify(vers1-vers2) == 0
True
>>> simplify(vers1+vers2) == 0
False

Como alternativa, puede utilizar el .equals método para comparar expresiones:

from sympy import *
x = symbols('x')

expr1 = tan(x) * cos(x)
expr2 = sin(x)

expr1.equals(expr2)

True

Sección de Reseñas y Valoraciones

Si te apasiona la informática, tienes la opción de dejar un artículo acerca de qué te ha impresionado de esta división.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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