讲座课小作业:Monte Carlo 方法采样 Ising 模型
发布时间: 11月25日
截止时间: 11月30日(周日)23:59
权重: 5%
参考课件: AI与量子多体物理-2025-张亿.pdf
📋 作业概述
本次作业旨在通过实践加深对 AI 在凝聚态物理中应用的理解。你将运行一段 Python 代码,该代码使用 Monte Carlo 方法采样二维 Ising 模型的样本数据,并通过监督式机器学习来识别铁磁相和顺磁相,最终绘制相图。
特点:
- 代码仅依赖
numpy,无需预装复杂的深度学习框架 - 数据生成需要一定时间,但如果已有
Ising_dataset.npy文件,可直接加载,很快就能完成训练
🎯 任务目标
物理背景
二维 Ising 模型是统计物理中的经典模型,用于描述铁磁材料的相变行为:
- 低温(T < Tc):系统处于铁磁相(有序态),自旋倾向于同向排列
- 高温(T > Tc):系统处于顺磁相(无序态),自旋随机分布
- 临界温度 Tc:相变发生的温度点
本作业通过神经网络学习区分这两种相态,并绘制相图。
代码功能
提供的代码实现了以下功能:
- 数据生成:使用 Monte Carlo 方法采样不同温度下的 Ising 模型构型
- 神经网络训练:构建简单的全连接神经网络,学习区分铁磁相(标签0)和顺磁相(标签1)
- 相图绘制:在不同温度下测试模型预测,绘制相图
📝 作业要求
运行代码
- 将提供的代码保存为
IsingModel.py - 在终端运行:bash
python IsingModel.py
提示
- 首次运行会生成
Ising_dataset.npy数据文件(约需十几分钟,如果你觉得太慢,可以多进程并行收集数据) - 如果目录下已存在该文件,程序会直接加载,大幅缩短运行时间
- 运行结束后会生成相图
Ising.png
提交内容
在 ~/assignments/assignment5/ 目录下提交以下文件:
README.md:包含以下内容
- 简要描述运行过程和遇到的问题(如有)
- 展示生成的相图(可以使用 Markdown 插入图片)
- 对结果进行简单分析,例如:
- 相图中哪个温度区域对应铁磁相?哪个对应顺磁相?
- 神经网络的预测是否符合物理预期?
- 临界温度附近的行为如何?
Ising.png:运行代码生成的相图
IsingModel.py(可选):如果你对代码进行了修改,请一并提交
💻 参考代码
IsingModel.py
📚 参考资料
📞 技术支持
如有技术问题,可以通过以下方式获得帮助:
- 课程讨论群
- 助教答疑时间