J'essaye ça depuis des heures. Je pense que je ne comprends pas un concept de base, c'est pourquoi je n'ai pas pu me répondre à cette question jusqu'à présent.
Ce que j'essaie, c'est d'implémenter une fonction mathématique simple, comme ceci:
f(x) = x**2 + 1
Après cela, je veux dériver cette fonction.
J'ai défini le symbole et la fonction avec:
x = sympy.Symbol('x')
f = sympy.Function('f')(x)
Maintenant, j'ai du mal à définir l'équation de cette fonction f(x)
. Quelque chose comme f.exp("x**2 + 1")
ne fonctionne pas.
Je me demande également comment obtenir une impression sur la console de cette fonction une fois qu'elle est finalement définie.
sympy.Function
Est pour les fonctions non définies. Comme si f = Function('f')
alors f(x)
reste non évalué dans les expressions.
Si vous voulez une fonction réelle (comme si vous faites f(1)
elle évalue x**2 + 1
À x=1
, Vous pouvez utiliser une fonction Python
def f(x):
return x**2 + 1
Ensuite, f(Symbol('x'))
donnera un symbole symbolique x**2 + 1
Et f(1)
donnera 2
.
Ou vous pouvez affecter l'expression à une variable
f = x**2 + 1
et l'utiliser. Si vous souhaitez remplacer x
par une valeur, utilisez subs
, comme
f.subs(x, 1)
Voici votre solution:
>>> import sympy
>>> x = sympy.symbols('x')
>>> f = x**2 + 1
>>> sympy.diff(f, x)
2*x
Une autre possibilité (isympy
invite de commande):
>>> type(x)
<class 'sympy.core.symbol.Symbol'>
>>> f = Lambda(x, x**2)
>>> f
2
x ↦ x
>>> f(3)
9
Le calcul de la dérivée fonctionne comme ça:
>>> g = Lambda(x, diff(f(x), x))
>>> g
x ↦ 2x
>>> g(3)
6