Skip to content

讲座课小作业: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:相变发生的温度点

本作业通过神经网络学习区分这两种相态,并绘制相图。

代码功能

提供的代码实现了以下功能:

  1. 数据生成:使用 Monte Carlo 方法采样不同温度下的 Ising 模型构型
  2. 神经网络训练:构建简单的全连接神经网络,学习区分铁磁相(标签0)和顺磁相(标签1)
  3. 相图绘制:在不同温度下测试模型预测,绘制相图

📝 作业要求

运行代码

  1. 将提供的代码保存为 IsingModel.py
  2. 在终端运行:
    bash
    python IsingModel.py

提示

  • 首次运行会生成 Ising_dataset.npy 数据文件(约需十几分钟,如果你觉得太慢,可以多进程并行收集数据)
  • 如果目录下已存在该文件,程序会直接加载,大幅缩短运行时间
  • 运行结束后会生成相图 Ising.png

提交内容

~/assignments/assignment5/ 目录下提交以下文件:

  1. README.md:包含以下内容

    • 简要描述运行过程和遇到的问题(如有)
    • 展示生成的相图(可以使用 Markdown 插入图片)
    • 对结果进行简单分析,例如:
      • 相图中哪个温度区域对应铁磁相?哪个对应顺磁相?
      • 神经网络的预测是否符合物理预期?
      • 临界温度附近的行为如何?
  2. Ising.png:运行代码生成的相图

  3. IsingModel.py(可选):如果你对代码进行了修改,请一并提交

💻 参考代码

📄IsingModel.py

📚 参考资料

AI与量子多体物理-2025-张亿.pdf

📞 技术支持

如有技术问题,可以通过以下方式获得帮助:

  • 课程讨论群
  • 助教答疑时间

Released under the MIT License.