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 llamasimplify
. 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.