1 引 言 MATLAB是一种解释性的执行语言,是当今最优秀、最具有活力的科学计算软件.MATLAB的数学运算主要有两类,即数值运算和符号运算.在符号运算中,科学运算的对象从具体的数值抽象为一般的文字符号,用符号常数、符号变量、符号函数和符号操作等形成的符号表达式,为求一阶常微分方程的解析解提供了有效的手段[1].当然,在一阶常微分方程中很多需要借助数值的方法才能求解(如一般的黎卡提方程、非线性方程等等). paper51.com 一阶常微分方程的解法是学习微分方程中的首要内容,是微分方程的基础.常微分方程的基本解法有解析法和数值法两种.解析法也就是初等积分法,初等积分方法是用来求解常微分方程的解析解;数值法也就是数值逼近法,数值逼近法是用来求解常微分方程在一定误差范围内的近似解;到目前为止,这两种方法仍为求解一阶常微分方程最常用的方法. 内容来自论文无忧网 www.paper51.com
利用MATLAB进行一阶常微分方程求解,能同时接触这两种解法.MATLAB具有强大的计算!仿真!绘图等功能.在MATLAB环境中可以进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作, MATLAB内还提供了许多求解高等数学问题的命令和绘图命令.利用高等数学命令可以求解函数的导数、积分、微分、常微分方程(组)的解等.利用绘图命令可以绘出各式各样的二维!三维图形[2]. paper51.com 本文介绍了一阶常微分方程的解析解的MATLAB求解及一阶常微分方程的数值解的MATLAB求解;并进行精度对比.从而体现出一阶常微分方程MATLAB实现的可行性、方便性、优越性及多样性. 内容来自www.paper51.com
2 用MATLAB求一阶常微分方程的解析解 paper51.com 解析解通常用解析法也就是初等积分法进行求解,因为解析法能求出一阶常微分方程的通解,并且求出来的是精确解.所以对于一些简单的微分方程,尽可能的用初等积分法来求解.MATLAB语言的符号运算工具提供了一个系数微分方程求解的实用函数的dsolve ()命令[3],来求微分方程、微分方程组的解析解,dsolve ()命令还能求出通解和特解.对特解,可用MATLAB的ezplot绘图命令绘出积分曲线. 内容来自论文无忧网 www.paper51.com
dsolve()的命令格式: http://www.paper51.com dsolve('eq1','eq2',…, 'eqi',…, 'cond1', 'cond2',…, 'condi', 'v') http://www.paper51.com 其中eqi表示第i个微分方程;condi表示第i个初始条件,如果求通解则不填;’v’表示自变量. copyright paper51.com
ezplot()的命令格式为 内容来自www.paper51.com ezplot(f,[xmin,xmax,ymin,ymax]) paper51.com 其中f为函数名,xmin,xmax为x轴上图形显示的范围,ymin,ymax为y轴上的显示范围. paper51.com 例1 求微分方程的通解. paper51.com 解: 求解的命令格式为[x,y]=dsolve('Dx+y=0,Dy+x=sint'). copyright paper51.com 求得的结果为: x =C1*exp(-t)-C2*exp(t)+sint paper51.com
y =C1*exp(-t)+C2*exp(t) 内容来自www.paper51.com 例2 求微分方程满足初始条件的特解,并画出积分曲线图形. 内容来自www.paper51.com 解: 第一步,求特解的命令格式为 http://www.paper51.com r=dsolve('Dy=x^3-x','y(0)=0','x'). 内容来自www.paper51.com
得到的结果为: 内容来自www.paper51.com
http://www.paper51.com 第二步,画出积分曲线图,画积分曲线图用命令ezplot. 内容来自论文无忧网 www.paper51.com 命令格式如下: http://www.paper51.com
http://www.paper51.com 图1 解析法的积分曲线图 内容来自论文无忧网 www.paper51.com 从以上两例中容易看出,使用dsolve()命令求解常微分方程的通解和特解非常容易,并且还能迅速的画出积分曲线图来.体现了计算机求解的优势.但是也要注意,对于不能用初等积分法解的常微分方程,使用dsolve()命令同样不能求解这类常微分方程. 内容来自www.paper51.com |