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

如何在Sympy中将tan(x)求导结果转换为sec^2(x)形式

SymPy中将tan(x)求导结果转换为sec²(x)形式的方法

对tan(x)求导时,SymPy默认返回tan(x)**2 + 1,直接调用trigsimp()方法会得到1/cos(x)**2,无法直接输出sec(x)**2。这是因为SymPy的三角化简逻辑默认优先将所有三角函数规约为sin、cos的基础组合形式,不会主动保留sec、csc这类衍生三角函数,要得到目标形式可通过以下两种方式实现:

  • 方法1:化简后调用rewrite()做函数重写
    先通过trigsimp()把求导结果化简为余弦倒数形式,再调用rewrite(sec)将所有余弦倒数项重写为正割函数即可,代码示例:
    from sympy import symbols, diff, tan, trigsimp, sec
    x = symbols('x')
    deriv_res = diff(tan(x), x)
    final_res = trigsimp(deriv_res).rewrite(sec)
    print(final_res)  # 运行输出:sec(x)**2
    
  • 方法2:调用FU三角规则定向转换
    SymPy的fu模块内置了标准化三角恒等转换规则集,其中TR8规则专门负责将1/cos(x)类项转换为sec、1/sin(x)类项转换为csc,定向转换不会引入额外化简变动,代码示例:
    from sympy import symbols, diff, tan, trigsimp
    from sympy.simplify.fu import TR8
    x = symbols('x')
    deriv_res = diff(tan(x), x)
    final_res = TR8(trigsimp(deriv_res))
    print(final_res)  # 运行输出:sec(x)**2
    

如果需要全局默认将这类余弦倒数形式统一转换为sec形式,可以在自定义化简配置中加入上述对应转换规则,无需每次单独做重写处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.12 16:15:51