资源描述:
《常微分方程作业欧拉法与改进欧拉法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、P7731.利用改进欧拉方法计算下列初值问题,并画出近似解的草图:代码:%改进欧拉法functionEuler(t0,y0,inv,h)n=round(inv(2)-inv(1))/h;t(1)=t0;y(1)=y0;fori=1:ny1(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)))endplot(t,y,'*r')functiony=fun(t,y);y=y+1;调用:Euler(0,3,[0,2],0.5)得到解析解:
2、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:ny1(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)))endplot(t,y,'*r')functiony=fun(t,y);y=y^2-4*t;调用:E
3、uler1(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:ny1(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)))endplot(t,y,'*r')functiony=fun(t,y);y=(3-y)*(y+1);调用:Euler2(0,4,[0,5],1)得到解析解:holdon
4、;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:ny1(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)))endplot(t,y,'*r')functiony=fun(t,y);y=(3-y)*(y+1);调用:Eul
5、er2(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:nx1(i+1)=x(i)+h*xfun(t(i),x(i),y(i));y1(i+1)=y(i)+h*yfun(t(i),x(i
6、),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)));endplot(t,x,'o-r')holdonplot(t,y,'*-g')holdonplot(x,y)functionx=xfun(t,x,y);x=y;functiony=yfun(t,x,y);y=-2*x-3*y;调用函数:Euler4
7、(0,[1,1],5,0.25)图像:(2)代码:functionEuler5(t0,int,n,h)t=t0;x(1)=int(1);y(1)=int(2);fori=1:nx1(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))+