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

Sympy求导问题:sin(x)**tan(x)求导结果不符合预期

解决Sympy求导sin(x)**tan(x)结果不符的问题

sin(x)**tan(x)属于幂指函数,直接调用diff得到的结果可能和预期形式不同,但数学上是等价的。可以通过以下方法将结果转化为预期形式:

方法1:先将幂指函数转为指数形式再求导

利用恒等式a^b = exp(b*ln(a)),先转换表达式再求导,结合三角函数专用化简函数trigsimp处理结果:

from sympy import symbols, sin, tan, ln, exp, diff, simplify, trigsimp

x = symbols('x')
# 转换为指数形式
expr = exp(tan(x) * ln(sin(x)))
# 求导并化简
deriv = diff(expr, x)
simplified_result = trigsimp(simplify(deriv))

方法2:用对数求导法手动推导

模仿对数求导的步骤,先对原表达式取对数求导,再还原为原函数的导数:

from sympy import symbols, sin, tan, ln, diff, simplify, trigsimp

x = symbols('x')
f = sin(x)**tan(x)
# 取对数
ln_f = ln(f)
# 对对数形式求导
d_ln_f = diff(ln_f, x)
# 还原为原函数的导数
deriv = f * d_ln_f
simplified_result = trigsimp(simplify(deriv))

关键说明

Sympy的simplify函数是通用化简工具,对三角函数的化简效果有限,搭配trigsimp可以针对性地整理三角函数项,得到更符合预期的简洁形式。两种方法最终得到的结果和直接求导的结果在数学上完全等价,只是表达式形式不同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:23:11