Методом гаусса жордана решить систему линейных уравнений: Метод Жордана-Гаусса онлайн

6.6. Метод Гаусса-Жордана решения систем линейных уравнений

Данный метод является модификацией метода исключения. Он также имеет прямой и обратный ходы.

Задачей прямого хода является выяснение существования решения системы и при положительном ответе — приведение ее матрицы к верхнему треугольному виду с единичной диагональю. Для этого на прямом ходе для всех значений i (i = 1,…,n) производится обработка элементов аij (j = i,…,n) ведущей строки i и соответствующего элемента bi вектораB, а также обнуление элементов ведущего столбца i под главной диагональю. Вначале проверяют для диагонального элемента условие аii = 0.

Если равенство выполняется, заменяют всю строку i расширенной матрицы на нижележащую k (k > i), у которой элемент столбца i

не равен нулю: аki  0. В том случае, если такой строки нет, то в рассматриваемой подматрице системы путем эквивалентных преобразований получен нулевой столбец, следовательно, ее определитель равен нулю и у нее и у всей исходной системы не существует единственного решения. Для уменьшения погрешности расчетов желательно при обмене выбирать такую нижележащую строку k (k > i), у которой элемент аki столбца i имеет максимальный модуль.

Если диагональный элемент аii  0, то все элементы строки i расширенной матрицы делятся на него. После такого преобразования элемент на главной диагонали аii будет равен 1. Обнуление элементов столбца i под главной диагональю производится аналогично методу Гаусса — к каждой нижележащей строке k (k > i),прибавляется строка

i расширенной матрицы, все элементы которой умножены на коэффициент (-аki).

Задачей обратного хода является приведение матрицы системы к диагональному виду. Он выполняется аналогично методу Гаусса. Поскольку перестановок неизвестных не производится и во всех строках уже выполнено деление на диагональный элемент, то решение исходной системы уравнений равно свободному вектору расширенной системы, полученной в результате обратного хода.

Пример 1. Применить метод Гаусса-Жордана для решения той же системы уравнений, что и в примере 1.

Решение. Расширенная матрица системы Ap имеет тот же вид.

Прямой ход.

1. Обработка строки 1. Так как а11= 4  0, то все элементы строки 1 расширенной матрицы делятся на него. Полученная матрица обозначена A

p1. Для обнуления элементов столбца 1 под главной диагональю вторую строку расширенной матрицы складываем с первой, умноженной на коэффициент (-а21) = 5; третью складываем с первой, умноженной на коэффициент (-а31) = 6. В результате получим новый вид расширенной матрицы Ap1:

2. Обработка строки 2. Диагональный элемент а22= 3/4  0, все элементы строки 2 расширенной матрицы делим на него. Полученная матрица обозначена Ap2. Для обнуления элементов столбца 3 под главной диагональю третью строку расширенной матрицы складываем со второй, умноженной на коэффициент (-а32) = (-1/2). В результате получим новый вид расширенной матрицы A

p2:

3. Обработка строки 3. Диагональный элемент а33= -28/3  0, все элементы строки 3 делим на него. Поскольку прямой ход завершен, матрицу обозначим Aпр:

Обратный ход. Выполняется аналогично методу Гаусса. В итоге в свободном векторе полученной матрицы Aобр сразу получим искомое решение:

Ответ: х1= 2; х2=1; х3=-1.

Алгоритм метода Гаусса-Жордана несколько упрощен по сравнению с методом Гаусса. В нем исключен поиск главного элемента ведущей строки и смена мест переменных, при которой меняются местами столбцы в матрице системы и необходимо запоминать их порядок в специальном векторе. Однако пересылки элементов выполняются быстро, а операция сравнения все равно используется при проверке элементов на главной диагонали. Отказ от поиска максимального элемента в ведущем столбце может привести к увеличению погрешностей расчетов при делении элементов расширенной строки на малый элемент.

При обнулении элементов в столбце i под главной диагональю для каждой нижележащей строки k (k > i) одно деление сокращается (исключен расчет коэффициента (-аki/аii)). При этом устраняется (ni) делений, однако столько же делений затрачивается на преобразование элементов строки i расширенной матрицы, лежащих правее главной диагонали.

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

