title: "用符号计算验证物理推导:本地 Wolfram 内核工作流" date: "2026-06-04" excerpt: "手工推导耦合模本征值容易出错。我搭了一座桥,让每一步推导都交给 Mathematica 内核验证为零误差。" tags: ["量子光学", "工具", "Mathematica"]
问题:手推容易错,复核更难
量子光学课程设计需要从耦合模哈密顿量出发,推导本征频率与解析解。问题在于:这类推导步骤多、符号密,手工算一遍要半天,复核又要再半天,而且越复核越不敢确定。
我想要的是:让计算机替我验证每一步,而不是替我猜答案。
方案:本地内核,而非云端
本机装了 Mathematica 14,license 已激活。比起 Wolfram Cloud 每月 200 次的调用限制,本地内核可以离线无限次跑符号计算。于是写了个薄薄的 Python 桥接:
python wl.py "表达式" # 求值,返回 InputForm
python wl.py -t "表达式" # 返回 LaTeX,直接贴回论文
python wl.py -f 脚本.wls # 跑多行脚本
踩过的坑:编码
最大的坑是编码。wolframscript 读取 .wls 脚本时按系统 ANSI(GBK) 解码,即使源文件是标准 UTF-8,中文也会变成双重编码乱码。
解决办法很简单粗暴:Wolfram 代码全部用纯 ASCII。数学公式本来就是 ASCII,符号名用英文,中文解释留在对话层,不写进脚本。这样输出 100% 可靠。
成果
几个关键结论都通过了符号级验证:
- 对易子
[σx, σy] = 2i σz - 耦合模本征值差的平方等式化简为零
- 弱耦合极限
K→0时的渐近行为
每一条都从"我觉得对"变成了"机器确认为零误差"。这种确定性,是手工推导给不了的。
启示
物理直觉负责提出假设,符号计算负责证伪。两者配合,比任何一方单打独斗都快。这也是我做工具的一贯思路:不替人思考,而是放大人的判断。
试一试:模拟量子测量
下面这段代码就在你的浏览器里运行。改一改 shots 的值,看看测量统计如何逼近理论概率 50/50——点代码区直接编辑:
// 可运行 · 改代码点运行javascript
理论与实验的差距随测量次数增加而缩小——这正是统计学习与量子测量共享的直觉。