Печать исключения Гаусса из текстового файла и вывод решения с использованием Java - PullRequest
0 голосов
/ 26 сентября 2019

Использование наивного алгоритма исключения Гаусса

Я должен взять текстовый файл в формате:

n
a11 a12.. a1n             a's being the matrix
a21 a22..a2n
b1 b2.. bn                b's being the solution vector

мой текстовый файл:

4
15 -2 -6 0
-2 12 -4 -1
-6 -4 19 -9
0 -1 -9 21
300 0 0 0

Прочитайте входной текст и выведите решение:

BufferedReader in = new BufferedReader(new FileReader("src/sys1.lin"));
PrintWriter out = new PrintWriter(new FileWriter("src/sys1.sol"));

// read first line of input file
line = in.readLine();
st = new StringTokenizer(line);
n = Integer.parseInt(st.nextToken());

n будет читать 4, что в конечном итоге составит матрицу 4x4, но проблема в том, что, поскольку вектор включен, его будет 5 строк и 4столбцы 5x4.

Использование новой переменной и сохранение всех входных чисел в матрице:

    //not indexing to 0
    double[][] A = new double[n+1][n+1];
    // read next n lines of input file and initialize array A
    for(i=1; i<=n; i++){
       line = in.readLine();
       st = new StringTokenizer(line);
       for(j=1; j<=n; j++){
          A[i][j] = Double.parseDouble(st.nextToken());
        }
     }

Проблема, с которой я сталкиваюсь: Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 4 в строке A [i] [j] = Double.parseDouble (st.nextToken ());

Как можно распечатать векторную матрицу без влияния ошибки ArrayIndex?

...