// ================================================================
// John Kerl
// kerl.john.r@gmail.com
// 2010-02-18
// ================================================================

import java.util.Random;
import java.lang.Math;

public class BrownianMotionTest {

	public static void main(String[] args) {
		Random rng = new Random();
		int nX = 10;
		int nt = 1000;
		double dt = 0.01;
		double sqrtdt = Math.sqrt(dt);
		double Xs[] = new double[nX];
		double t;
		int i;

		for (int j = 0; j < nX; j++)
			Xs[j] = 0.0;

		for (i = 0, t = 0.0; i < nt; i++, t += dt) {
			System.out.print(t);
			for (int j = 0; j < nX; j++) {
				System.out.print(" ");
				System.out.print(Xs[j]);
				double db = rng.nextGaussian() * sqrtdt;
				Xs[j] += db;
			}
			System.out.println();
		}
	}
}
