web-dev-qa-db-fra.com

Comment définir une fonction mathématique dans SymPy?

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.

21
Robin

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)
28
asmeurer

Voici votre solution:

>>> import sympy
>>> x = sympy.symbols('x')
>>> f = x**2 + 1
>>> sympy.diff(f, x)
2*x
9
enedil

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
3
hochl