李毓刚 张龙飞
【摘 要】论文探讨软件对常微分方程进行计算机辅助分析,其工作不但可促进常微分方程的教学和研究,并为进一步进行常微分方程的课程和教学改革提供资料。
【关键词】计算机辅助分析;常微分方程;软件
1数学软件在常微分方程中的实践应用
下面结合数学软件探讨常微分方程的计算机辅助分析,并讨论两种常用的数学软件MATLAB和Maple在应用时的异同点。对常微分方程的教学和研究的内容而言,有如下四个方面可应用计算机软件进行辅助分析计算:
求解线性微分方程要用到的矩阵特征值、特征向量、行列式和指数函数的计算和计算、检验微分方程组的平衡点需要用到的代数方程组的(符号)求解。
3种数学软件都有各种函数可供使用:Mathematica中相应的函数为:Exp[A] (指数函数)、Eigenvalues[A] (特征值)、Eigenvectors[A](特征向量)、Eigensystem[A] (特征值和特征向量)、Det[A] (行列式值)、Solve[{eqns},{vars}] (解代数方程或方程组);MATLAB中为Expm(A)(指数函数)、[V,D]=eig(A)(特征值和特征向量)、det(A)(行列式)、x=A\b(解矩阵方程Ax=b)、[x,y]=solve(‘eqnl,eqn2)(解方程组eqnl,eqn2,变量为x,y);Malpe中为exp(A)(指数函数)、eigenvals(A)(特征值)、eigenvectors(A)(特征向量)、det(A)(行列式)、solve({eqns},{vars})(解方程组{eqns},变量为{vars})。
常微分方程(组)的解(积分曲线或轨线)或辅助曲线的图形显示。
一方面是空间或平面中常微分方程所定义的向量场和其辅助分析曲线函数如等倾斜线、V函数曲线及积分曲线或轨线图的绘制:Mathematica中基本的绘图函数有Plot[f,{x,xmin,xmax}] (平面曲线图)、Plot3D[f,{x,xmin,xmax},{y,ymin,ymax}] (空间曲线图)、ContourPlit[f,{x,xmin,xmax},{y,ymin,ymax}](等高线图)、ListPlot[{xl,y1},…] (平面点列图)、ParametricPlot[{x(t),y(t) },{t,tmin,tmax}] (平面参数图)、PammetricPlot[{x(t),y(t),z(t)),{t,tmin,tmax}] (空间参数图)、PlotVectorField[{funs},{vars}](平面向量场)、PlotVectorField3D[{funs),{vars}](空间向量场);MATLAB中为quiver(x,y,u,v)(向量场)、contour(X,Y,z,m)(等高线图)、contour3(X,Y,Z,[a,b])(等高线立体图);Maple中为dfieldplot(向量场)、contourplot(等高线图)、contour3d(等高线立体图)。
另一方面是绘制曲线或轨线图所需要的数学函数、代数方程(组)及常微分方程(组)的数值求解。因只有少数特殊方程才能求得准确解,所以,特别是常微分方程或方程组要绘制积分曲线或轨线图要先求其数值解,用足够精度的近似数值解进行图形绘制。Mathematica中其常微分方程(组)的数值解函数为不含初始条件sol=NDSolve[{eqnl,eqn2,…},{yl[x],y2[x],…,},{x,xmin,xmax}]与含初始条件sol=NDSolve[{eqnl,eqn2,…,ini_conds},{y1[x],y2[x],…,),{x,xmin,xmax}],其积分曲线图用Plot[Evaluate[y[x]/.sol],{x,xmin,xmax},PlotRange->A11]、轨线图用ParametricPlot[Evaluate[{y1[x],y2[x]}/.sol,{x,xmin,xmax},PlotRange->All,AspetRatio->Automatic]。MATLAB中要先将高阶微分方程化为一阶微分方程组形式,再编写微分方程组的M文件F.m,然后才调用微分方程数值解函数[T,Y]=ode45(‘F, [a,b],y0),再将结果转化为积分曲线图plot(T,Y(:,1),-r,T,Y(:,2),.g)或轨线图plot(Y(:,1),Y(:,2),-r)。Maple较为特殊,可不必先求其数值解,直接调用常微分方程积分曲线图及轨线图函数Deplot(平面)、Deplot3d(空间),而且可以同时画出不同初始条件的多条轨线,非常方便。
一阶特殊微分方程的辅助求解、微分方程的辅助判断和常微分方程(组)的特殊求解,包括拉普拉斯变换方法及幂级数解方法以及特殊函数的求解。
在Mathematica中拉普拉斯变换方法用拉普拉斯变换函数Laplace Transform[f(t),t,s]化为代数方程(组),再通过符号求解代数方程(组)函数Solve[{eqns},{vars}]解出解后再应用反拉普拉斯变换函数Inverse Laplace Transform[F(s),s,t]得到结果。幂级数解方法必须调用有限项级数代入一项一项对比求解,不能一步到位。MATLAB中不能直接应用拉普拉斯变换和反变换函数解方程,另有信息处理程序包供使用,亦可转为Maple符号处理环境下应用。Maple中的拉普拉斯变换和反变换函数为laplace(F,t,z)和invlaplace(L,z,t)。3种数学软件均有众多的特殊函数供使用。
常微分方程(组)的直接积分。Mathematica和Maple是符号计算软件,可以应用其符号计算求解常微分方程或方程组的函数DSolve[]和dsolve(),根据参数形式的不同可解不带初始条件的常微分方程(组),如含初始条件则在方程或方程组后附上初始条件。MATLAB的符号计算核是借助Maple语言,要先作变量说明才能使用。
必须指出的是,正如常微分方程(组)不一定有初等解即能用初等函数或超越函数积出一样,使用数学软件不一定保证能解出给定的常微分方程(组)。甚至能积出的常微分方程(组)也不一定能用数学软件解出,因常微分方程(组)的求解没有统一方法,要用人工智能处理计算机的求解过程。
2常微分方程计算机辅助分析的具体处理
常微分方程用数学软件进行辅助分析时往往需要经过几个步骤调用不同函数才能得到最后结果。下面以常微分方程教材中的常用方法进行讨论。
2.1一阶微分方程直接求解
2.1.1齐次方程
2.3常微分方程(组)的向量场和积分曲线(轨线)图
向量场图必须确定其范围及向量的大小密度,积分曲线(轨线)图要先求给定初值和时间区间的方程的数值解(一般选自动定步长),再转换成图形。可将同范围的向量场和多条积分曲线(轨线)合并成一个图形,以方便分析处理。
2.4拉普拉斯变换方法
对非齐次常系数线性微分方程(组),可用拉普拉斯变换化为代数方程(组),求解代数方程(组)后再通过反拉普拉斯变换得到微分方程(组)的解。在Mathematic和Maple中,由于拉普拉斯变换得到的变量符号较长,需重定变量名较为方便。MATLAB则要另调用动态系统建模仿真软件包Simulink或优化工具箱使用专用模块进行处理。
3 3种数学软件的常微分方程程序选
下面给出3种数学软件的常微分方程习题中的部分程序。仅列出纲目,具体程序及结果见书《常微分方程学习辅导与习题解答》第十章。Ex5.3-3(2)表《常微分方程(第3版)》[5]中§5.3习题3-(2),余类推。
3.1Mathematica程序
3 .1 .1 辅助计算
3.1.1.1微分、积分D[f.x],D[f,{x,n}],Dt[f,x],ND[f,x,x0],
Integrate[f,x],Integrate[f,{x,a,b}],NIntegrate[f,{x,a,b}];
3.1.1.2求行列式、逆矩阵和转置矩阵Det[A],Inverse[A],Transpose[A];
3.1.1.3求矩阵特征方程、特征值和特征向量 Ex5.3-3(2);
3.1.1.4求奇点(解方程组)Ex6.1-3(2);
3.1.1.5微分方程数值解Ex3.5-1(计算结果见《常微分方程学习辅导与习题解答》§3.4.6-1)。
3.1 .2辅助判断
3.1.2.1恰当方程Ex2.3-1(1);
3.1.2.2积分因子Ex2.3-2(5);
3.1.2.3里卡蒂方程Ex2.5-5(3),(b)Ex2.5-5(6);
3.1.2.4验证方程组解Ex5.2-8(1);
3.1.2.5判断奇点类型Ex6.3-1(2)。
3.1.3绘图
3.1.3.1平面向量场及轨线图貌 (a)Ex6.1-1,(b)Ex6.4-6(1);
3.1.3.2等高线图Ex6.6-2(2);
3.1.3.3空间曲线、曲面(a)Ex6.5-4,(b)Ex6.6-6。
3.1.4解二阶及高阶微分方程直接求解
3.1.4.1一阶微分方程 Ex2.1-1(1);
3.1.4.2二阶及高阶微分方程 (a)Ex4.1-3(3);(b)Ex4.2-2(7);
3.1.4.3微分方程组 (a)Ex5.2-8(2);(b)Ex7-l(2);
3.1.4.4微分方程近似解和幂级数解 (a)Ex3.1-1;(b)Ex4.3-2(2);
3.1.4.5矩阵指数、基解矩阵及微分方程组解
(a)§5.4.1-6(3);(b)Ex5.3-4(4);(c)Ex5.3-5(3);
3.1.4.6用拉普拉斯变换求微分方程组解Ex5.3-9[5(1) ]。
参考文献:
[1]秦大康,张宝善.Mathematica软件在微分方程中的应用研究.徐州师范大学学报(自然科学版).2001,3
[2]桂占吉,宋作忠.一阶常微分方程的计算机辅助教学.数学的实践与认识.2004,5
[3]何延生.常微分方程的CAI教学.延边大学学报(自然科学版).2007,2
作者简介:
李毓刚(1980.4~),男,汉,南海,副高(国家网络规划师),软件工程。