如何在SymPy中定义数学函数?

时间:2016-05-08 12:53:58

标签: python sympy

我现在已经尝试了好几个小时。我想我不明白一个基本概念,这就是我到目前为止无法回答这个问题的原因。

我正在尝试的是实现一个简单的数学函数,如下所示:

f(x) = x**2 + 1

之后我想推导出这个功能。

我用:

定义了符号和函数
x = sympy.Symbol('x')
f = sympy.Function('f')(x)

现在我正在努力为这个函数f(x)定义等式。像f.exp("x**2 + 1")这样的东西不起作用。

我也想知道在最终定义之后我怎么能打印出这个函数的控制台。

4 个答案:

答案 0 :(得分:21)

sympy.Function用于未定义的函数。就像f = Function('f')一样,f(x)在表达式中仍未被评估。

如果你想要一个实际的函数(就像你f(1)那样评估x**2 + 1 x=1,你可以使用Python函数

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

然后f(Symbol('x'))会给出符号x**2 + 1f(1)会给2

或者您可以将表达式分配给变量

f = x**2 + 1

并使用它。如果您想用x替换值,请使用subs,例如

f.subs(x, 1)

答案 1 :(得分:7)

这是您的解决方案:

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

答案 2 :(得分:2)

另一种可能性(isympy命令提示符):

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

计算衍生物的作用如下:

>>> g = Lambda(x, diff(f(x), x))
>>> g
x ↦ 2x
>>> g(3)
6

答案 3 :(得分:-1)

看看: Sympy how to define variables for functions, integrals and polynomials

您可以根据以下方式进行定义:

  • 如上所述具有def的python函数
  • python表达式g = x ** 2 +1