计算方法 第五章常微分方程数值解 §53常微分方程组 和边值问题的数值解法
第五章 常微分方程数值解 5.3 常微分方程组 和边值问题的数值解法 §
§53常微分方程组和高阶 微分方程的数值解法简介 常微分方程组的数值解法 下列包含多个一阶常微分方程的初值问题 y=f1(x,y1,y2八…y)y1(x) 10 n(J1y2”"∫ 称为常微分方程组的初值问题
5.3 常微分方程组和高阶 微分方程的数值解法简介 § 一、常微分方程组的数值解法 ï ï î ï ï í ì ¢ = = ¢ = = ¢ = = 1 2 0 0 2 2 1 2 2 0 20 1 1 1 2 1 0 10 ( , , , , ) ( ) ( , , , , ) ( ) ( , , , , ) ( ) n n n n n n n y f x y y y y x y y f x y y y y x y y f x y y y y x y L LLL L L 下列包含多个一阶常微分方程的初值问题 ----------(1) 称为常微分方程组的初值问题
(1)式具有n个未知函数 做如下假设 f(x,) 10 f(x,Y) y2(x)|y2 20 Y y2F(x Y= o=Y(o) fn(x,y) yn(ro))y 则(1)式化为矩阵形式 r=F(x,Y) Y(x0)=1 (2)
(1)式具有n个未知函数 做如下假设 ÷ ÷ ÷ ÷ ÷ ø ö ç ç ç ç ç è æ = n y y y Y M 2 1 ÷ ÷ ÷ ÷ ÷ ø ö ç ç ç ç ç è æ = ( , ) ( , ) ( , ) ( , ) 2 1 f x Y f x Y f x Y F x Y n M ÷ ÷ ÷ ÷ ÷ ø ö ç ç ç ç ç è æ = ÷ ÷ ÷ ÷ ÷ ø ö ç ç ç ç ç è æ = = 0 20 10 0 2 0 1 0 0 0 ( ) ( ) ( ) ( ) n n y y y y x y x y x Y Y x M M 则(1)式化为矩阵形式 î í ì = ¢ = 0 0 ( ) ( , ) Y x Y Y F x Y ----------(2)
要将以前所介绍的各种求解方法中的函数转化为 函数向量,即可得到相应的常微分方程组的数值解法 这里只介绍求解微分方程组的计算机实现 首先编制微分方程组的函数文件: function z=F(X,Y) z=F(X,Y) F为微分方程组的文件名 然后使用求解命令ode45 Span需求值的节点向量 x,Y]=ODE45( F Span,y0)Y0为函数向量的初值 x为自变量,Y为函数值矩阵
只要将以前所介绍的各种求解方法中的函数转化为 函数向量,即可得到相应的常微分方程组的数值解法 这里只介绍求解微分方程组的计算机实现 [x,Y] = ODE45('F',xspan,Y0) 首先编制微分方程组的函数文件: function z=F(x,Y) z=F(x,Y); 然后使用求解命令ode45 F为微分方程组的文件名 xspan为需求值的节点向量 Y0为函数向量的初值 x为自变量,Y为函数值矩阵
例1.求解微分方程组(0≤x≤2) Y1=x-yi+2y y(0)=0 y2=2x-3y1-5y2 y2(0)=15 解:首先编制微分方程组的m文件 function z=fun(x,y) z(1)=xy(1)+2*y(2); 2(2)2*x-3米y(1)-5*y(2); 再编写求解程序
例1. 求解微分方程组 2 3 5 (0) 1.5 2 (0) 0 2 1 2 2 1 1 2 1 ¢ = - - = ¢ = - + = y x y y y y x y y y 解: 首先编制微分方程组的m文件 function z=fun(x,y) z(1)=x-y(1)+2*y(2); z(2)=2*x-3*y(1)-5*y(2); z=z'; 再编写求解程序 (0 £ x £ 2)
Span=0:0.1:2 y0=[0,1.5 [x, y]=ode45(fun, span, yO) plot(x,y) 1.5 Y1 近一 0.5 -0.5 0.5 1.5 X
xspan=0:0.1:2; y0=[0,1.5]'; [x,y]=ode45('fun',xspan,y0) plot(x,y) 0 0.5 1 1.5 2 -0.5 0 0.5 1 1.5 x Y Y1 运行 Y2 后得
、高阶常微分方程的数值解法简介 例2.求下列高阶微分方程的数值解 y"-3y-yy=0 0<x<2 y(0)=0,y(0)=1,y"(0)=-1 解:显然y"=3y+yy 假设y1=yy2=yy3=y 则y=y2y2=y 312+ y1(0)=0,y2(0)=1,y3(0)=-1
二、高阶常微分方程的数值解法简介 例2. 求下列高阶微分方程的数值解 y ¢¢¢ - 3y ¢¢ - y ¢ y = 0 y(0) = 0, y ¢(0) = 1, y ¢¢(0) = -1 (0 £ x £ 2) 解: 显然 y ¢¢¢ = 3y ¢¢ + y ¢ y 假设 y = y 1 y = y ¢ 2 y = y ¢¢ 3 则 1 2 y ¢ = y 2 3 y ¢ = y 3 3 3 2 1 y ¢ = y + y y y1 (0) = 0, y2 (0) = 1, y3 ¢¢(0) = -1
即二阶问题化为微分方程组的初值问题 VI=y y2=y3 y3=3y3+y2y y1(0)=0,y2(0)=1,y3(0)=-1 Gaojiefangchengm gaojlem function z-gaojie(x, y) z=[y(2);y(3);y(1)*y(2)+3*y(3)];
即二阶问题化为微分方程组的初值问题 1 2 y ¢ = y 2 3 y ¢ = y 3 3 3 2 1 y ¢ = y + y y y1 (0) = 0, y2 (0) = 1, y3 ¢¢(0) = -1 ï ï î ï ï í ì Gaojiefangcheng.m gaojie.m function z=gaojie(x,y) z=[y(2);y(3);y(1)*y(2)+3*y(3)];
function gaojiefangcheng ( 0 0 Span=0:0.1:1 0.10000.0945 0=[0,1,-1]"; 0.20000.1754 [x,y]=ode45(gaojie, span, yo)i 0.30000.2381 [x,y(:;1)] 0.40000.2765 p1ot(x,y(:;1) 0.50000.2822 xlabel(x) 0.60000.2436 ylabel( y) 0.70000.1451 0.8000-0.0342 0.9000-0.3230 1.00000.7586
x y 0 0 0.1000 0.0945 0.2000 0.1754 0.3000 0.2381 0.4000 0.2765 0.5000 0.2822 0.6000 0.2436 0.7000 0.1451 0.8000 -0.0342 0.9000 -0.3230 1.0000 -0.7586 function gaojiefangcheng() xspan=0:0.1:1; y0=[0,1,-1]'; [x,y]=ode45('gaojie',xspan,y0); [x,y(:,1)] plot(x,y(:,1)) xlabel('x') ylabel('y')
0.6 0.4 0.2 0.2 0.4 0.6 0.8 0 0.2 04 0.6 0.8 X
0 0.2 0.4 0.6 0.8 1 -0.8 -0.6 -0.4 -0.20 0.2 0.4 0.6 x y