В начале описания метода делалось предположение о неравенстве 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 матрице.
#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(); //использование функции освобождения памяти
}
/**********************************************/
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.