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

如何在SymPy中对导数dy/dx使用atan2计算曲线切线水平夹角

函数y=f(x)在点x_h处的切线斜率等于该点的导数值,本质是x方向取微小增量dx时,y方向对应增量dy = 导数值 * dx。atan2要求传入(dy, dx)两个参数来计算夹角,你可以直接取dx=1简化计算,修改逻辑如下:

修改后完整代码

from sympy import symbols, diff, exp, lambdify
from math import atan2, pi

# 请补充你的实际参数取值
K = 1.0
K_inv = 1 / K
x_h = 0.5

x = symbols('x')
y = (0.5 * K_inv * (exp(K * x) + exp(-K * x))) - K_inv
diff_y = diff(y, x)
f_diff = lambdify(x, diff_y)

# atan2计算核心逻辑
dy = f_diff(x_h)
dx = 1
theta = atan2(dy, dx)

# 若需要夹角范围落在 [0, 2π) 可打开下方注释
# theta = theta + 2 * pi if theta < 0 else theta

补充说明

  • Python 标准库math.atan2、数值库numpy.atan2的参数顺序均为atan2(dy, dx),不要颠倒两个参数的位置
  • 若你需要计算切线反方向和水平线的夹角,将dx改为-1即可
  • 相比atan返回的[-π/2, π/2]范围,atan2返回范围为[-π, π],可以正确区分第二、第三象限的夹角

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:30:05