文档详情

matlab求解常微分方程-新.pdf

发布:2018-12-06约1.02万字共15页下载文档
文本预览下载声明
用 matlab 求解常微分方程 在 MATLAB 中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如 下: r = dsolve(eq1,eq2,..., cond1,cond2,..., v) eq1,eq2,...为微分方程或微分方程组,cond1,cond2,...,是初始条件或边界条件,v是 独立变量,默认的独立变量是t 。 函数 dsolve 用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如 果有初始条件,则求出特解。 dy 1 例 1:求解常微分方程dx x +y 的MATLAB程序为:dsolve(Dy=1/(x+y),x) , 注意,系统缺省的自变量为 t ,因此这里要把自变量写明。 其中:Y=lambertw(X)表示函数关系 Y*exp(Y)=X 。 例 2 :求解常微分方程yy −y 2 0 的MATLAB程序为: Y2=dsolve(y*D2y-Dy^2=0,x) Y2=dsolve(D2y*y-Dy^2=0,x) 我们看到有两个解,其中一个是常数 0 。 ⎧dx t ⎪⎪dt +5x +y e ⎨ ⎪dy −x −3y e 2t 例 3 :求常微分方程组 ⎪⎩dt 通解的MATLAB程序为: [X,Y]=dsolve(Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t),t) ⎧dx dy x t x +2 − 10cos , 2 ⎪⎪dt dt t 0 ⎨ ⎪dx dy −2t ⎪ + +2y 4e , y t 0 0 例 4 :求常微分方程组 ⎩dt dt 通解的MATLAB程序为: [X,Y]=dsolve(Dx+2*x-Dy=10*cos(t),Dx+Dy+2*y=4*exp(- 2*t),x(0)=2,y(0)=0,t) 以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。但是,我们知 道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析 解,此时,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB 具有丰 富的函数,我们将其统称为 solver,其一般格式为: [T,Y]=solver(odefun,tspan,y0) 该函数表示在区间tspan=[t0,tf]上,用初始条件y0 求解显式常微分方程y f (t , y ) 。 solver 为命令 ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb 之一,这些 命令各有特点。我们列表说明如下: 求解 特点 说明 器 一步算法,4,5 阶 Runge- 大部分场合的首选 ode45 Kutta 3 算法 方
显示全部
相似文档