es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué sympy no evalúa sin(n* pi) = 0 y cos(n * pi) = (-1)^n cuando n está definido como enteros positivos?

Cuando se intenta evaluar una función f(x) con Sympy, la salida final parece mantener sin(n * pi) y cos(n * pi) en forma simbólica pero no los evalúa como 0 y (-1)^n respectivamente cuando n está definido como enteros positivos. Sin embargo, Symbolab parece ser capaz de hacer el comportamiento anterior.

¿Existe alguna forma de hacer que Sympy evalúe la expresión de manera similar a lo que hace Symbolab?

Ejemplo mínimo para generar el comportamiento en Sympy

# Cargar librerías
import sympy as sp
from sympy import*
from IPython.display import display
init_printing()

# Para desactivar las advertencias molestas
import warnings
warnings.filterwarnings('ignore')
x, L, pi = symbols('x, L, pi', real=True, positive=True)
n = symbols('n', positive=True, integer=True)

a_n_x = 2/L
a_n_in = x * cos((n*pi*x)/L)
display(a_n_in)
a_n = a_n_x * integrate(a_n_in, (x,0,2))
display(a_n)
a_n = a_n.subs(L,2)
display(a_n)
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Una forma de hacer que Sympy evalúe expresiones similares a lo que Symbolab hace es usando la función simplify() o la función simplify_trig() después de sustituir el valor de n.

    Por ejemplo, en el ejemplo anterior, después de sustituir L=2, podemos simplificar la expresión para a_n usando la función simplify_trig() de la siguiente manera:

    a_n = a_n.subs(L,2)
    a_n = simplify_trig(a_n.subs(n,1))
    display(a_n) 
    

    Esto dará como resultado a_n = -4/pi, que es el mismo resultado obtenido por Symbolab.

    Alternativamente, también podemos usar la función trigsimp(), que también simplifica expresiones trigonométricas, de la siguiente manera:

    a_n = a_n.subs(L,2)
    a_n = a_n.subs(n,1)
    a_n = trigsimp(a_n)
    display(a_n)
    

    Esto también dará el mismo resultado a_n = -4/pi.

    Por lo tanto, usar las funciones simplify(), simplify_trig() o trigsimp() después de sustituir el valor de n puede ayudar a que Sympy evalúe expresiones similares a lo que Symbolab hace.

Comments are closed.