Р.

Выполненный анализ показывает, что трудоемкость метода Гаусса-Жордана примерно совпадает с трудоемкостью метода Гаусса. Сложности их алгоритмов одинаковы.

Вопросы для проверки знаний.

1. Каким образом в методе Гаусса-Жордана обеспечивается ненулевая величина диагонального элемента ведущей строки ?

2. В чем отличие матрицы, получаемой после прямого хода в методе Гаусса-Жордана от аналогичной матрицы в методе Гаусса ?

3. Почему в свободном векторе расширенной матрицы системы после обратного хода сразу получают решение системы ?

Практическое задание.

1. Решить методом Гаусса-Жордана систему линейных уравнений:

Решение систем линейных уравнений методом Жордана-Гаусса — Студопедия

Поделись  

Алгоритм метода Жордана- Гаусса:

1 шаг. Рассмотрим одно из уравнений системы (1), назовем его разрешающим.

2 шаг. В этом уравнении выберем любое неизвестное с ≠ 0 коэффициентом (если есть возможность, то равным 1), назовем этот коэффициент разрешающим элементом.

3 шаг. Исключим выбранное неизвестное из всех уравнений, кроме разрешающего уравнения.

4 шаг. Повторяем шаги 1-3 для всех уравнений системы. Каждое уравнение должно быть разрешающим только один раз. После конечного числа шагов определяем решение системы или устанавливаем ее несовместность.

Процесс решения проводится в таблицах. Переход от одной таблицы к другой осуществляется по правилам:

1. Разрешающая строка делится на разрешающий элемент.

2. Разрешающий столбец дополняется нулями.

3. Если в разрешающей строке (столбце) имеются нули, то соответствующие им столбцы (строки) переписываются без изменения.

4. Остальные элементы вычисляются по правилу «прямоугольника».

4.Метод Гаусса.

Одним из наиболее удобных методов решения системы линейных уравнений является метод последовательного исключения неизвестных или метод Гаусса.

Пусть дана система (1).

Разделим первое уравнение системы на , получим

Это уравнение умножим на и вычтем из второго, затем те же операции проделаем над всеми остальными уравнениями системы. С помощью таких операций исключим из всех последующих уравнений, начиная со второго, т.е. получим уравнений не содержащих . Аналогичным образом с помощью одного из уравнений полученной системы исключим неизвестное x и т.д. Систему (1) приведем к треугольному виду:

Определитель системы . Из последнего уравнения определим , подставив его значение в предпоследние уравнение, определим , и т.д. до первого уравнения из которого определим .

С практической точки зрения процесс решения облегчится, если проделать все элементарные преобразования с расширенной матрицей.

Две системы линейных уравнений называются эквивалентными или равносильными, если каждое решение первой системы является решением второй и наоборот. Соответствующие расширенные матрицы также являются эквивалентными.

Теорема 1. При элементарных преобразованиях система линейных уравнений преобразуется в равносильную.

ВЕКТОРЫ И СИСТЕМЫ ВЕКТОРОВ

Цель лекции:Рассмотреть прямоугольную систему координат на плоскости и в пространстве; понятие вектора. Научить выполнять действия над векторами.

Ключевые слова:координаты точки на плоскости и в пространстве, радиус – вектор, координатная форма вектора.

План лекции

1. Линейные операции над векторами.

2. Скалярное произведение векторов и его свойства.

3. Линейная зависимость и независимость векторов.

4. Базис и ранг системы векторов.

5. Линейные операторы.

6. Собственные векторы и собственные значения линейного оператора.



линейных уравнений — ГАУСС ДЖОРДАН. Как использовать Python для решения линейных… | от J3 | Jungletronics

Как использовать Python для решения линейной системы #PySeries#Episode 32

!

Числовая линейная алгебра , иногда называемая прикладной линейной алгеброй , представляет собой исследование того, как матричные операции могут использоваться для создания компьютерных алгоритмов, которые эффективно и точно дают приблизительные ответы на вопросы непрерывной математики.

