基于Matlab的多功能物理计算仿真系统的设计及实现

2015-08-05 22:13:10杨自欣
科教导刊 2015年19期
关键词:计算可视化物理

杨自欣

摘 要 为了方便本科物理的教学,通过Matlab编程及可视化等方法,设计出基于Matlab的多功能物理计算仿真系统。功能包括电磁场仿真、科学计算、函数绘图。最终将系统生成为可执行文件。

关键词 物理 Matlab 可视化 系统 计算

中图分类号:TN929.5文献标识码:ADOI:10.16400/j.cnki.kjdks.2015.07.070

Computing Design and Implementation of Multi-purpose Physical

Computing Simulation System Based on Matlab

YANG Zixin

(College of Physical Science and Technology, Yunnan University, Kunming, Yunnan 650504)

Abstract In order to facilitate the undergraduate physics teaching and studying, through the MATLAB programming and visualization method, design a system based on MATLAB. Features include electromagnetic simulation, scientific computing, graphics. And transform it to the executable file.

Key words physics; matlab; visualization; system; computing

Matlab是一种用于数值计算、可视化及编程的高级语言和交互式环境。使用 Matlab,可以分析数据,开发算法,创建模型和应用程序。其应用广泛,其中包括信号处理和通信、图像和视频处理、控制系统、测试和测量、计算金融学及计算生物学等众多应用领域(1)。Matlab的GUI功能可以帮助用户实现数据可视化。本系统围绕大学物理的课程需要,利用Matlab的绘图功能,让物理本科学生在学习的同时,生动的对学习内容进行理解,把抽象的“场”等概念用图像、曲线、二维图形、三维图形来显示,并可对其模式和相互关系进行可视化分析,增强学生对物理的直观印象和兴趣。同时利用matlab强大的计算功能和来快速方便的解决在物理学习中遇到的数学障碍。可视化系统的设计让学生在系统得学习matlab之前,即可享受它带来的计算便利,增强学习信心和兴趣。

1 可视化系统的制作方法

可视化系统即matlab GUI。在制作matlab GUI时,使用GUIDE开发环境将带来很大便利。在命令行输入GUIDE,弹出GUIDE界面,可以选择4种GUIDE模板。有时可以直接使用模板从而减少工作量,但是大多数情况下选择空白GUIDE即可。单击确定新建空白GUIDE将会打开如图空白GUIDE界面同时生成相应的m文件。

左侧为各种组件,通过单击和拖拽的方法安排GUIDE界面的布局,双击控件可编辑选中控件的属性。通过在相应m文件中编写callback,可以实现不同组件之间的相互调用,进行输入输出的控制和运算。

完成m文件的编辑后,使用Matlab compiler,将其转化为可执行可执行文件(即exe文件),以便能在没有Matlab的电脑上运行。

2 可视化系统的内容

主程序分为三个部分:电磁场仿真、科学计算、函数绘图。

图1

打开welcome进入此程序。单击“yes”弹出相关版权信息,之后进入主界面,由主界面可进入三个主模块,然后打开各项子程序。进行各种相应操作。使用Modal Question Dialog模板配合“run”、“open”指令,修改“string”属性即可完成。

2.1.1 点电荷激发电场仿真

在输入框中输入电荷数目比如3,点击计算按钮则弹出3个对话框,在对话框中分别输入每个电荷的位置、带电量。用两个FOR语句接收点电荷信息,并用公式得到相互作用力的大小,使用函数“atan”得到力作用于电荷的角度,将结果用“msgbox”函数输出为一组对话框。

2.1.2 带电圆环激发磁场仿真

单击“绘制电流环产生的磁场”在弹出的输入框中填入相应参数点击即可确定得到结果。该程序较为复杂其中使用了“linspace”“subplot”“quiver”“axis”等函数。但操作过程简单,结果非常直观如图所示:

图2

2.1.3 电位线绘制

单击“绘制等电位线按钮”在弹出的输入框中输入电位方程得到三维等电位线使用的主要matlab函数为“inputdlg”“linspace”“meshgrid”“cell2mat(v)”“Eval”“gradient”“meshc”“subplot”“quiver”

图3

图4

2.2.1 解方程

在此子程序中提供了两种解方程的方法:(1)通过线性代数方法来解线性方程组在两输入框中分别输入线性方程组的系数矩阵,点击解线性方程组即可生成解。(2)通过matlab内置函数solve求一般方程组的解析解点击解方程组,输入方程个数,如输入2,再依次输入方程即可得到方程解。两个变量默认为x1和x2,不同的取值用矩阵来输出。

2.2.2 多项式拟合

将要被拟合的点的x、y坐标分别输入两文本框,输入拟合多项式的系数N,点击拟合,多项式的系数在右边给出,可更换N的值比较不同系数多项式的拟合效果。核心函数为“polyfit”“polyval”。

2.2.3 积分

本子程序提供了两种积分方式。

(1)符号积分。可使用符号变量x a v b y i z t。

正无穷用inf表示,负无穷用-inf表示已在其中标出,输入完毕点击“符号积分”按钮即可。

(2)数值积分。需要在输入被积函数之后输入积分上下限,乘法符号“.*”,开方“.^”,除法“./”输入完毕点击“数值积分”按钮即可。

图5

图6

2.2.4

在输入框中输入被微分函数,可使用符号变量有x a v y t,默认微分对象x,已提示,输入完毕点击“微分”按钮即可。

2.3.1、2.3.2二维绘图、三维绘图

线条颜色默认为红色,用“r”表示,粗细默认为“1”,如需要可自行更改,分别输入二维、三维函数公式,点击相应按钮即可生成相应图形。这部分应用的核心函数为“ezplot”“meshgrid”。

3 结论

本文设计并实现了基于matlab的多功能物理计算仿真系统。系统层次化、人性化操作简单易上手。功能多且切合本科物理学生的迫切需要。维护、更新功能扩充简单。加以推广将方便本科物理的教学。

参考文献

[1] mathworks 中国 产品服务 http://cn.mathworks.com/products/matlab/ 2014.12.12.

[2] 黄小洁.基于matlab的数学实验系统的实现及应用[D].南昌大学信息工程学院,2012.

猜你喜欢
计算可视化物理
只因是物理
井冈教育(2022年2期)2022-10-14 03:11:44
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三维可视化
处处留心皆物理
“融评”:党媒评论的可视化创新
传媒评论(2019年4期)2019-07-13 05:49:14
三脚插头上的物理知识
在Android中设计和实现简单的计算能力测试系统
项目成本计算方法的改进研究
企业导报(2016年17期)2016-11-07 20:47:13
经济增加值EVA——企业业绩评价新指标
时代金融(2016年23期)2016-10-31 11:54:02