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

上传人:b****0 文档编号:9936949 上传时间:2023-05-22 格式:DOCX 页数:9 大小:102.68KB
下载 相关 举报
常微分方程作业欧拉法与改进欧拉法.docx_第1页
第1页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第2页
第2页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第3页
第3页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第4页
第4页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第5页
第5页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第6页
第6页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第7页
第7页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第8页
第8页 / 共9页
常微分方程作业欧拉法与改进欧拉法.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《常微分方程作业欧拉法与改进欧拉法.docx》由会员分享,可在线阅读,更多相关《常微分方程作业欧拉法与改进欧拉法.docx(9页珍藏版)》请在冰点文库上搜索。

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

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

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

P7731.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:

代码:

%改进欧拉法

functionEuler(t0,y0,inv,h)

n=round(inv

(2)-inv

(1))/h;

t

(1)=t0;

y

(1)=y0;

fori=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*(fun(t(i),y(i))+fun(t(i+1),y1(i+1)))

end

plot(t,y,'*r')

functiony=fun(t,y);

y=y+1;

调用:

Euler(0,3,[0,2],0.5)

得到解析解:

holdon;

y=dsolve('Dy=y+1','(y(0)=3)','t');

ezplot(y,[0,2])

图像:

代码:

functionEuler1(t0,y0,inv,h)

n=round(inv

(2)-inv

(1))/h;

t

(1)=t0;

y

(1)=y0;

fori=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*(fun(t(i),y(i))+fun(t(i+1),y1(i+1)))

end

plot(t,y,'*r')

functiony=fun(t,y);

y=y^2-4*t;

调用:

Euler1(0,0.5,[0,2],0.2)

图像:

 

代码:

functionEuler2(t0,y0,inv,h)

n=round(inv

(2)-inv

(1))/h;

t

(1)=t0;

y

(1)=y0;

fori=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*(fun(t(i),y(i))+fun(t(i+1),y1(i+1)))

end

plot(t,y,'*r')

functiony=fun(t,y);

y=(3-y)*(y+1);

调用:

Euler2(0,4,[0,5],1)

得到解析解:

holdon;

y=dsolve('Dy=(3-y)*(y+1)','y(0)=4','t');

ezplot(y)

图像:

代码:

functionEuler2(t0,y0,inv,h)

n=round(inv

(2)-inv

(1))/h;

t

(1)=t0;

y

(1)=y0;

fori=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*(fun(t(i),y(i))+fun(t(i+1),y1(i+1)))

end

plot(t,y,'*r')

functiony=fun(t,y);

y=(3-y)*(y+1);

调用:

Euler2(0,4,[0,5],0.5)

得到解析解:

holdon;

y=dsolve('Dy=(3-y)*(y+1)','y(0)=4','t');

ezplot(y)

图像:

14.考虑满足初始条件(x(0),y(0))=(1,1)的下列方程组:

选定时间步长

t=0.25,n=5.用改进欧拉方法求两个方程组的近似解;

(1)代码:

functionEuler4(t0,int,n,h)

t=t0;

x

(1)=int

(1);

y

(1)=int

(2);

fori=1:

n

x1(i+1)=x(i)+h*xfun(t(i),x(i),y(i));

y1(i+1)=y(i)+h*yfun(t(i),x(i),y(i));

t(i+1)=t(i)+h;

x(i+1)=x(i)+1/2*h*(xfun(t(i),x(i),y(i))+xfun(t(i+1),x1(i+1),y1(i+1)));

y(i+1)=y(i)+1/2*h*(yfun(t(i),x(i),y(i))+yfun(t(i+1),x1(i+1),y1(i+1)));

end

plot(t,x,'o-r')

holdon

plot(t,y,'*-g')

holdon

plot(x,y)

functionx=xfun(t,x,y);

x=y;

functiony=yfun(t,x,y);

y=-2*x-3*y;

调用函数:

Euler4(0,[1,1],5,0.25)

图像:

(2)代码:

functionEuler5(t0,int,n,h)

t=t0;

x

(1)=int

(1);

y

(1)=int

(2);

fori=1:

n

x1(i+1)=x(i)+h*xfun(t(i),x(i),y(i));

y1(i+1)=y(i)+h*yfun(t(i),x(i),y(i));

t(i+1)=t(i)+h;

x(i+1)=x(i)+1/2*h*(xfun(t(i),x(i),y(i))+xfun(t(i+1),x1(i+1),y1(i+1)));

y(i+1)=y(i)+1/2*h*(yfun(t(i),x(i),y(i))+yfun(t(i+1),x1(i+1),y1(i+1)));

end

plot(t,x,'o-r')

holdon

plot(t,y,'*-g')

holdon

plot(x,y)

functionx=xfun(t,x,y);

x=y+y^2;

functiony=yfun(t,x,y);

y=-x+0.2*y-x*y+1.2*y^2;

调用函数:

Euler5(0,[1,1],5,0.25)

图像:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2