Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
¿La función diff en sympy no devuelve un número?

Soy un novato aprendiendo Python. Tengo una pregunta, ¿pueden ayudarme? Este es mi código:

 from sympy import * def test(f, g, a): f1 = f.subs(x, g) df1 = diff(f1, x).subs(x, a) return df1 print(test((2*(x**2) + abs(x + 1)), (x - 1), -1)) Result: -Subs(Derivative(re(x), x), x, -1) - 8

Estoy tomando la derivada de f(g(x)) con: f = 2(x^2) + abs(x + 1) , g = x - 1 y x = -1 . Cuando uso diff para calcular el resultado es -Subs(Derivative(re(x), x), x, -1) - 8 , pero cuando uso la fórmula lim x->x0 (f(x) - f(x0))/(x - x0) el resultado -9 . También intenté usar una calculadora para calcular y el resultado -9 es el resultado correcto. ¿Hay alguna manera de hacer que diff devuelva -9? ¿Alguien tiene alguna ayuda o puede dar algunos consejos?

¡Gracias!

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Cada vez que veo aparecer un re o un im cuando no los esperaba, me inclino a hacer que los símbolos sean reales:

 >>> from sympy import * >>> def test(f, g, a): ... f1 = f.subs(x, g) ... df1 = diff(f1, x).subs(x, a) ... return df1 ... >>> var('x',real=True) x >>> print(test((2*(x**2) + abs(x + 1)), (x - 1), -1)) -9
over 4 years ago · Santiago Trujillo Denunciar

0

Como todavía soy relativamente principiante en sympy , me gusta ver resultados intermedios (incluso me gusta hacerlo con numpy , que conozco mucho mejor). Corriendo en isympy :

 In [6]: diff(f1,x) Out[6]: ⎛ dd ⎞ ⎜re(x)⋅──(re(x)) + im(x)⋅──(im(x))⎟⋅sign(x) ⎝ dx dx ⎠ 4⋅x - 4 + ─────────────────────────────────────────── x

Esa expresión contiene d/dx sin evaluar y la distinción entre las partes real e imaginaria de x .

Restringir x a real como se sugiere en la otra respuesta produce:

 In [19]: diff(exp,x) Out[19]: 4⋅x + sign(x + 1)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda