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

SymPy求解准经典拉比振荡微分方程后绘图失败如何修复

报错原因

  • plot函数传入的sol[0]是SymPy的等式对象(sp.Eq),而非可计算的表达式,参数校验不通过导致plot_expr返回None,触发迭代报错
  • 求解结果中仍有未赋值的自由符号h、V12、V21,没有具体数值无法完成绘图所需的数值计算
  • 微分方程的解为复数形式,直接绘图无法处理复数输出,物理场景下我们需要观测的是能级布居数,即振幅的模平方(实数值)

修正代码

直接替换原绘图代码为以下内容即可正常出图:

# 1. 代入物理参数,此处采用自然单位制,设置耦合强度V12=V21=1,约化普朗克常数hbar=1
params = {h: 1, V12: 1, V21: 1}
# 2. 提取解的表达式部分,计算两个能级的布居数(模平方)
a1_pop = sp.Abs(sol[0].rhs.subs(params))**2
a2_pop = sp.Abs(sol[1].rhs.subs(params))**2
# 3. 绘制拉比振荡曲线
plot(
    a1_pop, a2_pop,
    (t, 0, 10),
    legend=True,
    label=['能级1布居数', '能级2布居数'],
    xlabel='时间t',
    ylabel='布居数'
)

运行后即可得到标准的拉比振荡曲线,可观测到两个能级的布居数随时间周期性反转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:18:01