微积分 是数学的一个分支,主要关注极限、函数、导数、积分和无穷级数。我们将使用 SymPy 库来进行 Python 微积分运算。SymPy 是一个用于符号数学的 Python 库。它的目标是成为一个功能齐全的计算机代数系统 (CAS),同时尽可能保持代码简洁,以便于理解和轻松扩展。SymPy 完全用 Python 编写。
安装:
pip install sympy
如果我们想编写任何 SymPy 表达式,首先必须声明其符号变量。为此,我们可以使用以下两个函数:
- sympy.Symbol(): 用于声明单个变量,通过将变量作为字符串传递给其参数来实现。
- sympy.symbols(): 用于声明多变量,通过将变量作为字符串传递给其参数来实现。所有变量必须用空格分隔以形成一个字符串。
微分
我们可以使用 diff(func, var) 方法对任何 SymPy 表达式进行微分。参数 func 表示需要微分的 SymPy 表达式,var 表示我们对其进行微分的变量。
示例 1:
Python
CODEBLOCK_3df92fc5
输出:
derivative w.r.t x: 3*x**2*y
derivative w.r.t y: x**3 + 3*y**2
我们还可以使用 diff(func, var, n) 方法求高阶导数。这里,参数 n 表示要求解的 n 阶导数。
示例 2:
Python
CODEBLOCK_0bc059d1
输出:
second derivative w.r.t. x: 6*x*y
second derivative w.r.t. y: 6*y
我们可以通过 integrate() 函数对超越初等函数和特殊函数进行不定积分和定积分运算。
> 不定积分的语法:sympy.integrate(func, var)
>
> 定积分的语法:sympy.integrate(func, (var, lowerlimit, upperlimit))
参数 func 表示需要微分的 SymPy 表达式,var 表示我们对其进行微分的变量,lowerlimit 表示定积分的下限,upperlimit 表示定积分的上限。
注意: SymPy 中的 ∞ 表示为 oo。
示例 1:
Python
CODEBLOCK_b0cdd897
输出:
indefinite integral of cos(x): sin(x)
definite integral of cos(x) between -1 to 1: 2*sin(1)
definite integral of exp(-x) between 0 to ∞: 1
极限
我们可以使用 limit(function, variable, point) 来计算函数的极限。所以,如果你想计算当 x->0 时 f(x) 的极限,你可以调用 limit(f, x, 0)。
示例:
Python
CODEBLOCK_971b5e1a
输出:
oo
0
1
级数展开
我们还可以计算函数在某一点附近的 泰勒级数 展开。要计算 f(x) 在点 x=x0 处直到 xn 阶的展开式,请使用 sympy.series(f, x, x0, n)。x0 和 n 可以省略,在这种情况下将使用默认值 x0=0 和 n=6。
示例:
Python
CODEBLOCK_7b64675c
输出:
1 - x**2/2 + x**4/24 + O(x**6)
1 + x**2/2 + O(x**4)
其中 O(x6) 代表 x 的 6 次方及更高阶的误差项。