import java.io.*;

public class Runge {
    public static void main(String args[]) {
	double dy, h, k1, k2, k3, k4, x, y;
	// 初期化
	k1=0.0; k2=0.0; k3=0.0; k4=0.0; dy=0.0;
	// 始点
	x=1.0; y=1.0;
	
	// Runge-Kutta法
	h = 0.1;
	Runge ddy = new Runge();
	String fn = new String();
	
	for(int i=0; i<=6; ++i) {
	    
	    fn = "Magnetic_line_R" + String.valueOf(i) + ".txt";
	    
	    while((int)y!=0) {
		k1 = h * ddy.f(x,y);
		k2 = h * ddy.f(x+h/2,y+k1/2);
		k3 = h * ddy.f(x+h/2,y+k2/2);
		k4 = h * ddy.f(x+h,y+k3);
		dy = (k1+2*k2+2*k3+k4) / 6.0;
		y = y + dy;
		
		try {
		    PrintWriter pw = new PrintWriter
			(new BufferedWriter(new FileWriter(fn,true)));
		    
		    pw.println(x + " " + y);
		    pw.close();
		}
		catch(IOException e) {
		    System.out.println("入出力エラー");
		}
		x = x + h;
	    }
	    x=1.0; y =1.0+(double)i;
	}
    }
    
    // f(x,y)
    double f(double x,double y) {
	double f = 0.0;
	f = y/x - (x*x+y*y)/(3*x*y);
	return f;
    }
}
