Решение систем линейных алгебраических уравнений. Метод исключения Жордана и его модификация, страница 3

В начале описания метода делалось предположение о неравенстве 0 коэффициента a11. Будем выбирать среди уравнений то, в котором коэффициент при x1  наибольший по модулю. Уравнения в системе равноправны, мы можем их занумеровать в произвольном порядке. Присвоим номер 1 тому найденному уравнению и сделаем первый шаг метода (очевидно, в этом уравнении коэффициент при x1 не равен 0, иначе матрица А имела бы нулевой первый столбец, т.е. вырождена). После этой перенумерации уравнений мы сделаем первый шаг метода Жордана, т.е. перейдём  от системы (1) к системе (1.1). Далее в подматрице A(1) = (aij(1))i,j=2,…,n Mn-1  присвоим номер 2 тому уравнению, в котором коэффициент при x2 наибольший по модулю, и сделаем следующий шаг метода Жордана. Затем этот процесс применяется к подматрице A(2) Mn-2 и так далее. Такая модификация метода носит название метод Жордана с выбором главного элемента по столбцу.

Аналогично мы можем перенумеровывать переменные, поскольку они тоже являются равноправными. Присвоим номер 1 той неизвестной, при которой коэффициент в первой строке наибольший по модулю. Этот коэффициент отличен от 0, т.к. противное означало бы, что матрица А имеет нулевую первую строку, т.е. вырождена. После этой перенумерации неизвестных мы сделаем первый шаг метода Жордана, т.е. перейдём к системе от системы (1) к системе (1.1). Далее в подматрице A(1) = (aij(1))i,j=2,…,n Mn-1  присвоим номер 2 той неизвестной, при которой коэффициент в первой строке матрицы A(1) (т.е. во второй строке матрицы А) наибольший по модулю, и сделаем следующий шаг метода Жордана. Затем этот процесс применяется к подматрице A(2) Mn-2и так далее. Такая модификация метода носит название метод Жордана с выбором главного элемента по строке.

Иногда используют следующую комбинацию приведённых методов. В качестве a11 выбирается элемент, имеющий наибольший модуль среди всех элементов матрицы. Если этот элемент есть  aij, то меняются номера у 1-й и i-й строк и у 1-го и j-го столбцов. После этой перенумерации уравнений и неизвестных мы сделаем первый шаг метода Жордана, т.е. перейдём к системе от системы (1) к системе (1.1). Далее в подматрице A(1) = (aij(1))i,j=2,…,n Mn-1  выбирается элемент aij с наибольшим модулем среди всех элементов матрицы A(1) и меняются номера у 1-й и i-й строк и у 1-го и j-го столбцов матрицы A(1)   (т.е. у 2-й и i-й строк и у 2-го и j-го столбцов матрицы A). Сделаем следующий шаг метода Жордана. Затем этот процесс применяется к подматрице A(2) Mn-2 и так далее. Этот алгоритм называется  методом Жордана с выбором главного элемента по все1 матрице.


4. Текст программы

#include <stdio.h>                           //подключение библиотек

#include <conio.h>

#include <math.h>

int n;                                                 //задание глобальных переменных

double **a, *b;

void AllocVars();                             //функции, используемые в программе

void FreeVars();

bool ReadData();

void Calculate();

/**********************************************/

void main()                                         //главная функция

{

if(!ReadData()) return;                      //проверка существования файла

Calculate();                                        //использование функции нахождения решения

printf("Answer: \n");                          //вывод ответа на экран

for(int i = 0; i < n; i++)

printf("%.4lf\n", b[i]);

getch();

FreeVars();                                           //использование функции освобождения памяти

}

/**********************************************/