当前位置:文档之家› 常微分方程作业欧拉法与改进欧拉法

常微分方程作业欧拉法与改进欧拉法

常微分方程作业欧拉法与改进欧拉法
常微分方程作业欧拉法与改进欧拉法

常微分方程作业欧拉法与改进欧

拉法

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)图像:

相关主题
文本预览
相关文档 最新文档