资源描述:
《fortran下龙格-库塔法求解常微分方程(实例).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.二阶龙格—库塔法实例:,程序代码:DIMENSIONx(0:20),y(0:20),z(0:20),p(0:21)DOUBLEPRECISIONx,y,z,p,h,x0,y0,z0,p0,n,k1,k2f(x,y)=x-yh=1.0/20n=20x(0)=0.0y(0)=0.0DOi=0,n-1x(i+1)=x(i)+hk1=f(x(i),y(i))k2=f(x(i+1),y(i)+h*k1)y(i+1)=y(i)+h*(k1+k2)/2ENDDOp(0)=0DOi=0,nz(i)=p(i)+exp(-p(i))-1p(i+1)=p(i)+hENDD
2、Oopen(10,file='1.txt')WRITE(10,10)(x(i),y(i),z(i),i=0,20)WRITE(*,10)(x(i),y(i),z(i),i=0,20)10FORMAT(1x,f10.7,2x,f10.8,2x,f10.8/)END输出结果:0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.通过比对公式或者输出结果可以知道,二
3、阶龙格—库塔法即为改进欧拉法2.四阶龙格—库塔法程序代码:DIMENSIONx(0:20),y(0:20),z(0:20),p(0:21)DOUBLEPRECISIONx,y,z,p,h,x0,y0,z0,p0,n,k1,k2,k3,k4f(x,y)=x-yh=0.05n=20x(0)=0.0y(0)=0.0DOi=0,n-1x(i+1)=(i+1)*hk1=f(x(i),y(i))k2=f(x(i)+0.5*h,y(i)+0.5*h*k1)k3=f(x(i)+0.5*h,y(i)+0.5*h*k2)k4=f(x(i)+h,y(i)+h*k3)y(i+1
4、)=y(i)+h*(k1+2*k2+2*k3+k4)/6ENDDOp(0)=0DOi=0,nz(i)=p(i)+exp(-p(i))-1p(i+1)=p(i)+hENDDOopen(10,file='1.txt')WRITE(10,10)(x(i),y(i),z(i),i=0,20)10FORMAT(1X,f12.10,2x,f12.10,2x,f12.10/)WRITE(*,10)(x(i),y(i),z(i),i=0,20)END输出结果:0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
5、0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.