跳转至

求导(functions/derivative.py)

functions/derivative.py 提供显函数与隐函数求导。两者均返回经 radsimp 化简后的 SymPy 表达式,并非 LaTeX 字符串。输入经 core.sympify.sympify 解析;解析失败时 sympify 返回字符串 "不规范的表达式输入",本模块不捕获该异常(通常由 UI 层处理)。

derivative — 显函数求导

作用:求显函数 f 对变量 vn 阶导数;若给定 x,则把 x 代入导函数得到数值表达式。

def derivative(f, v, n, x, fs):
    ...
参数 类型 含义
f str 原函数表达式,符合 Python/SymPy 语法,如 "x**3 + sin(x)"
v str 求导变量符号,如 "x"
n str 求导阶数,整数形式的字符串,如 "1""2"
x str 自变量代入值;为空字符串 ""None 表示不代入,保留导函数
fs dict 函数字典,键为函数名,值为 [名称, 函数体, 定义域, 自变量]

返回radsimp(diff(sympify(f), sympify(v), int(sympify(n)), sympify(x))) 所得的 SymPy 表达式(代入 x 后为数值表达式)。

Example

python derivative("x**3", "x", "1", "", {}) # -> 3*x**2 derivative("x**3", "x", "1", "2", {}) # -> 12 (代入 x=2)

yinhanshu_derivative — 隐函数求导

作用:基于 sympy.idiff 求隐函数 f(x, y)=0xn 阶导数。

def yinhanshu_derivative(f, v1, v2, n, x, fs):
    ...
参数 类型 含义
f str 隐函数表达式,约定其值等于 0(形如 F(x, y) = 0),如 "x**2 + y**2 - 1"
v1 str 自变量符号,如 "x"
v2 str 因变量符号,如 "y"
n str 求导阶数,整数形式的字符串
x str 自变量代入值;""None 表示不代入
fs dict 函数字典

返回radsimp(idiff(...)) 所得的 SymPy 表达式。

Example

x**2 + y**2 - 1 = 0x 求导: ```python yinhanshu_derivative("x2+y2-1", "x", "y", "1", "", {})

-> -x/y

```

Note

x 是自变量具体取值(代入),不是第二个自变量;如需对多个变量求偏导,请多次调用或对结果再求导。