package odend; import java.awt.*; /** * integrate the ODE of a damped peridically driven pendulum<br> * plots results at fixed time steps */ public class TestOdeNd { public static void main(String[] args) { // set up the ODE double t0 = 0.0; double phi0 = Math.PI*500.0/1000.0; double phidot0 = 0.0; PendelErzwODE ode = new PendelErzwODE(phi0, phidot0, t0); ode.setA(115.0/100.0); // set up the solver double dt = 1.0/100.0; double tEnd = 200.0; ODESolver solv = new ODESolverRK4(ode); // arrays to store the results int maxsteps = (int) Math.round(tEnd / dt); double[] t = new double[maxsteps + 1]; double[] s = new double[maxsteps + 1]; // loop over time steps for (int i = 0; i < maxsteps; i++) { t[i] = solv.t; s[i] = solv.x.get(0,0); solv.nextStep(dt); } t[maxsteps] = solv.t; s[maxsteps] = solv.x.get(0,0); // display the result Frame frame = new SimplePlot("TestOdeNd", 500, 300, t, s); } }