You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SymPy求复杂函数积分与微分时返回未计算表达式的解决办法

问题原因与解决方案

你遇到的问题是因为向diff()传入了字符串类型的表达式,SymPy无法直接解析字符串来计算导数,因此返回了未求值的Derivative对象。

解决方法1:直接使用SymPy的符号函数

不要用字符串包裹表达式,直接调用SymPy提供的arctanh()函数并传入符号变量x:

from sympy import *
x = symbols("x")
print(diff(arctanh(x), x))

运行后会直接返回代数表达式:1/(1 - x**2)

解决方法2:用sympify()解析字符串(如果必须处理字符串输入)

如果你的场景中只能拿到字符串形式的表达式,可先用sympify()将字符串转换为SymPy能识别的符号表达式,再求导:

from sympy import *
x = symbols("x")
expr = sympify("arctanh(x)")
print(diff(expr, x))

同样会得到1/(1 - x**2)的结果。

内容的提问来源于stack exchange,提问作者user21322925

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 16:42:01