大学物理数值仿真与可视化教学案例库
本项目基于 Julia 语言和 Syslab 内置 TyPlot 绘图能力开发,面向高校《大学物理》《普通物理》《大学物理实验》《数值计算与可视化》《电磁学》《电磁场与电磁波》《光学》《工程光学》等课程。案例库覆盖力学、电磁学、热学与统计物理、波动与光学、近代物理五大模块,并已扩展光学、电磁学和电磁场专题案例。
每个案例均可独立运行,也可通过 main.jl 统一菜单调用。运行后图片默认保存到中文目录 仿真图像/。
目录结构
UniversityPhysics_Syslab_CaseLibrary
├─ README.md
├─ main.jl
├─ common.jl
├─ 仿真图像
├─ 01_力学基础
├─ 02_电磁学
│ ├─ 静电场与电势
│ ├─ 磁场电路与感应
│ └─ 电磁波与场专题
├─ 03_热学与统计物理
├─ 04_波动与光学
│ ├─ 基础波动与几何光学
│ ├─ 干涉衍射与傅里叶光学
│ └─ 偏振与现代光学
├─ 05_近代物理
└─ 教学App
├─ 光栅光谱分析教学App
├─ 光栅分辨本领仿真App
├─ 干涉与衍射综合教学App
├─ 圆孔衍射与分辨率教学App
└─ 牛顿环实验数据处理App
五大模块目录均已改为中文名称。案例较多的电磁学和波动与光学模块只增加一层知识点子目录,便于教学查找,同时避免目录层级过深。
模块说明
| 模块 | 内容 |
|---|---|
| 01_力学基础 | 抛体运动、空气阻力、单摆、阻尼受迫振动、行星轨道 |
| 02_电磁学 | 静电场与电势、磁场、电磁感应、电路、电磁波、电磁场专题 |
| 03_热学与统计物理 | 麦克斯韦速率分布、布朗运动、一维热传导 |
| 04_波动与光学 | 基础波动、几何光学、干涉衍射、傅里叶光学、偏振、现代光学 |
| 05_近代物理 | 黑体辐射、光电效应、氢原子能级、无限深势阱 |
教学App
项目根目录新增 教学App 一级目录,当前包含 5 个光学教学 App。各 App 均使用 Syslab TyAppDesigner 的 uifigure、面板、中文参数输入框、下拉框、复选框、按钮、结果文本框、uiaxes 和 uiimage 开发,可直接形成可操作 GUI 界面,不再是单纯脚本式绘图。
运行方式示例:
cd("教学App/光栅光谱分析教学App")
include("主程序.jl")
启动光栅光谱分析教学App()
5 个 App 分别覆盖光栅光谱分析、光栅分辨本领、干涉与衍射综合、圆孔衍射与分辨率、牛顿环实验数据处理。2026-05-28 已使用 Syslab MCP 逐个完成隐藏 GUI 实例化、参数修改、下拉框/复选框切换、按钮回调、非法参数提示和导出图像测试。
电磁学分层
02_电磁学 下新增电磁场专题案例脚本均已改为中文文件名,并按知识点放入三个子目录:
02_电磁学
├─ 静电场与电势
│ ├─ 点电荷电场分布.jl
│ ├─ 电偶极子电场.jl
│ ├─ 连续带电体电场分布.jl
│ ├─ 均匀带电圆环轴线电场.jl
│ ├─ 电势等值线与电场线.jl
│ ├─ 平行板电容器电场与电势.jl
│ ├─ 高斯定理典型电场.jl
│ ├─ 二维静电场有限差分求解.jl
│ ├─ 平行板电容器边缘场仿真.jl
│ └─ 微带线准静态电场分布.jl
├─ 磁场电路与感应
│ ├─ 长直导线磁场分布.jl
│ ├─ 圆形电流环轴线磁场.jl
│ ├─ 亥姆霍兹线圈磁场分布.jl
│ ├─ 螺线管磁场分布.jl
│ ├─ 霍尔效应仿真.jl
│ ├─ 法拉第电磁感应定律.jl
│ ├─ 导体棒切割磁感线.jl
│ ├─ 旋转线圈发电机.jl
│ ├─ RC电路充放电.jl
│ ├─ RL电路暂态响应.jl
│ ├─ RLC电路暂态与频率响应.jl
│ ├─ 交流电路功率因数.jl
│ ├─ 磁偶极子磁场分布.jl
│ └─ 非均匀磁场带电粒子磁镜效应.jl
└─ 电磁波与场专题
├─ 带电粒子在电磁场中的运动.jl
├─ 平面电磁波传播.jl
├─ 电磁波偏振.jl
├─ 坡印廷矢量可视化.jl
├─ 电偶极子天线方向图.jl
├─ 同轴电缆电磁场与坡印廷矢量.jl
├─ 电磁屏蔽与趋肤效应.jl
├─ 电磁波界面反射与透射.jl
├─ 电磁波驻波与反射系数.jl
├─ 矩形波导TE10模式场分布.jl
├─ 感应涡旋电场仿真.jl
└─ 电偶极子辐射场方向图与近远场示意.jl
波动与光学分层
04_波动与光学
├─ 基础波动与几何光学
│ ├─ 一维简谐波传播.jl
│ ├─ 驻波形成.jl
│ ├─ 薄透镜成像仿真.jl
│ ├─ 凸透镜凹透镜光路追迹.jl
│ ├─ 棱镜色散仿真.jl
│ └─ 光纤全反射仿真.jl
├─ 干涉衍射与傅里叶光学
│ ├─ 双缝干涉.jl
│ ├─ 单缝衍射.jl
│ ├─ 光栅衍射仿真.jl
│ ├─ 牛顿环仿真.jl
│ ├─ 劈尖干涉仿真.jl
│ ├─ 薄膜干涉仿真.jl
│ ├─ 迈克尔逊干涉仪仿真.jl
│ ├─ 透镜傅里叶变换仿真.jl
│ ├─ 空间滤波仿真.jl
│ ├─ 圆孔衍射与艾里斑.jl
│ └─ 瑞利判据仿真.jl
├─ 偏振与现代光学
├─ 马吕斯定律仿真.jl
├─ 布儒斯特角仿真.jl
├─ 波片与偏振态转换.jl
├─ Jones矩阵偏振仿真.jl
├─ 高斯光束传播.jl
├─ 激光谐振腔稳定性.jl
└─ 光拍频现象.jl
└─ 光学专题扩展案例
├─ 光栅光谱分析.jl
├─ 光栅分辨本领.jl
├─ 闪耀光栅仿真.jl
├─ 单缝菲涅尔衍射.jl
├─ 菲涅尔波带片.jl
├─ 圆孔衍射艾里斑.jl
├─ 矩形孔衍射.jl
├─ 二维孔径FFT衍射.jl
├─ 法布里珀罗干涉仪.jl
├─ 马赫曾德尔干涉仪.jl
├─ 牛顿环曲率测量.jl
├─ 薄膜干涉颜色.jl
├─ 偏振光干涉.jl
├─ 双折射晶体.jl
├─ 旋光效应.jl
├─ 光纤模式场分布.jl
├─ 光纤数值孔径.jl
├─ 高斯光束透镜聚焦.jl
├─ 激光纵模频率.jl
└─ 光学系统MTF.jl
新增“光学专题扩展案例”统一放在 04_波动与光学/光学专题扩展案例 中文层级下。20 个教学脚本均使用中文文件名,便于教师按课堂主题直接识别;每个脚本均展开了本案例所需的模型函数、参数设置、数值计算、可视化和关键结果输出,可独立运行和二次修改。
光学专题扩展案例
| 案例名称 | 知识点 | 脚本文件名 | 教学用途 |
|---|---|---|---|
| 光栅光谱分析 | 光栅方程、色散、级次 | 光栅光谱分析.jl | 演示白光经光栅展开及红绿蓝衍射角 |
| 光栅分辨本领 | R=mN、近邻谱线 | 光栅分辨本领.jl | 比较缝数对谱线分辨能力的影响 |
| 闪耀光栅仿真 | 闪耀角、目标级次 | 闪耀光栅仿真.jl | 说明能量向指定级次集中 |
| 单缝菲涅尔衍射 | 菲涅尔数、近远场 | 单缝菲涅尔衍射.jl | 展示传播距离改变时衍射图样演化 |
| 菲涅尔波带片 | 环带半径、衍射聚焦 | 菲涅尔波带片.jl | 说明衍射元件的聚焦作用 |
| 圆孔衍射艾里斑 | 艾里斑、第一暗环 | 圆孔衍射艾里斑.jl | 连接衍射极限与分辨率 |
| 矩形孔衍射 | sinc 衍射、主瓣宽度 | 矩形孔衍射.jl | 说明孔径越窄衍射越宽 |
| 二维孔径FFT衍射 | 孔径函数、傅里叶谱 | 二维孔径FFT衍射.jl | 建立孔径与远场衍射图样的对应 |
| 法布里珀罗干涉仪 | 多光束干涉、精细度 | 法布里珀罗干涉仪.jl | 分析反射率对透射峰的影响 |
| 马赫曾德尔干涉仪 | 双光束干涉、相位调制 | 马赫曾德尔干涉仪.jl | 展示相位变化到强度变化的转换 |
| 牛顿环曲率测量 | 等厚干涉、线性拟合 | 牛顿环曲率测量.jl | 用于大学物理实验数据处理演示 |
| 薄膜干涉颜色 | 膜厚、波长选择性 | 薄膜干涉颜色.jl | 解释肥皂膜和油膜彩色条纹 |
| 偏振光干涉 | 相位延迟、检偏器 | 偏振光干涉.jl | 区分偏振干涉与普通光强干涉 |
| 双折射晶体 | 寻常光、非常光 | 双折射晶体.jl | 展示晶体中的光线分裂 |
| 旋光效应 | 旋光率、浓度测量 | 旋光效应.jl | 说明旋光法测量浓度 |
| 光纤模式场分布 | LP01 模式、模场半径 | 光纤模式场分布.jl | 展示单模光纤横向光强分布 |
| 光纤数值孔径 | NA、接收角 | 光纤数值孔径.jl | 判断不同入射角是否可耦合 |
| 高斯光束透镜聚焦 | 束腰、瑞利长度 | 高斯光束透镜聚焦.jl | 分析透镜焦距和入射束径对聚焦的影响 |
| 激光纵模频率 | 纵模、自由光谱范围 | 激光纵模频率.jl | 说明腔长越长纵模间隔越小 |
| 光学系统MTF | MTF、截止频率 | 光学系统MTF.jl | 连接空间频率、分辨率和图像模糊 |
运行方式
在 Syslab Julia 环境中进入项目目录后运行:
include("main.jl")
run_optics_extension_cases() # 运行全部光学专题扩展案例
run_wave_and_optics_cases() # 运行全部波动与光学案例
run_all_library_cases() # 运行全部案例库案例
也可以直接运行任一中文脚本,例如:
include(joinpath("04_波动与光学", "光学专题扩展案例", "光栅光谱分析.jl"))
run_grating_spectrum_analysis()
教学App
项目根目录新增 教学App 一级目录,当前包含 5 个光学教学 App:
| App | 子目录 | 主要内容 |
|---|---|---|
| 光栅光谱分析教学 App | 教学App/光栅光谱分析教学App | 光栅方程、衍射级次、白光色散 |
| 光栅分辨本领仿真 App | 教学App/光栅分辨本领仿真App | R=mN、近邻谱线分辨、缝数对比 |
| 干涉与衍射综合教学 App | 教学App/干涉与衍射综合教学App | 单缝衍射、双缝干涉、综合条纹 |
| 圆孔衍射与分辨率教学 App | 教学App/圆孔衍射与分辨率教学App | 艾里斑、第一暗环、瑞利判据 |
| 牛顿环实验数据处理 App | 教学App/牛顿环实验数据处理App | 牛顿环半径、线性拟合、曲率半径测量 |
每个 App 子目录包含 主程序.jl、计算函数.jl、示例参数说明.md、README.md 和 测试.jl。主程序按“左侧参数区、中间图形区、右侧结果说明区、底部按钮区”的教学 App 布局组织,按钮回调包括运行仿真、重置参数、导出图像和清空结果;牛顿环 App 还包含“生成模拟实验数据”回调。
示例运行:
cd("教学App/光栅光谱分析教学App")
include("主程序.jl")
启动光栅光谱分析教学App()
测试方式:
include("测试.jl")
测试光栅光谱分析教学App()
参数修改
每个案例脚本前部均设置“参数设置区”,并带有中文参数说明、单位和教学含义。教师可直接修改电荷量、线圈半径、匝数、电流、磁场、频率、电容、电感、波长、介电常数、网格数量、迭代次数等参数。公共数值积分、图片保存和统一打印函数集中在 common.jl。
教学建议
力学部分可作为数值积分和微分方程入门;热学部分适合讲统计分布、随机过程与偏微分方程;近代物理部分适合展示量子化、能级、辐射谱和波函数概率解释。
电磁学可按“静电场与电势 -> 恒定电流与磁场 -> 电磁感应 -> 电路暂态与交流电 -> 电磁波 -> 电磁场专题”的顺序组织。新增电磁场专题尤其适合展示从解析公式到二维/三维场分布、边界条件、有限差分迭代、电磁波边界、能量传输和工程结构的过渡。
光学可按“基础波动与几何光学 -> 干涉衍射与傅里叶光学 -> 偏振与现代光学”的顺序组织。这样既保留大学物理主线,又能自然过渡到工程光学、傅里叶光学和激光基础。
光学专题扩展案例教学建议
光栅与光谱主线可从 光栅光谱分析.jl 开始,随后进入 光栅分辨本领.jl 和 闪耀光栅仿真.jl,用于讲解色散、分辨本领和光谱仪设计思想。
衍射与傅里叶光学主线可依次使用 单缝菲涅尔衍射.jl、菲涅尔波带片.jl、圆孔衍射艾里斑.jl、矩形孔衍射.jl 和 二维孔径FFT衍射.jl,从近场衍射过渡到远场频谱。
干涉仪与薄膜干涉主线可使用 法布里珀罗干涉仪.jl、马赫曾德尔干涉仪.jl、牛顿环曲率测量.jl 和 薄膜干涉颜色.jl,覆盖精密测量、实验数据处理与颜色形成机理。
偏振与晶体光学主线可使用 偏振光干涉.jl、双折射晶体.jl 和 旋光效应.jl,适合从 Jones 矢量、检偏器投影讲到晶体各向异性和浓度测量。
光纤与激光基础主线可使用 光纤模式场分布.jl、光纤数值孔径.jl、高斯光束透镜聚焦.jl、激光纵模频率.jl 和 光学系统MTF.jl,面向光电信息、通信光学和成像系统课程扩展。
云图与二维可视化说明
新增案例优先使用二维云图、强度分布图、条纹图、频谱图或光斑图。典型二维图包括:光谱强度条带、传播距离-屏幕位置衍射云图、波带片黑白图样、艾里斑光斑图、矩形孔衍射强度图、二维孔径与远场频谱图、法布里-珀罗透射云图、马赫-曾德尔相位调制云图、牛顿环条纹图、薄膜膜厚-波长反射云图、偏振相位-角度云图、双折射角差云图、旋光角云图、光纤模式场横截面图、高斯光束聚焦 x-z 光强图和 MTF 条纹图。必要的一维曲线图仍保留,用于读取峰值、暗环、模式间隔、截止频率等定量信息。
中文脚本文件名说明
main.jl 使用 joinpath 构造 04_波动与光学/光学专题扩展案例/中文脚本名.jl 路径,并通过 include(file) 调用脚本,避免手写平台相关路径分隔符。Syslab Julia 2026a / Julia 1.10 环境可正常处理 UTF-8 中文目录和中文文件名;如果个别系统终端显示乱码,优先检查终端编码或工作目录编码,但项目仍保留中文层级和中文脚本文件名。确需英文别名时,可在本地另建英文快捷脚本转调对应中文脚本,不建议替换原中文文件。
MATLAB 经典案例向 Syslab 迁移说明
本项目不调用 MATLAB,也不依赖外部商业工具箱。常见 MATLAB 教学脚本中的 plot、subplot、legend、quiver、contour、contourf、saveas 等流程,在 Syslab Julia 中由 TyPlot 和 Julia 标准数值能力完成。电场、磁场、电磁感应、电路暂态、光学干涉和数值场分布模型采用显式公式、离散叠加、有限差分或项目内自写 RK4 工具实现,便于高校教师阅读、课堂讲解和二次修改。
后续扩展方向
后续可继续加入有限元电场、传输线时域反射、涡流、互感、Fabry-Perot 干涉仪、ABCD 矩阵光学、光学传递函数、量子隧穿、波包演化等案例。也可将案例参数封装为教学 GUI,或输出实验报告模板与课堂练习题。
使用许可
本模型库版权由MoHub版权所有,未经许可,不得用于商业用途。