引言
科学问题和工程问题经常需要求取微分方程的解,MATLAB 的强大数值运算和符号运算能力,能够方便地进行各种解析运算,是方便实用、功能强大的数学软件之一。
1线性微分方程求解
1.1线性常微分方程求解[1]
线性常微分方程的求解函数有两种,一种是求取常微分方程的解析表达式,其函数是dsolve ;另一种是求取常微分方程的数值解,这种情况根据方程组是否刚性方程,分别选择三个解决非刚性问题的函数ode45、ode32、ode113,两个解决刚性问题的函数ode23s 、ode15s 。1.1.1常微分方程的解析解
在MATLAB 中,用大写字母D 表示导数。例如,Dy 表示y',D 2y 表示y '',Dy (0)=5表示y '(0)=5。D 3y +D 2y +Dy -x +5=0表示微分方程y'''+y''+y'-x +5=0。符号常微分方程求解可以通过函数dsolve 来实现,其调用格式为:
dsolve(f,c,v )
该函数求解常微分方程f 初值条件c 下的特解。参
数v 描述方程中的自变量,省略时按缺省原则处理,若没有给出初值条件c ,则求方程的通解。
例如:求一阶方程dy/dx =1+y 2在初值y (0)=1条件下的解析解的命令行如下:
》syms y
》dsolve('Dy=1+y^2','y(0)=1','x')
y =tan(x +1/4×pi)
这里要注意一个问题,如果要观察x,y 之间的曲线,我们在matlab 命令窗口用plot 命令绘图的时候,由于plot 命令实际使用了插值方法来绘图,为了绘制出y=∞及y=-∞这几条特殊曲线,步长的选择就很重要了,我们应该选取0.25π/T (T 为正整数)作为步长,这样,才能比
较精确的绘制出y 和x 之间的关系曲线。1.1.2常微分方程的数值解
数值解的函数调用格式为:[t,x ]=ode45(‘f_name ‘,[to,tf ],xo,tol)。
matlab 下的数值解函数只能处理一阶微分方程;因此,对于高阶微分方程,我们可用状态变量法将其降阶为一阶,然后再用函数求解。
例如求解方程y ’’-3(1-y ^2)y ’+y =0在初值y ’(0)=3,y(0)=2的解。
1)降阶:设y 1=y ,y 2=y ’,初值为:y ’(0)=3,y (0)=2,则:
y 1'=y 2
y 2'=3(1-y 1^2)y 2-y 1
!
y 1(0)=2
y 2
(0)=!3
2)编写M 文件(选取ode45来求解):function dy=ode (t,y )
dy =[y (2);3×(1-y (1)^2)×y (2)-y (1)];
将此文件存盘为matlab 默认目录下,文件名称为ode.m 文件
3)调用数值解函数
>>[t,y ]=ode45('ode',[0,30],[2;3])
1.1.3利用simulink 仿真工具箱求解常微分方程[2]
Simulink 仿真函数的调用格式为:[x,y ]=sim(′模型名称′,仿真终止时间,options)
例如:求一阶方程dy/dx =1+y 2在初值y (0)=1条件下的x,y 数值解或者关系曲线。
首先建立simulink 模型:见图1。
设置参数的时候,选择slover 的算法ode23s,选择合适的步长.设置积分器的初值为1,然后存盘为li3.mdl 文
图1方程d y/d x =1+y 2的Simulink
模型
第23卷第6期(总第105期)机械管理开发
2008年12月
Vol.23No.6(SUM No.105)MECHANICAL MANAGEMENT AND DEVELOPMENT
Dec .2008
作者简介:张江霞(1979-),女,陕西宜川人,讲师,大学本科毕业,研究方向:控制理论及其应用。
收稿日期:2008-05-28;修回日期:2008-07-26
利用MATLAB 求解微分方程的方法探索
张江霞
(陕西理工学院电气工程系,陕西
汉中
723003)
【摘
要】利用MATLAB 求解微分方程的方法有多种,针对常用的一些求取办法进行了归纳和总结,分别介绍了MATLAB 函数求解方法及SIMULINK 环境求解方法。【关键词】微分方程;MATLAB ;SIMULINK
【中图分类号】O175.4【文献标识码】A 【文章编号】1003-773X (2008)06-0048-02The Methods of Using Matlab to Solve the Differential Equations
ZHANG Jiang-xia
(Department of Electrical Engineering,Shannxi University of Technology,Hanzhong 723003,China )
〔Abstract 〕A certain methods can be used to solve the differential equations,this article summarize the popular methods that based on
Matlab,then introduce the function solving method and the simulink toolbox solving method.〔Key words 〕Differential equation ;MATLAB;Simulink
48··