program class5 double precision x1,x2,t,dt,f1,f2,v1,v2,v3,v4,w1,w2,w3,w4 open(unit=13,file="data.d") dt = 0.4 x1 = 0 x2 = 0 do 10 t = 0, 12, dt write(13,*) t,x1,x2 v1 = f1(x1,x2,t)*dt w1 = f2(x1,x2,t)*dt v2 = f1(x1+0.5*v1,x2+0.5*w1,t+0.5*dt)*dt w2 = f2(x1+0.5*v1,x2+0.5*w1,t+0.5*dt)*dt v3 = f1(x1+0.5*v2,x2+0.5*w2,t+0.5*dt)*dt w3 = f2(x1+0.5*v2,x2+0.5*w2,t+0.5*dt)*dt v4 = f1(x1+v3,x2+w3,t+dt)*dt w4 = f2(x1+v3,x2+w3,t+dt)*dt x1 = x1 + (v1+2*v2+2*v3+v4)/6.0 x2 = x2 + (w1+2*w2+2*w3+w4)/6.0 10 continue write(13,*) t,x1,x2 stop end double precision function f1(x1,x2,t) double precision x1,x2,t f1 = x2 return end double precision function f2(x1,x2,t) double precision x1,x2,t f2 = 3*sin(2*t)-4*x1-0.01*x2 return end