Объектно-ориентированное программирование на C++. Андрианова А.А - 207 стр.

UptoLike

Объектно-ориентированное программирование на С++
решения системы. Общее решение системы отражает линейную
зависимость базисных переменных (их количество равно рангу
матрицы), от оставшихся свободных переменных, которые могут
принимать любые значения. При подстановке конкретных значений
свободных переменных в полученные зависимости значения
базисных переменных определяются однозначно.
Для определения общего решения рассмотрим СЛАУ после
выполненных преобразований:
ribxaxax
innirrii
..1,
11
=
=
++
+
++
где r ранг матрицы коэффициентов,
ij
a
новые коэффициенты при
переменных,
i
b
новые значения свободных членов. В таком виде
уравнения определяют зависимость базисных переменных от значений
свободных переменных, т. е. определяют общее решение системы. В
программе его можно представить в виде матрицы:
++
++
++
++
nrrrrrr
nrr
nrr
nrr
aaab
aaab
aaab
aaab
21
323133
222122
121111
......
Порядок следования базисных и свободных переменных будет
сохранен в специальном массиве reoder.
// функция решения СЛАУ с помощью
// метода исключений Жордана-Гаусса
void Slau::JordanGauss()
{
// создание копий матрицы коэффициентов и свободных
// членов для последующих преобразований
Matrix A = a;
Matrix B = b;
int count_null_cols = 0;
// проведение исключений по формулам Жордана-Гаусса
for(int i = 0; i < m; i++)
207
                                          Объектно-ориентированное программирование на С++
    решения системы. Общее решение системы отражает линейную
    зависимость базисных переменных (их количество равно рангу
    матрицы), от оставшихся свободных переменных, которые могут
    принимать любые значения. При подстановке конкретных значений
    свободных переменных в полученные зависимости значения
    базисных переменных определяются однозначно.

    Для определения общего решения рассмотрим СЛАУ после
выполненных преобразований:

     xi + ai′ r + 1 xr + 1 +  + ai′ n xn = bi′ , i = 1..r


где r – ранг матрицы коэффициентов, aij′ – новые коэффициенты при
переменных, bi′ – новые значения свободных членов. В таком виде
уравнения определяют зависимость базисных переменных от значений
свободных переменных, т. е. определяют общее решение системы. В
программе его можно представить в виде матрицы:

      b1′   − a1′ r + 1 − a1′ r + 2  − a1′ n 
                                              
      b′    − a′2 r + 1 − a′2 r + 2  − a′2 n 
      2                                       
      b3′   − a3′ r + 1 − a3′ r + 2  − a3′ n 
                                              
     . .     . . . .                          
                                              
      br′   − a′r r + 1 − a′r r + 2  − a′r n 
                                              

    Порядок следования базисных и свободных переменных будет
сохранен в специальном массиве reoder.

    // функция решения СЛАУ с помощью
    // метода исключений Жордана-Гаусса
    void Slau::JordanGauss()
    {
         // создание копий матрицы коэффициентов и свободных
         // членов для последующих преобразований
         Matrix A = a;
         Matrix B = b;
         int count_null_cols = 0;
         // проведение исключений по формулам Жордана-Гаусса
         for(int i = 0; i < m; i++)

                                                                                      207