import java.awt.*; import java.lang.Double; /* gcj --main=RK RK.java -o RK */ class RK { public static void main (String args[]) { int i,m; double x,v,x_new, v_new, h,t,l1,l2,k1,k2,k3,l3; h=0.02; x=1.0; /* initial data */ v=0.0; /* initial data */ t=0.0; for(m=0;m<2000;m++){ /* third order RK */ k1=h*v; l1=-2.0*h*x*x*x; k2=h*(v+0.5*l1); l2=-2.0*h*(x+0.5*k1)*(x+0.5*k1)*(x+0.5*k1); k3=h*(v+l2); l3=-2.0*h*(x+k2)*(x+k2)*(x+k2); v=v+(l1+4.0*l2+l3)/6.0; x=x+(k1+4.0*k2+k3)/6.0; System.out.println(x + "\t" + v); } } }