Вот задача для решения:

 Инженер-технолог из электронной промышленности анализирует производственный процесс, в котором он учитывает время сборки (t), количество сотрудников (x) и количество компонентов (n), используемых в конечный продукт, и пришли к этой системе уравнений. 
Системное уравнение, которое необходимо решить с помощью этого метода: GAUSS JORDAN
 Инженер хочет достичь идеальных условий для достижения всех целей с оценочной точностью 0,01 (одна сотая каждой переменной). 

КАК РЕШИТЬ ЭТУ ПРОБЛЕМУ С ИСПОЛЬЗОВАНИЕМ GAUSS JORDAN (настройка разрешения матрицы)?

Первая задача состоит в том, чтобы преобразовать систему в матрицы:

 (уравнение_0) КОЭФФИЦИЕНТЫ] * [ПЕРЕМНАЯ] = [ЗАДАЧА] [A] * [X] = [B] 

Решение может быть получено с помощью матрицы ИДЕНТИЧНОСТИ используя это уравнение:

 (equation_1) (IDENTITY) * (VAR) = (SOLVE) [I] * [X] = [S] 

Как мы можем работать с матрицей IDENTITY?

Мы знаем, что:

Сама матрица, умноженная на обратную, дает МАТРИЦУ ИДЕНТИЧНОСТИ, верно?

 (уравнение_2) [A] * inv[A] = [I] 

Итак, В НАШЕЙ ЗАДАЧЕ (уравнение_0):

 [A] * [X] = [B] 

РЕШЕНИЕ БУДЕТ (уравнение_1 ):

 [I] * [X] = [S] 

Подставляя I в уравнение (1 и 2):

  ([A] * inv[A])  * [X] = [S] 

Перестановка:

 inv[A] *  ([A] * [X])  = [S] 

Но из уравнения (1) имеем [A] * [X] = [B] :

Отсюда следует:

 (s_equation) inv[A] *  [B]  = [S] 

Итак, решение будет дано:

умножение обратная матрица [A] с матрицей [B] \o/

или:

 [S] = inv[A] * [B] 

ЭТО ОБОСНОВАНИЕ ДОЛЖНО ПРИМЕНЯТЬСЯ ЗДЕСЬ!

ДАВАЙТЕ ПРИГОТОВИМСЯ С ПИТОНОМ!!!

Нажмите, чтобы перейти к решению для ноутбука colab ниже 🙂

01#Step — инициализация метода Gauss-jordan (импорт библиотек)

 из матрицы импорта numpy, linalg 
import numpy as np

02#Step — создание матриц с Массивы Numpy (и печать используемой логики:)

 
print("Для 'A * X = B' нам нужно написать как 'I * X = S'") Для 'A * X = B' нам нужно записать как «I * X = S»

matrix_A

 matrix_A = np. array([[2.0, 1.0, 1.0],[0.30, 2.0, 0.25],[1.0, 1.0, 2.0]]) 

Печать matrix_A

 print('matrix_A') 
print(matrix_A) matrix_A [[2. 1. 1. ]
[0,3 2. 0,25]
[1. 1. 2. ]]

matrix_B

 matrix_B = np.array([[39.0],[13.0],[45.0]]) 

Печать matrix_B

 print('matrix_B') 
print(matrix_07)
print(matrix_07) matrix_B
[[39.]
[13.]
[45.]]

03#Шаг — Создание обратной матрицы A:

 print("Зная, что 'A * A_inv = I', решение сводится к 'S = A_inv * B'") 

# создание обратной матрицы matrix_A

 matrix_A_inv   =   linalg.inv(matrix_A) 
print(matrix_A_inv) [[ 0.68807339 -0.18348624 -0.32110092]
[-0.06422018 0.55045872 -0.03669725]
[-0.31192661 -0.18348624 0.67889908]]

04#Step — РЕШЕНИЕ ( s_equation ):

 matrix_S = np.matmul(matrix_A_inv, matrix_B) 
print('matrix_S')
print(matrix_S) matrix_S
[[10. ]
[ 3.]
[16.]]
900:590 Вот и все
 print("Все! Спасибо за прочтение!")  Готово! Спасибо за прочтение поста!  

