⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rk4.f90

📁 这是一个可以用来计算洛仑兹方程解的程序
💻 F90
字号:
subroutine rk4(t0,x0,y0,z0,h,n,x1)
real*8 k_1,k_2,k_3,k_4,D_1,D_2,D_3,D_4,xx,yy,zz
integer n
h2=h/2
h6=h/6
xx=x0
yy=y0
zz=z0
call f(t0,xx,yy,zz,n,D_1)
     k_1=D_1
     t0=t0+h2
	 if(n.EQ.1)then
	    x0=xx+h2*k_1
        call f(t0,x0,yy,zz,1,D_2)
		     k_2=D_2
             x0=xx+h2*k_2
			 call f(t0,x0,yy,zz,1,D_3)
			      k_3=D_3
                  x0=xx+h*k_3
                  call f(t0,x0,yy,zz,1,D_4)
				       k_4=D_4
					   x1=xx+h6*(k_1+2*(k_2+k_3)+k_4)
!---------------------------------------------------
	  else if(n.EQ.2)then 
	    x0=xx
	    y0=y0+h2*k_1
	    z0=zz
        call f(t0,x0,y0,z0,2,D_2)
		     k_2=D_2
             y0=yy+h2*k_2
			 call f(t0,x0,y0,z0,2,D_3)
			      k_3=D_3
                  y0=yy+h*k_3
                  call f(t0,x0,y0,z0,2,D_4)
				       k_4=D_4
					   x1=yy+h6*(k_1+2*(k_2+k_3)+k_4)
!----------------------------------------------------
	  else if(n.EQ.3)then
	    x0=xx
	    z0=z0+h2*k_1
	    y0=yy
        call f(t0,x0,y0,z0,3,D_2)
		     k_2=D_2
             z0=zz+h2*k_2
			 call f(t0,x0,y0,z0,3,D_3)
			      k_3=D_3
                  z0=zz+h*k_3
                  call f(t0,x0,y0,z0,3,D_4)
				       k_4=D_4
					   x1=zz+h6*(k_1+2*(k_2+k_3)+k_4)
	 end if
!-----------------------------------------------------

end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -