Zing 论坛

正文

QuantumPINN:用物理信息神经网络求解薛定谔方程

本文介绍了一个基于PyTorch实现的物理信息神经网络(PINN)项目,该项目能够求解一维无限深和有限深势阱的定态薛定谔方程,自动发现基态能量和波函数。

物理信息神经网络PINN量子力学薛定谔方程深度学习PyTorch无限深势阱有限深势阱波函数能量本征值
发布时间 2026/05/31 17:14最近活动 2026/05/31 17:23预计阅读 5 分钟
QuantumPINN:用物理信息神经网络求解薛定谔方程
1

章节 01

导读 / 主楼:QuantumPINN:用物理信息神经网络求解薛定谔方程

本文介绍了一个基于PyTorch实现的物理信息神经网络(PINN)项目,该项目能够求解一维无限深和有限深势阱的定态薛定谔方程,自动发现基态能量和波函数。

2

章节 02

原作者与来源

3

章节 03

补充观点 1

原作者与来源

  • 原作者/维护者:aryanarora06
  • 来源平台:github
  • 原始标题:QuantumPINN
  • 原始链接:https://github.com/aryanarora06/QuantumPINN
  • 来源发布时间/更新时间:2026-05-31T09:14:56Z 原作者与来源\n\n- 原作者: aryanarora06\n- 来源平台: GitHub\n- 原始标题: QuantumPINN\n- 原始链接: https://github.com/aryanarora06/QuantumPINN\n- 发布时间: 2026年5月31日\n\n---\n\n项目概述\n\nQuantumPINN 是一个基于 PyTorch 实现的物理信息神经网络(Physics-Informed Neural Network, PINN),专门用于求解量子力学中的一维定态薛定谔方程。该项目展示了如何将深度学习与物理定律相结合,通过神经网络自动发现量子系统的基态能量和波函数。\n\n传统的量子力学数值求解方法通常需要复杂的离散化和迭代计算,而 PINN 方法通过在神经网络的损失函数中嵌入物理方程,使得网络在学习过程中自动满足物理约束,从而实现端到端的求解。\n\n---\n\n核心原理与技术实现\n\n物理基础:薛定谔方程\n\n该项目求解的是一维定态薛定谔方程(采用原子单位制,令 ℏ = m = 1):\n\n\n-(1/2) * d²ψ/dx² + V(x)ψ - Eψ = 0\n\n\n其中 ψ 是波函数,V(x) 是势能函数,E 是能量本征值。项目实现了两种典型的量子势阱场景:\n\n1. 无限深势阱:波函数在边界处必须严格为零(x = 0 和 x = L)\n2. 有限深势阱:波函数在无穷远处必须衰减至零\n\n网络架构设计\n\n项目采用多层感知机(MLP)作为核心网络架构:\n\n- 输入层:1个节点(接收位置坐标 x)\n- 隐藏层:两个全连接层,每层128个神经元,使用 Tanh 激活函数\n- 输出层:1个节点(输出原始波函数值 NN(x))\n\n选择 Tanh 激活函数的关键原因在于其二阶导数连续且平滑,这对于计算薛定谔方程中的二阶导数项至关重要。\n\n硬约束 Ansatz 技巧\n\n为了确保边界条件被精确满足(而非仅通过损失函数软约束),项目采用了巧妙的 ansatz 变换:\n\n无限深势阱:\n\nψ(x) = x(L - x) · NN(x)\n\n这种形式天然保证 ψ(0) = ψ(L) = 0,因为 x(L-x) 在边界处为零。\n\n有限深势阱:\n\nψ(x) = exp(-x²) · NN(x)\n\n指数衰减因子确保波函数在无穷远处平滑趋近于零。\n\n损失函数设计\n\n总损失由两个竞争项组成:\n\n1. PDE 损失(L_PDE):确保波函数满足薛定谔方程,通过计算方程残差的均方误差实现\n2. 归一化损失(L_norm):防止平凡解(ψ = 0),强制满足 ∫|ψ|²dx = 1\n\n总损失函数为:\n\nL_total = L_PDE + 100.0 × L_norm\n\n\n归一化损失的权重设为100.0,目的是在训练早期优先避免平凡解,确保网络学习到非零的物理有意义的波函数。\n\n---\n\n能量本征值的自动发现\n\n该项目的一个创新点是将基态能量 E 作为可学习的参数,与神经网络权重一起优化。这种"自监督"的能量发现机制避免了传统方法中需要扫描能量范围或求解本征值问题的繁琐过程。\n\n在训练过程中,网络同时学习:\n- 波函数的空间分布(通过 NN(x) 表示)\n- 系统的基态能量(通过可学习参数 E 表示)\n\n最终收敛时,网络输出的 E 值即为量子系统的基态能量,而 NN(x) 经过 ansatz 变换后给出归一化的波函数。\n\n---\n\n训练配置与实现细节\n\n项目采用以下超参数配置:\n\n- 优化器:Adam\n- 学习率:1e-3\n- 配点数量:无限深势阱500个,有限深势阱1000个\n- 训练轮数:8000轮\n\n配点(collocation points)是在求解域内采样的空间点,用于计算 PDE 损失。更多的配点可以提高解的精度,但会增加计算成本。\n\n项目还实现了自动环境检测功能,能够无缝适配本地运行、Google Colab 或 Kaggle 等不同环境,自动调整显示和输出后端。\n\n---\n\n物理意义与应用价值\n\nQuantumPINN 展示了物理信息神经网络在量子力学问题中的强大能力:\n\n1. 无需标注数据:与传统监督学习不同,PINN 只需要物理方程本身作为监督信号,无需预先计算的训练数据\n2. 自动满足物理约束:通过巧妙的 ansatz 设计,边界条件被硬编码进网络结构\n3. 端到端求解:同时获得波函数和能量本征值,无需分步求解\n\n这种方法可以扩展到更复杂的量子系统,如多体问题、含时演化、以及变形势阱等场景,为量子计算和量子模拟提供了新的数值工具。\n\n---\n\n技术亮点总结\n\n- 使用自动微分计算解析导数,精确满足薛定谔方程\n- 创新的能量参数化方法,将本征值问题转化为优化问题\n- 硬约束 ansatz 确保边界条件的精确满足\n- 稳定的数值积分(scipy.integrate.trapezoid)用于波函数归一化\n- 跨平台兼容性(本地/Colab/Kaggle)\n\n---\n\n使用与扩展\n\n项目依赖 PyTorch、NumPy、SciPy 和 Matplotlib。用户可以在 Kaggle、Google Colab 或本地环境直接运行。对于希望扩展项目的开发者,可以考虑:\n\n- 添加更多势阱类型(谐振子势、双势阱等)\n- 实现激发态求解(需要正交化约束)\n- 扩展到二维或三维问题\n- 结合变分量子本征求解器(VQE)进行混合经典-量子计算\n\nQuantumPINN 为物理信息机器学习在量子力学领域的应用提供了一个清晰、可复现的参考实现。