大学物理是理工科专业的一门基础课程,一般设置在大一、大二年级,是一门非常重要的基础理论课程。教学内容主要包括力学、热学、电磁学和光学四个部分,力学部分主要涉及质点运动、牛顿定律、功能关系、刚体力学和振动波动等内容,热学部分主要涉及气体分子动理论、热力学定律等内容,电磁学部分主要涉及静电场、稳恒磁场、电磁感应定律等内容、光学部分主要涉及光的衍射、干涉、偏振等内容。通过本课程的学习,学生可以掌握物理学的基本理论和定律,了解物理学研究的基本方法,同时体会从发现问题、分析假设、建立模型、实验或者理论验证,最后得出问题结论的科学探究过程,提高科学素养。
2.MATLAB软件的功能特性
MATLAB是美国MathWorks公司出品的数学软件,是一个以矩阵为数据单元的高级编程语言,适用范围十分广泛,目前已广泛运用于金融、通信、数据、自动化控制等领域,受到青睐。相比于其他传统的计算机语言,MALTAB具有很多一些独特的优势。首先,作为一门交互式程序语言,其用户界面简洁易用,程序语言的设计非常接近常规的数学语言,入门难度较低,学习壁垒较低。同时MATLAB还具有多样的功能,除数值计算和符号计算功能外,还有强大的绘图功能、以及多样的功能型工具箱和领域型工具箱,可以满足不同学科的需要。
3.MATLAB程序在习题教学中的应用实例
3.1.微分(求导)问题
微分运算是数学中十分常见的一类问题,对于简单函数的求导往往有明确的公式可以代入,计算难度不高,但是对于复合函数求导以及向量函数求导的问题,学生往往存在计算上的困难,容易混淆遗漏。在大学物理的经典习题中,微分运算也非常普遍,例如力学中求解质点运动的瞬时速度和瞬时加速度、电磁学中求解感应电动势的问题等等。本例以一个经典的运动学题目,阐述如何使用MATLAB函数求解微分问题。
根据题意,写出MATLAB程序如下:
clear
symstij
x=2*t;
y=2-t^2;
vx=diff(x,t,1);
vy=diff(y,t,1);
v=subs(vx,t,2)*i+subs(vy,t,2)*j;
ax=diff(x,t,2)
ay=diff(y,t,2)
a=subs(ax,t,2)*i+subs(ay,t,2)*j;
disp(v)
disp(a)
3.2.积分问题
fun=@(t)-2*t.^4-8*t.^3-4*t+16;
W=integral(fun,2,5)
点击运行按钮即可输出题目结果。本例主要运用integral函数进行积分运算,是一种数值计算一维和多维积分的方法,类似还有quad和quadgk等函数,可以求解一维积分。同时,还可使用int和syms函数,运用符号的方法求解积分。也可使用dsolve函数直接求解微分方程并获得积分解。
3.3.求解微分方程
微分方程的定义是含有未知函数及其导数的方程,包括可分离变量的微分方程、齐次微分方程、伯努利微分方程、全微分方程等各种形式,部分特殊形式方程可借助公式求解,有些则无法直接计算。这类数学问题内容比较繁杂,求解难度相对较高,传统算法工作量较大。运用程序法求解微分方程,可以简化计算、较快求解出相应答案。以下以牛顿第二定律的问题为例,介绍MATLAB求解微分方程的一种方法。
y=dsolve('m*g-F-k*v-m*Dv=0','v(0)=0');
y=simplify(y)
点击运行按钮即可输出题目结果。本题使用dsolve函数求解微分方程,此函数功能强大,可用于求解各类常微分方程和偏微分方程的解析解,只需输入微分方程表达式、初始条件或边界条件,即可返回题目所需的特解。此外,MATLAB还提供了一系列其他函数,用于求解一些特殊类型微分方程的数值解,例如适用于求解大多数非刚性常微分方程的ode45函数、适用于求解一些较为简单问题的ode23函数等等。根据问题不同,可以灵活选择适当的方法。
3.4.矩阵法解线性方程组
求解方程组在数学和物理学中都是最基础最常见的问题,适用于求解题目中包含多个未知数的情况。常见的求解方法有代入法和加减消元法,这些方法都需要一定的运算量,对于复杂问题有时也并不能求出精确解。运用MATLAB程序可以在一定程度上解决此类问题,大大提高计算效率和结果精度。以下以刚体的定轴转动问题为例,介绍一种求解线性方程组的技巧。
例4:一半径为r,质量为m1的匀质圆盘作为定滑轮,绕有轻绳,绳上挂一质量为m2的重物。当滑轮转动时,求重物下落的加速度。
symsm1m2rg
J=1/2*m1*r^2;
G2=m2*g;
A=[1m20;r0-J;01-r];
b=[G2;0;0;];
x=A\b
点击运行按钮即可输出题目结果。此方法用于求解线性方程组十分便捷,只需表示出系数矩阵、常数矩阵和解集矩阵的数学形式,再利用矩阵乘法运算法则计算出结果即可。如方程组为非线性方程组,内部甚至包含超越方程,则需要使用其他方案去求解,例如二分法、迭代法、牛顿法、割线法、拟牛顿法、Halley法等等。牛顿法是其中比较常用的一种方法,通过输入一个猜想值,不断尝试迭代,直到获得符合题意的解,其收敛性依赖于初始值的选取。
3.5.图像绘制
图像法在数学和物理学领域中的应用范围非常广阔,其优点为直观形象、简洁明了、可以把复杂的文字和数字描述化难为易、化繁为简,将抽象的概念关系具体化,便于找寻规律,获取结论,也有助于从图像的变化趋势进行合理预测。在大学物理经典习题中,例如运动学中的x-t、v-t、a-t关系,电磁学中的E-t、B-t关系,热学中的p-V、p-T关系、光学中干涉和衍射条纹位置与光强的关系等图像,都直观展示了相应的物理关系和物理现象。以下以一个均匀带电圆盘的问题为例,展示如何运用MATLAB程序绘制二维图像。
例5:有一半径为R,面电荷密度为σ的均匀带电薄圆盘,设x为圆盘中心轴线上任意一点到圆盘圆心O的距离。求圆盘中心轴线上的场强和电势随着距离x的变化关系。
此题目可通过图像法直接观察场强和电势的变化趋势,为了方便绘图,需要先求解出E-x和U-x关系函数。根据题目中的已知条件,可分别计算出两个函数关系如下:
R=1;
x1=(-6:0.001:0)*R;
E1=-1-x1./sqrt(R^2+x1.^2);
U1=sqrt(R^2+x1.^2)+x1.^1;
x2=(0:0.001:6)*R;
E2=1-x2./sqrt(R^2+x2.^2);
U2=sqrt(R^2+x2.^2)-x2.^1;
x3=0;E3=0;
x=[x1x3x2];E=[E1E3E2];
subplot(2,1,1)
plot(x,E,'b','Linewidth',2)
gridon
ss=12;
set(gca,'Linewidth',1.0)
xticks(-6:1:6);
xlabel('x/m','Fontsize',9);ylabel('E/(V/m)','Fontsize',9);
set(gca,'FontName','TimesNewRoman','Fontsize',9)
holdon;
plot(0,1,'o','Markersize',8,'MarkerEdgeColor','k');
plot(0,-1,'o','Markersize',8,'MarkerEdgeColor','k');
plot(0,0,'.','Markersize',15,'MarkerEdgeColor','k');
xx=[x1x2];U=[U1U2];
subplot(2,1,2)
plot(xx,U,'r','Linewidth',2)
xticks(-6:1:6);yticks([00.250.50.751]);
xlabel('x/m','Fontsize',9);ylabel('U/V','Fontsize',9);
Figure1.Fieldstrengthandpotentialdistributionontheaxisofauniformlychargeddisk
图1.均匀带电圆盘轴线上的场强和电势分布图
本题使用plot函数进行图像绘制,其功能强大,包含多种可调参数,例如线条颜色、线条宽度、标题标签、图例、坐标轴范围等等,可将其运用于各类二维图像绘制。
除二维图外,有的问题用三维图表示更加直观,如运用mesh函数创建三维网格图,运用surf函数绘制各类三维曲面图,如等高线图、切片图等等,需根据问题性质灵活绘制。以下以一个带电体电势问题为例,展示MATLAB程序绘制三维图像的一种方法:
例6:已知一带电体周围空间的电势分布函数如下;
此函数是复合函数,计算比较复杂,一般方法不易直接描绘电势的变化规律,此时可使用mesh函数绘制三维网格图像,简化处理过程,MATLAB程序如下:
[x,y]=meshgrid(-8:0.5:8,-8:0.5:8);
z=1./((x-3).^2+y.^2).^0.5+1./((x+3).^2+y.^2).^0.5;
mesh(x,y,z);
xlabel('X');ylabel('Y');zlabel('U/V')
Figure2.Three-dimensionalpotentialdistribution
图2.三维电势分布图
4.教学反思
将MATLAB程序运用于大学物理课程教学,还需注意一些重要因素,避免生搬硬套、事倍功半。其一必须要注重实例积累,收集和研究经典例题的程序解法,对每种类型题目进行对比归纳,在备课时将其有机融入课程讲授;其二需要坚持因材施教,对于不同专业、不同基础水平的同学设计针对性的教学内容,基础较差的同学重在理解基本概念和基本公式,基础好的拔尖学生可以尝试探索更高难度、更高水平的问题,鼓励参与竞赛和科研活动,根据学生学习情况反馈设计难度;其三是不断改进完善教学方法,研究和开发更加前沿的程序技术,探索更先进的人才培养模式。
5.总结
本文采用MATLAB程序求解各类常见的物理习题运算,借助程序强大的科学计算能力帮助求解复杂的数学算式,同时利用图像可视化功能直观呈现抽象的物理模型和函数关系。将MATLAB程序运用于大学物理习题教学,可以帮助学生深入理解学科要点,培养和锻炼逻辑思维,提高科学建模、理论联系实际以及分析和解决问题的能力,为日后的专业学习夯实基础。