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

使用sympy.solve求解含np.deg2rad的方程遇错,求解决方案

SymPy求解含三角函数符号方程的问题解决

错误根源

  • 第一段代码错误:NumPy的np.deg2rad、np.tan是数值计算函数,只能处理数字,无法识别SymPy的Symbol类型变量b,因此触发类型错误。
  • 第二段代码错误:你把numpy_tan定义成了SymPy符号,但符号是静态变量,不能像函数那样调用(numpy_tan(...)),所以报"Symbol object is not callable"。

正确实现方式

SymPy提供了一套完整的符号化数学函数,必须用SymPy原生函数构建符号方程,不能混用NumPy函数。

完整代码

import sympy as sy

# 定义符号变量
a, b = sy.symbols('a b')

# 用SymPy原生函数构建方程:rad()实现角度转弧度,tan()是符号化正切,pi是符号圆周率
eq = a - sy.tan(sy.rad(b)) * sy.pi
# 求解变量a
result = sy.solve(eq, a)

print(result)  # 输出: [pi*tan(rad(b))]

关键替换说明

  • 用sy.rad(b)替换np.deg2rad(b):SymPy的rad()专门处理角度到弧度的符号转换
  • 用sy.tan()替换np.tan():支持符号变量的正切运算
  • 用sy.pi替换np.pi:SymPy的pi是符号化常量,适配符号计算场景

数值化计算补充

如果需要将符号解转为具体数值,可通过subs()代入变量值,再用evalf()计算:

# 代入b=45度,计算a的数值解
numeric_result = result[0].subs(b, 45).evalf()
print(numeric_result)  # 输出: 3.14159265358979

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 20:00:46