He estado intentando esto ahora por horas. Creo que no entiendo un concepto básico, por eso no pude responderme esta pregunta hasta ahora.

Lo que intento es implementar una función matemática simple, como esta:

f(x) = x**2 + 1

Después de eso quiero derivar esa función.

He definido el símbolo y la función con:

x = sympy.Symbol('x')
f = sympy.Function('f')(x)

Ahora estoy luchando para definir la ecuación de esta función f(x). Algo así como f.exp("x**2 + 1") no funciona.

También me pregunto cómo podría imprimir una impresión en la consola de esta función después de que finalmente se haya definido.

28
Robin 8 may. 2016 a las 15:53

4 respuestas

La mejor respuesta

sympy.Function es para funciones indefinidas. Al igual que si f = Function('f') entonces f(x) permanece sin evaluar en las expresiones.

Si desea una función real (como si lo hace f(1) evalúa x**2 + 1 en x=1, puede usar una función Python

def f(x):
    return x**2 + 1

Entonces f(Symbol('x')) dará un x**2 + 1 simbólico y f(1) dará 2.

O puede asignar la expresión a una variable

f = x**2 + 1

Y usa eso. Si desea sustituir x por un valor, use subs, como

f.subs(x, 1)
30
asmeurer 9 may. 2016 a las 18:24

Echa un vistazo a: Sympy cómo definir variables para funciones, integrales y polinomios

Puede definirlo de acuerdo con las formas:

  • una función de python con def como se describe arriba
  • una expresión de python g = x ** 2 + 1
-1
Nadir SOUALEM 24 nov. 2019 a las 14:47

Aquí está tu solución:

>>> import sympy
>>> x = sympy.symbols('x')
>>> f = x**2 + 1
>>> sympy.diff(f, x)
2*x
9
enedil 8 may. 2016 a las 14:13

Otra posibilidad (símbolo del sistema isympy):

>>> type(x)
<class 'sympy.core.symbol.Symbol'>
>>> f = Lambda(x, x**2)
>>> f
     2
x ↦ x 
>>> f(3)
9

Calcular la derivada funciona así:

>>> g = Lambda(x, diff(f(x), x))
>>> g
x ↦ 2x
>>> g(3)
6
3
hochl 7 mar. 2017 a las 13:32