一つのjavaプログラム(クラス)を用意し、以下の手順でプログラムを組んでみる。
初期状態をセットし、車の位置を表示してみる。
class sov_model { // グローバル変数のセット protected static int n_cell=200 , initial_n=30; // セルの数、初期の車台数、パラメータ protected static double alpha, beta; // モデルのパラメータ protected static int[] x, v; // 車の位置、速度 (これは、のちにリスト構造とする) ///////////// メインメソッド ////////////////// public static void main(String[] args) { int step=0; // 時間 setInitialCondition(); // 状態をコンソールに書きだす // 時間発展の繰り返し for(int i =0; i < 100; i++) { update(); setBoundaryCondition(); // 状態の書き出し } } //////////// 初期値設定 /////////////////// public static void setInitialCondition() { // initial_n台の車をランダムに配置する } /////////// 時間発展 ///////////////////// public static void update() { // 速度を計算し、それに基づいて車を進める } ////////// 境界条件処理(車の生成、消滅) //// public static void setBoundaryCondition() { } }
出力例:
OO________________________O__________O_____OO_______O__O_O___OO______O___O________O_O___OO___________O____O______________O___O___O___O________________________O_____O____O______________O_O________OO___
車の生成、消滅をうまく操作するには、車の位置、速度を配列に格納する方法は効率的ではない。先端を消去したり、後ろに付け加えたりするのに便利な「リスト(構造)」を利用する。
まずは、リスト構造を勉強し、javaでの利用方法を探る。