/*
  2003/08/01  小松 研吾
 */
import java.io.*;

public class SecondDegreeDiff {
    public static void main(String args[]) {
        // 変数宣言
	double h, x;
        // 刻み幅
        h = 0.01;

        // 初期条件
        x = 0;
        double y[];
        y = new double[2];
        for(int i=0; i<2; i++)
            y[i] = 1;

        double k[][];
        k = new double[4][2];
        for(int i=0; i<4; i++) {
            for(int j=0; j<2; j++)
                k[i][j] = 0;
        }

        // ファイル出力
        String fn = new String();
        for(int i=0; i<1; ++i) {
            // ファイル名
            fn = "SecondDegreeDiff.txt";
            // 書き込み
                try {
                    PrintWriter pw = new PrintWriter
                        (new BufferedWriter(new FileWriter(fn,true)));
                    pw.println(x + " " + y[0]);
                    pw.close();
                }
                catch(IOException e) {
                    System.out.println("入出力エラー");
                }

                // Runge-Kutta法
                for(int j=0; j<10/h ; j++) {
                k[0][0] = h * f1(x,       y[0],             y[1]            );
                k[0][1] = h * f2(x,       y[0],             y[1]            );
                k[1][0] = h * f1(x+h/2.0, y[0]+k[0][0]/2.0, y[1]+k[0][1]/2.0);
                k[1][1] = h * f2(x+h/2.0, y[0]+k[0][0]/2.0, y[1]+k[0][1]/2.0);
                k[2][0] = h * f1(x+h/2.0, y[0]+k[1][0]/2.0, y[1]+k[1][1]/2.0);
                k[2][1] = h * f2(x+h/2.0, y[0]+k[1][0]/2.0, y[1]+k[1][1]/2.0);
                k[3][0] = h * f1(x+h,     y[0]+k[2][0],     y[1]+k[2][1]    );
                k[3][1] = h * f2(x+h,     y[0]+k[2][0],     y[1]+k[2][1]    );

                y[0] += (k[0][0] + 2*k[1][0] + 2*k[2][0] + k[3][0]) / 6.0;
                y[1] += (k[0][1] + 2*k[1][1] + 2*k[2][1] + k[3][1]) / 6.0;

                x += h;
            }
        }
    }

    // 式1
    private static double f1(double x, double y0, double y1) {
        double value = 0;
        value = y1;
        return value;
    }

    // 式2
    private static double f2(double x, double y0, double y1) {
        double value = 0;
        value = 6*y0 - y1;
        return value;
    }
}
