ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
{
// исключение по i-ой строке
// проверка возможности исключения
// по значению ведущего элемента
if(A[i][i] != 0)
{
// исключение во всех строках, кроме ведущей
for(int k = 0; k < m; k++)
{
if(k == i)
continue;
double d = A[k][i] / A[i][i];
for(int j = i; j < n; j++)
A[k][j] = A[k][j] – d * A[i][j];
B[0][k] = B[0][k] – d * B[0][i];
}
// преобразование ведущей строки
for(int j = i + 1; j < n; j++)
A[i][j] /= A[i][i];
// преобразование i-ого свободного члена
B[0][i] /= A[i][i];
A[i][i] = 1;
}
else
{
// элемент главной диагонали
// в i-ой строке равен нулю
int k;
// поиск ненулевого элемента ниже
// в i-ом столбце
for(k = i + 1; k < m; k++)
if(A[k][i] != 0)
break;
if(k == m)
{
// все элементы столбца нулевые
if(i == n – 1 - count_null_cols)
{
// элементов, которые могут быть
// ведущими, больше нет
count_null_cols++;
break;
}
// меняем местами столбцы - текущий и
// последний из непросмотренных
for(int j = 0; j < m; j++)
{
double t = A[j][i];
A[j][i] =
208
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
{
// исключение по i-ой строке
// проверка возможности исключения
// по значению ведущего элемента
if(A[i][i] != 0)
{
// исключение во всех строках, кроме ведущей
for(int k = 0; k < m; k++)
{
if(k == i)
continue;
double d = A[k][i] / A[i][i];
for(int j = i; j < n; j++)
A[k][j] = A[k][j] – d * A[i][j];
B[0][k] = B[0][k] – d * B[0][i];
}
// преобразование ведущей строки
for(int j = i + 1; j < n; j++)
A[i][j] /= A[i][i];
// преобразование i-ого свободного члена
B[0][i] /= A[i][i];
A[i][i] = 1;
}
else
{
// элемент главной диагонали
// в i-ой строке равен нулю
int k;
// поиск ненулевого элемента ниже
// в i-ом столбце
for(k = i + 1; k < m; k++)
if(A[k][i] != 0)
break;
if(k == m)
{
// все элементы столбца нулевые
if(i == n – 1 - count_null_cols)
{
// элементов, которые могут быть
// ведущими, больше нет
count_null_cols++;
break;
}
// меняем местами столбцы - текущий и
// последний из непросмотренных
for(int j = 0; j < m; j++)
{
double t = A[j][i];
A[j][i] =
208
Страницы
- « первая
- ‹ предыдущая
- …
- 206
- 207
- 208
- 209
- 210
- …
- следующая ›
- последняя »
