Обратная матрица методом гаусса паскаль abc

Обратная матрица методом гаусса паскаль abc

Программа решения СЛАУ по методу Гаусса

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с

· Выполнить прямой ход;

· Выполнить обратный ход;

При прямом ходе нужно: получить первое уравнение в виде, удобном для исключения , разделив полученное 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$:
Читайте также:  Как разрезать flac на треки в foobar

Попробуй обратиться за помощью к преподавателям

Нахождение обратной матрицы методом Гаусса

Получение обратной матрицы методом Гаусса относится к одному из точных (прямых) методов.

Алгоритм для поиска и нахождения обратной матрицы $A$ методом Гаусса:

$A = left( egin 1 & 2 \ 3 & 5 \ end
ight)$

Сначала записывается матрица, от которой необходимо найти обратную, а рядом с ней через черту записывается единичная диагональная матрица того же размера, вот так:

$ left( egin 1 & 2 & 1 & 0 \ 3 & 5 & 0 & 1 \ end
ight) $.

Теперь с помощью метода Гаусса находим верхнюю треугольную матрицу. Для этого, сначала, как правило, либо необходимо разделить верхнюю строку на её старший коэффициент, либо поменять верхнюю строку местами с какой-либо другой, у которой первый коэффициент равен единице, в нашем случае просто меняем местами верхнюю и нижнюю строки:

$ left( egin 1 & 2 & 0 & 1 \ 3 & 5 & 1 & 0 \ end
ight) $.

Теперь верхнюю строку умножаем на $3$ и вычитаем из нижней:

$ left( egin 1 & 2 & 0 & 1 \ 0 & -1 & 1 & -3 \ end
ight) $.

Теперь для получения единичной диагонали нужно обнулить элементы, находящиеся справа сверху, также эта часть метода зовётся методом Жордана-Гаусса. Для этого верхнюю строку складываем с нижней, умноженной на $2$:

$ left( egin 1 & 0 & 2 & -5 \ 0 & -1 & 1 & -3 \ end
ight) $.

Делим нижнюю строку на $-1$, получаем:

$ left( egin 1 & 0 & 2 & -5 \ 0 & 1 & -1 & 3 \ end
ight) $.

Обратная исходной матрица будет:

Задай вопрос специалистам и получи
ответ уже через 15 минут!

Найти обратную матрицу методом Гаусса.

$A = left( egin 1 & 2 & 3 \ 2 & 5 & 4 \ 0 & 1 & 0.5 end
ight) $

Запишем нашу матрицу рядом с единичной:

Читайте также:  Передать параметры при закрытии формы 1с

$A = left( egin 1 & 2 & 3 & 1 & 0 & 0\ 2 & 5 & 4 & 0 & 1 & 0 \ 0 & 1 & 1/2 & 0 & 0 & 1 end
ight) $

Теперь найдём верхнюю треугольную матрицу, для этого сначала из средней строчки вычтем удвоенную верхнюю:

$A = left( egin 1 & 2 & 3 & 1 & 0 & 0\ 0 & 1 & -2 & -2 & 1 & 0 \ 0 & 1 & 1/2 & 0 & 0 & 1 end
ight) $.

Вычитаем из верхней строчки удвоенную вторую, а из третьей строчки просто вторую строку:

$A = left( egin 1 & 0 & 7 & 5 & -2 & 0\ 0 & 1 & -2 & -2 & 1 & 0 \ 0 & 0 & 2frac<1> <2>& 2 & -1 & 1 end
ight) $.

Делим нижнюю строчку на $2frac<1><2>$:

$A = left( egin 1 & 0 & 7 & 5 & -2 & 0\ 0 & 1 & -2 & -2 & 1 & 0 \ 0 & 0 & 1 & 0.8 & -0.4 & 0.4 end
ight) $.

Теперь обнуляем элементы, находящиеся выше главной диагонали, для этого вычитаем из верхней строки третью, умноженную на $7$, а к средней строке добавляем третью, помноженную на $2$:

$A = left( egin 1 & 0 & 0 & -0.6 & 0.8 & -2.8\ 0 & 1 & 0 & -0.4 & 0.2 & 0.8 \ 0 & 0 & 1 & 0.8 & -0.4 & 0.4 end
ight) $.

Обратная исходной матрице равна:

$A^ <-1>= left( egin -0.6 & 0.8 & -2.8\ -0.4 & 0.2 & 0.8 \ 0.8 & -0.4 & 0.4 end
ight) $.

Так и не нашли ответ
на свой вопрос?

Просто напиши с чем тебе
нужна помощь

Ссылка на основную публикацию
Ноутбук пишет подождите и не включается
В данном материале мы постараемся ответить на вопрос, почему не включается ноутбук. Если не один из аппаратных процессов не активировался...
Недостаточно места в локальном хранилище html5
localstorage HTML Технология Web-хранилища позволяет хранить данные на стороне клиента в браузере и по своей сути очень похожа на cookie,...
Нельзя создавать переменные с пустым именем сбис
В ActionScript, равно как и в таких языках, как Pascal или JavaScript, объявить переменную можно, используя ключевое слово var: var...
Обнаружение ssdp что это за служба
SSDP Название Simple Service Discovery Protocol Уровень (по модели OSI) Сеансовый Семейство TCP/IP Порт/ID 1900/UDP Простой протокол обнаружения сервисов (англ....
Adblock detector