Программа решения СЛАУ по методу Гаусса
2.1.1 Постановка задачи
Требуется решить систему линейных алгебраических уравнений с вещественными коэффициентами вида
по методу Гаусса.
2.1.2 Тестовый пример
2.1.3 Алгоритм программы
В данной программе реализован метод Гаусса со схемой частичного выбора. В переменную n вводится порядок матрицы системы. С помощью вспомогательной процедуры ReadSystem в двумерный массив a и одномерный массив b вводится c клавиатуры расширенная матрица системы, после чего оба массива и переменная n передаются функции Gauss. В функции Gauss для каждого k-го шага вычислений выполняется поиск максимального элемента в k-м столбце матрицы начиная с k-й строки. Номер строки, содержащей максимальный элемент сохраняется в переменной l. В том случае если максимальный элемент находится не в k-й строке, строки с номерами k и l меняются местами. Если же все эти элементы равны нулю, то происходит прекращение выполнения функции Gauss c результатом false. После выбора строки выполняется преобразование матрицы по методу Гаусса. Далее вычисляется решение системы и помещается в массив x. Полученное решение выводится на экран при помощи вспомогательной процедуры WriteX.
2.1.4 Структура разрабатываемой программы показана на блок-схемах основной части и вспомогательных модулей
Основная часть программы



2.1.5 Листинг и результат работы программы
Vector = Array[1..maxn] of Data;
Matrix = Array[1..maxn, 1..maxn] of Data;
Procedure ReadSystem(n: Integer; var a: Matrix; var b: Vector);
Var r, i, j: Integer;
For i := 1 to n do begin
For i := 1 to n do begin
For j := 1 to n do begin
GotoXY(j * 6 + 2, r + i + 1);
GotoXY((n + 1) * 6 + 2, r + i + 1);
Procedure WriteX(n :Integer; x: Vector);
For i := 1 to n do
Writeln(‘x’, i, ‘ = ‘, x[i]);
Function Gauss(n: Integer; a: Matrix; b: Vector; var x:Vector): Boolean;
Если система линейных уравнений совместна (т.е. имеющая решения), то схема программы её решения можно записать так:
· Ввести коэффициенты и правые части уравнений;
· Выполнить прямой ход;
· Выполнить обратный ход;
При прямом ходе нужно: получить первое уравнение в виде, удобном для исключения , разделив полученное 1-е уравнение на коэффициент при
; исключить
из уравнений с номерами 2, 3, …,n; получить второе уравнение в виде, удобном для исключения
; исключить
из уравнений с номерами 3, …,n; получить n–1 уравнение в виде, удобном для получения
; исключить
из уравнения с номером n.
Запишем схему программы этого фрагмента :
Получить i-е уравнение в виде, удобном для исключения : исключить
из уравнений с номерами i + 1, …, nс помощью i-го уравнения
При обратном ходе из последнего уравнения находят Используя это значение, из предпоследнего n˗1 уравнения исключают
и получают
. Найденные значения переменных
,
, …,
позволяют вычислить
.
Детализируем этап обратного хода.
получить ;
for i:= n˗1 downto 1 do вычислить ;
вывести , …,
Опираясь на разработанные схемы, запишем программу решенияnлинейных уравнений с nпеременными методом Гаусса в предположении, что система совместна ( n
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9511 – | 7532 –
или читать все.
Обратной матрицей матрицы $A$ называют такую матрицу $A^<-1>$, при умножении которой на исходную матрицу в качестве результата получается единичная диагональная матрица $E$, то есть матрица, на главной диагонали которой стоят единицы, а вокруг нули.
Обратные матрицы существуют только для квадратных и невырожденных матриц.
Квадратная матрица – это матрица, у которой количество строк и столбцов одинаково.
Вырожденной называют квадратную матрицу, определитель которой $det(A)$ равен нулю.
Свойства обратных квадратных невырожденных матриц
- Определитель матрицы $A$ равен обратному значению определителя для матрицы $A^<-1>$: $det(A) = frac <1>)>$;
- Обратное значение произведения двух квадратных обратимых матриц $A$ и $B$ равно произведению двух обратных им матриц: $(A cdot B)^ <-1>= A^ <-1>cdot B^<-1>$;
- Обратная матрица транспонированной матрицы равна транспонированной обратной матрице: $(A^T)^ <-1>= (A^<-1>)^T$;
- Единичная обратная матрица равна единичной матрице: $E = E^<-1>$;
- Обратная матрица матрицы $A$, умноженной на коэффициент $k$, не равный нулю, равна произведению обратной матрицы $A^<-1>$ и обратного значения коэффициента $k$:
Попробуй обратиться за помощью к преподавателям
Нахождение обратной матрицы методом Гаусса
Получение обратной матрицы методом Гаусса относится к одному из точных (прямых) методов.
Алгоритм для поиска и нахождения обратной матрицы $A$ методом Гаусса:
$A = left( egin
ight)$
Сначала записывается матрица, от которой необходимо найти обратную, а рядом с ней через черту записывается единичная диагональная матрица того же размера, вот так:
$ left( egin
ight) $.
Теперь с помощью метода Гаусса находим верхнюю треугольную матрицу. Для этого, сначала, как правило, либо необходимо разделить верхнюю строку на её старший коэффициент, либо поменять верхнюю строку местами с какой-либо другой, у которой первый коэффициент равен единице, в нашем случае просто меняем местами верхнюю и нижнюю строки:
$ left( egin
ight) $.
Теперь верхнюю строку умножаем на $3$ и вычитаем из нижней:
$ left( egin
ight) $.
Теперь для получения единичной диагонали нужно обнулить элементы, находящиеся справа сверху, также эта часть метода зовётся методом Жордана-Гаусса. Для этого верхнюю строку складываем с нижней, умноженной на $2$:
$ left( egin
ight) $.
Делим нижнюю строку на $-1$, получаем:
$ left( egin
ight) $.
Обратная исходной матрица будет:
Задай вопрос специалистам и получи
ответ уже через 15 минут!
Найти обратную матрицу методом Гаусса.
$A = left( egin
ight) $
Запишем нашу матрицу рядом с единичной:
$A = left( egin
ight) $
Теперь найдём верхнюю треугольную матрицу, для этого сначала из средней строчки вычтем удвоенную верхнюю:
$A = left( egin
ight) $.
Вычитаем из верхней строчки удвоенную вторую, а из третьей строчки просто вторую строку:
$A = left( egin
ight) $.
Делим нижнюю строчку на $2frac<1><2>$:
$A = left( egin
ight) $.
Теперь обнуляем элементы, находящиеся выше главной диагонали, для этого вычитаем из верхней строки третью, умноженную на $7$, а к средней строке добавляем третью, помноженную на $2$:
$A = left( egin
ight) $.
Обратная исходной матрице равна:
$A^ <-1>= left( egin
ight) $.
Так и не нашли ответ
на свой вопрос?
Просто напиши с чем тебе
нужна помощь