1

Тема: Метод Гаусса решения системы линейных уравнений

Привет,

Есть пара вопрос по реализации.

Я никак не могу понять, как решения появляются в столбце свободных членов, ведь после приведения к диагональному виду получаем следующую систему:

c[i]x[i]=d[i], откуда x[i] = d[i]/c[i][i]

?

Так же используется оптимизация:

    for (int j=i+1; j<=n; ++j)
        a[i][j] /= a[i][i];

которая не соответствует никакой элементарной операции.

Но решения, да, правильные, проверил.

Спасибо.

2

Re: Метод Гаусса решения системы линейных уравнений

Всё правильно, вы как раз заметили два связанных факта smile

Почему при нахождении ответа мы просто берём x[ i ] = d[ i ]? Потому что в моей реализации все c[ i ][ i ] = 1.

Почему они равны единице? Потому что я каждый раз сокращаю на c[ i ][ i ] всю строку, что вы и отметили вторым куском кода. Более логично было бы ещё дописать осле этого цикла a[ i ][ i ] = 1, но я этого не написал, просто потому что эти значения вообще больше нигде не будут использоваться.

Но, если угодно, можно убрать цикл сокращения, но тогда надо будет при нахождении ответа сделать деление на a[ i ][ i ], и ещё в самом гауссе при отнимании одной строки от другой надо будет текущую строку делить на a[ i ][ i ].

3

Re: Метод Гаусса решения системы линейных уравнений

Спасибо, теперь все ясно.