matlab求解常微分方程.docx

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用matlab求解常微分方程

在MATLAB中,由函数dsolve()解决常微分方程(组)的求解问题,其具体格式如下:r 二dsolve('eql,eq2,・••字condl,cond2,・.・;V)

匕ql,eq2,・・・*为微分方程或微分方程组,,condl,cond2,.・・;是初始条件或边界条件,P是独立变量,默认的独立变量是讥

函数dsolve用来解符号常微分方程、方程组,如果没有初始条件,则求出通解,如果有初始条件,则求出特解。

dy _1

例1:求解常微分方程莎一石的MATLAB程序为:

dsolve(* Dy=l/(x+y) 1r!x1),

注意,系统缺省的自变量为t,因此这里要把自变量写明。其中:Y=lambertw(X)表示函数关系Y*exp(Y)二X。

例2:求解常微分方程E'-y— 0的MATLAB程序为:

Y2=dsolve(1y*D2y-Dy A2=01, 1x f)

Y2=dsolve(!D2y*y-Dy A2=0 J )

我们看到有两个解,其中一个是常数0。

dx 心 ? —+ 5x + y = e dt

空_兀_3『= g2f 例3:求常微分方程组〔力 ' 通解的MATLAB 程序为: [X,Y]=dsolve(f Dx+5*x+y=exp(t),Dy-x-3*y=exp(2*t) 1, 111) [X,Y]=dsolve(1Dx+2 *x-Dy=l0 * cos(t),Dx+Dy+2 *y=4 *exp(-

2*t) T ,f x(0)=2,y(0)=0f ,f t T

) 以上这些都是常微分方程的精确解法,也称为常微分方程的符号解。但是,我们知 道,有大量的常微分方程虽然从理论上讲,其解是存在的,但我们却无法求出其解析 解,此吋,我们需要寻求方程的数值解,在求常微分方程数值解方面,MATLAB 具有丰 富的函数,我们将其统称为solver,其一般格式为:

i°cosr, 7

=2 例4:求常微分方程组 y = 0 z 通解的MATLAB 程序为:

[T,Y]=solver(odefun,tspan,yO)

该函数表示在区间tspan=[tO,tf]±,用初始条件yO求解显式常微分方程卩=",刃。

solver 为命令odc45, odc23, ode 113, ode 15s, ode23s, ode23t, ode23tb 之一,这些命令各有特点。我们列表说明如下:

odefun为显式常微分方程),”,刃中的“丿)

tspan为求解区间,要获得问题在其他指定点心,也,…上的解,则令切期二[心,/“,…心](要求-单调递增或递减),yO初始条件。

例5:求解常微分方程y' = -2y + 2x2+2x, 0

y=dsolve(1Dy=-2*y+2*x A2+2*x1, 1y (0)=11, 1x!) x=0:0.01:0.5;

yy=subs(y,x);

fun=inline (*-

2*y+2*x*x+2*x1); [x,y]=odel5s(fun, [0:0.01:0.5],1);ys=x ・ *x+exp(一

2*x);

Plot(x,y, f r f,x,ys, f b f )

例6:求解常微分方程分冷+尸°"3)"'八°2()的解,并画出解的图形。

分析:这是一个二阶非线性方程(函数以及所有偏导数军委一次幕的是现性方程,高于一次的为非线性方程),用现成的方法均不能求解,但我们可以通过下面的变换,将二阶方程化为一阶方程组,即可求解。

= dy_

令:兀产儿氐-亦,“ =7,则得到:

~~ =兀2 ,兀| (0) = 1

at

<

= 7(1-%,2 )x2 - Xj, x2 (0) = 0

dt

解:

function [dfy]=mytt(t,fy)

%fl=y;f2=dy/dt

%求二阶非线性微分方程时,把一阶、二阶直到(ml)阶导数用另外一个函数代替

%用ode45命令时,必须表示成Y』f(t,Y)的形式

%Y=[yl;y2;y3],Y,=[yl\y2\y3>[y2;y3;f(yl,y2,y3)],

%其中yl=y,y2=y',y3=y"

%更高阶时类似

dfy=[fy(2);7*(l ・fy ⑴八2)*fy(2)・fy ⑴];

clear;clc

[t,yy]=ode45Cmytt\[0 40],[1;0]);

plot(t,yy)

legend('yTdy')

【例4.14.2.1-1]采用ODE解算扌旨令研究围绕地球旋转的卫星轨道。

(1)问题的形成

轨道上的卫星,在牛顿第二定律F=ma = m^,和万有引力定律F T叫;作用下有dt r

2

a^L = -G^r ,引力常数G=6.672*10 H(N.m2/kg2) ,M

E

=5.97*1024(kg)是地球的质量。假dr r

定卫星以初速度v y(0)=4000m/s在x(0)=4.2*l()7(m)处进入轨道。

(2) 构成一阶微分方程组

令 Y 二[刃力力为]「二[尤 V V x v y ]T =[x y * y]T

儿 (…严 儿 (宀)计

(3) 根据上式

[dYdt.m]

function Ycl=DYdt (t, Y)

% t

% Y

global G ME

% xy 二Y(l:2) ;Vxy=Y(3:4) ; %

r=sqrt(sum(xy.八

2)); Yd 二[Vxy ;-G*ME*xy//3] ; %

(4)

global G ME % <1>

G=6 ・ 672e-ll;ME=5 ・ 97e24;vy0=4000;x0=-4 ・ 2e7;t0=0;tf=60*60*24*9; tspan=[tO,tf];

%

-GM E —G

M

相关文档
最新文档