TestOde1d


package ode1d;

import java.awt.*;

/**
 *  solves test ode using one of the simple solvers<br>
 *  stores the result in vectors<br>
 *  plots it using SimplePlot
 */
public class TestOde1d {
  public static void main(String[] args) {
    
    // set up the ODE
    double t0 = 0.0;
    double x0 = 1.0;
    ODE ode = new SimpleODE(x0, t0);
    
    // set up the solver
    double dt = 1.0 / 10.0;
    double tEnd = 100.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];
    
    // time loop
    for (int i = 0; i < maxsteps; i++) {
      t[i] = solv.t;
      s[i] = solv.x;
      solv.nextStep(dt);
    }
    t[maxsteps] = solv.t;
    s[maxsteps] = solv.x;
    
    // display the result
    Frame frame = new SimplePlot("ODEtest", 500, 300, t, s);
  }
}

previous    contents     next

Peter Junglas 20.12.1999