常微分方程作业欧拉法与改进欧
拉法
P77 31.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:
(1) 3 =y 1,y(0) =3,0汀岂2, :t=0.5;
dt
代码:
%改进欧拉法
fun cti on Euler(t0,y0,i nv,h)
n=rou nd(i nv(2)-in v(1))/h;
t(1)=t0;
y(1)=y0;
for i=1: n
y1(i+1)=y(i)+h*fun(t(i),y(i));
t(i+1)=t(i)+h;
y(i+1)=y (i)+1/2*h*(fu n( t(i),y(i))+
fun( t(i+1),y1(i+1)))
end
plot(t,y,'*r')
fun cti on y=fun (t,y);
y=y+1;
调用:Euler(0,3,[0,2],0.5)
得到解析解:hold on;
y=dsolve('Dy=y+1','(y(0)=3)', 't');
ezplot(y,[0,2])
图像:
(2)女=y2—4t,y(0) =0.5,0 叭乞2, :t =0.2; dt
代码:
function Euler1(t0,y0,inv,h) n=rou nd(i nv(2)-in v(1))/h; t(1)=t0;
y(1)=y0;
for i=1: n
y1(i+1)=y(i)+h*fu n(t(i),y(i));
t(i+l)=t(i)+h;
y(i+1)=y (i)+1/2*h*(fu n( t(i),y(i))+
fun( t(i+1),y1(i+1)))
end plot(t,y,'*r')
fun cti on y=fun (t,y); y=y A2-4*t;
调用:
Euler1(0,0.5,[0,2],0.2)
图像:
-05
-
1.5
-25
0.2 04 06 0.6 1.2 1.4 1.8
(3)齐S y)(y WO—g S W 代码:
function Euler2(t0,y0,inv,h) n=rou nd(i nv(2)-in v(1))/h; t(1)=t0;
y(i)=y0;
for i=1: n
y1(i+1)=y(i)+h*fun(t(i),y(i)); t(i+1)=t(i)+h;
y(i+1)=y (i)+1/2*h*(fu n( t(i),y(i))+
fun( t(i+1),y1(i+1)))
end
plot(t,y,'*r')
fun cti on y=fun (t,y); y=(3-y)*(y+1);
调用:
Euler2(0,4,[0,5],1)
得到解析解:
hold on;
y=dsolve('Dy=(3-y)*(y+1)','y(0)=4','t'); ezplot(y)图像:
⑷ dH_y)(y 归斫4,0*5,"5;
代码:
function Euler2(t0,y0,inv,h)
n=rou nd(i nv(2)-in v(1))/h;
t(1)=t0;
y(i)=y0;
for i=1: n
y1(i+1)=y(i)+h*fun(t(i),y(i));
t(i+1)=t(i)+h;
y(i+1)=y (i)+1/2*h*(fu n( t(i),y(i))+
fun( t(i+1),y1(i+1)))
end
plot(t,y,'*r')
fun cti on y=fun (t,y); y=(3-y)*(y+1);
调用:
Euler2(0,4,[0,5],0.5)
得到解析解:
hold on;
y=dsolve('Dy=(3-y)*(y+1)','y(0)=4','t'); ezplot(y)图像: