ВУЗ:
Составители:
Рубрика:
40
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] = A[j, n-count_null_cols-1];
A[j, n-count_null_cols-1] = t;
}
// отражаем смену столбцов в перестановке
int te = reoder[i];
reoder[i] = reoder[n-count_null_cols-1];
reoder[n-count_null_cols-1] = te;
count_null_cols++;
// далее пытаемся провести исключения
// с той же строкой
i--;
}
else
{
// нашли в столбце элемент, который может
// быть ведущим - меняем местами строки
for(int l=0; l<n; l++)
{
double t = A[i, l];
A[i, l] = A[k, l];
A[k, l] = t;
}
double p = B[0, i];
B[0, i] = B[0, k];
B[0, k] = p;
// далее пытаемся провести исключения
// с той же строкой
i--;
}
}
}
// вычисление ранга матрицы после проведения исключения
rang = m < n-count_null_cols ? m : n-count_null_cols;
// подсчет количества нулевых строк матрицы
int null_rows = m - rang;
// проверка на несовместность системы –
// если в нулевой строке
// свободный член не равен нулю
for(int i = rang; i < m; i++)
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] = A[j, n-count_null_cols-1]; A[j, n-count_null_cols-1] = t; } // отражаем смену столбцов в перестановке int te = reoder[i]; reoder[i] = reoder[n-count_null_cols-1]; reoder[n-count_null_cols-1] = te; count_null_cols++; // далее пытаемся провести исключения // с той же строкой i--; } else { // нашли в столбце элемент, который может // быть ведущим - меняем местами строки for(int l=0; l
Страницы
- « первая
- ‹ предыдущая
- …
- 39
- 40
- 41
- 42
- 43
- …
- следующая ›
- последняя »