📜  如何使用 sympy 进行派生 (1)

📅  最后修改于: 2023-12-03 15:38:06.265000             🧑  作者: Mango

如何使用 Sympy 进行派生

Sympy 是 Python 中用于数学符号计算的库,其中包含了许多用于求函数导数的函数。使用 Sympy 求导可以避免手动计算导数时产生的繁琐和容易出错。下面我们来介绍如何使用 Sympy 进行派生。

安装 Sympy

首先,我们需要安装 Sympy 库。可以直接使用 pip 进行安装:

!pip install sympy
求一元函数的导数
  1. 定义符号变量

我们可以通过 sympy.symbols() 函数来定义符号变量。例如,定义变量 x 和 y:

import sympy

x, y = sympy.symbols('x y')
  1. 求导

使用 sympy.diff() 函数可以对函数进行求导。例如,求函数 f(x) = x^2 的导数:

f = x**2
sympy.diff(f)

输出:

2*x

也可以指定求导的阶数:

f = x**3 + 2*x**2 + 3*x + 4
sympy.diff(f, x, 2)  # 求二阶导数

输出:

6*x + 4
求多元函数的偏导数

与一元函数类似,对于多元函数,我们也可以使用 Sympy 求偏导数。例如,对于函数 f(x, y) = x^2 + y^2,我们可以求出其相对于 x 和 y 的偏导数:

f = x**2 + y**2
sympy.diff(f, x)  # 对 x 求偏导数
sympy.diff(f, y)  # 对 y 求偏导数

输出:

2*x
2*y

还可以求出交叉偏导数:

f = x**2 + y**2
sympy.diff(f, x, y)  # 对 x 求偏 y 的偏导数
sympy.diff(f, y, x)  # 对 y 求偏 x 的偏导数

输出:

0
0
求表达式的导数

有时候我们需要求解不是一个具体函数,而是一个表达式的导数。此时,我们可以将表达式转换为符号变量,再使用 sympy.diff() 函数进行求导。例如,对于表达式 f = 'x**2 + 2*x + 1':

f_ = eval(f)  # 将字符串转换为可执行的表达式
f_sym = sympy.sympify(f)  # 将表达式转换为符号变量
sympy.diff(f_sym, x)  # 对 x 求导

输出:

2*x + 2
总结

使用 Sympy 求导可以极大地减轻手动计算导数所带来的繁琐和容易出错,因此在数学计算和科学计算中使用 Sympy 是非常方便和实用的。