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

如何用SymPy创建对数图?遇ValueError报错求助

问题解决:SymPy绘图报错 ValueError: The arguments must be Symbols.

核心原因

你没有显式将rho、Y、T_8声明为SymPy符号变量,导致后续构建的表达式不是合法的符号表达式,plot函数无法识别变量类型。init_session()仅初始化SymPy环境,不会自动创建自定义符号。

修正后的代码

from sympy import solve, symbols, exp, plot
import scipy.integrate as integrate
import scipy.special as special
from sympy import init_session

init_session()

# 关键步骤:显式定义所有用到的符号变量
rho, Y, T_8 = symbols('rho Y T_8')

q_3a = 5.09 * (10**11) * rho**2 * Y**3 * T_8**(-3) * exp(-44.027/T_8)
q_3a_wo_rho = 5.09 * (10**11) * Y**3 * T_8**(-3) * exp(-44.027/T_8)

Rho_square = (10**3) / q_3a_wo_rho

# 替换Y为1.0后,表达式仅保留T_8作为符号变量
expr = Rho_square.subs(Y, 1.0)
# 执行绘图,指定对数刻度
plot(expr, (T_8, 0.01, 0.1), xscale='log', yscale='log')

额外注意事项

  • 当T_8接近0.01时,exp(-44.027/T_8)会趋近于0,导致Rho_square数值极大,绘图时可能出现y轴范围溢出,可通过添加ylim=(下限, 上限)参数手动调整(例如ylim=(1e-5, 1e15))。
  • 替换值建议用sympy.Float(1.0)替代原生浮点数1.0,可提升符号计算的一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:35:25