👉 Блокнот Colab : ссылка

Основано на: Uninter Course Computer Engineer Graduation — Date Aug/2021

Благодарность:

Fernanda Fonseca Degree — докторант в области образования, магистр физики и математики и философия — UNINTER — Бразилия — PR

32#PySeries#Episode — Линейные уравнения — GAUSS JORDAN — Как использовать Python для решения линейной системы (этот)

33#PySeries#Episode — Линейные уравнения — ПРАВИЛО КРЕМЕРА — Как использовать Python для решения линейной системы

34#PySeries#Episode — Линейные уравнения — Линейные уравнения — ГАУСС ЗАЙДЕЛЬ — Как использовать Python для решения линейной системы

Рис. 1. Секрет метода Гаусса-Джордана: обратная матрица! (изображение отсюда)

Gauss-Jordan Исключение • Информатика и машинное обучение

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

  • Поменять местами любые две строки
  • Умножить каждый элемент строки на ненулевой скаляр
  • Заменить строку суммой самой себя и постоянной, кратной другой строке

Мы будем использовать следующие обозначения для этих операций со строками:

  • \(R_i\leftrightarrow R_j\): Замена строки \(i\) и строка \(j\)
  • \(\alpha R_i\): заменить строку \(i\) на \(\alpha\) умножить на строку \(i\)
  • \(R_i+\alpha R_j\): заменить строка \(i\) с суммой строки \(i\) и \(\alpha\) умноженной на строку \(j\)

Алгоритм решения системы линейных уравнений можно описать следующими шагами:

  • Расположите расширенную матрицу системы
  • Используйте операцию со строками в произвольном порядке, чтобы преобразовать расширенную матрицу в уменьшенную форму эхолона строк (RREF):
    1. Крайние левые элементы в каждой строке равны 1, которые называется ведущей записью или сводной
    2. Если столбец содержит ведущую запись, все записи ниже этой ведущей равны нулю
    3. В любых двух последовательных ненулевых строках ведущая запись верхней строки находится слева от ведущей записи нижней ряд
    4. Все строки, полностью состоящие из нулей, появляются внизу матрицы
  • Система несовместима и не имеет решений, если цикл на втором шаге генерирует строку со всеми элементами, кроме самого правого нуля. Для непротиворечивой системы решение можно заменить полученной матрицей.

Допустим, у нас есть следующая система линейных уравнений:

\[\begin{array}{rl} a_{11}x_1 + a_{12}x_2 + \dots + a_{1n}x_n &=b_1\ \ a_{21}x_1 + a_{22}x_2 + \dots + a_{2n}x_n &=b_2\\ …&\\ a_{m1}x_1 + a_{m2}x_2 + \dots + a_{mn }x_n &=b_m\\ \end{массив}\]

Затем мы можем создать (\(m\times n\)) матрицу коэффициентов и правую часть (\(m\times 1\)) вектор-столбца:

\[\left(\begin{array} {cccc} a_{11} & a_{12} & \dots &a_{1n}\\ a_{21} & a_{22} & \dots &a_{2n}\\ \vdots & \vdots & \ddots &\vdots \\ a_{m1} & a_{m2} & \dots &a_{mn}\\ \end{массив}\right)\,\,\,\,\, \left(\begin{массив}{c} b_1 \\ b_2\\ \vdots\\ b_m\\ \end{array}\right)\]

И, наконец, увеличенная \(m\times (n+1)\) матрица.

\[\left(\begin{array}{cccc|c} a_{11} & a_{12} & \dots &a_{1n}&b_1\\ a_{21} & a_{22} & \dots &a_{ 2n}&b_2\\ \vdots & \vdots & \ddots &\vdots&\vdots\\ a_{m1} & a_{m2} & \dots &a_{mn}&b_m\\ \end{массив}\right)\]

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

\[\left(\begin{array}{ccccc|c} 1 & & * & & & * & * \\ & 1 & \underline{*} & & * & *\\ & & & & 1 & \underline{*} & *\\ \end{массив}\right)\]

Первый элемент ненулевых строк всегда начинается с единицы и имеет нули для всех остальных элементов в столбце.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *