Алгоритм решения системы линейных уравнений методом жордана гаусса python

Решение систем линейных уравнений с помощью Python’s Numpy

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

  • Автор записи

Автор: Guest Contributor
Дата записи

Библиотека Numpy может использоваться для выполнения различных математических/научных операций, таких как матричные кросс-и точечные произведения, поиск значений синуса и косинуса, преобразование Фурье и манипулирование формой и т. Д. Слово Numpy-это сокращенное обозначение “Числового питона”.

В этой статье вы увидите, как решить систему линейных уравнений с помощью библиотеки Numpy Python.

Что такое Система линейных уравнений?

В математике система линейных уравнений (или линейная система) представляет собой совокупность двух или более линейных уравнений, включающих один и тот же набор переменных.

Конечная цель решения системы линейных уравнений – найти значения неизвестных переменных. Вот пример системы линейных уравнений с двумя неизвестными переменными, x и y :

Чтобы решить приведенную выше систему линейных уравнений, нам нужно найти значения переменных x и y . Существует множество способов решения такой системы, таких как Исключение переменных, Правило Крамера, Метод сокращения строк и Матричное решение. В этой статье мы рассмотрим матричное решение.

В матричном решении система решаемых линейных уравнений представляется в виде матрицы AX . Например, мы можем представить Уравнение 1 в виде матрицы следующим образом:

Чтобы найти значение переменных x и y в Уравнение 1 , нам нужно найти значения в матрице X . Для этого мы можем взять точечное произведение обратной матрицы A и матрицы B , как показано ниже:

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

Решение системы линейных уравнений с Numpy

Из предыдущего раздела мы знаем, что для решения системы линейных уравнений необходимо выполнить две операции: инверсию матрицы и матричное точечное произведение. Библиотека Numpy из Python поддерживает обе эти операции. Если вы еще не установили библиотеку Numpy, вы можете сделать это с помощью следующей команды pip :

Теперь давайте посмотрим, как решить систему линейных уравнений с помощью библиотеки Numpy.

Использование методов inv() и dot()

Во-первых, мы найдем обратную матрицу A , которую мы определили в предыдущем разделе.

Давайте сначала создадим матрицу A в Python. Для создания матрицы можно использовать метод array модуля Numpy. Матрицу можно рассматривать как список списков, где каждый список представляет собой строку.

В следующем скрипте мы создаем список с именем m_list , который далее содержит два списка: [4,3] и [-5,9] . Эти списки являются двумя строками в матрице A . Чтобы создать матрицу A с помощью Numpy, m_list передается методу array , как показано ниже:

Чтобы найти обратную матрицу, матрица передается в метод linalg.inv() модуля Numpy:

Следующий шаг-найти точечное произведение между обратной матрицей A и матрицей B . Важно отметить, что матричное точечное произведение возможно только между матрицами , если внутренние размеры матриц равны , то есть количество столбцов левой матрицы должно соответствовать количеству строк в правой матрице.

Для поиска точечного продукта с помощью библиотеки Numpy используется функция linalg.dot () . Следующий скрипт находит точечное произведение между обратной матрицей A и матрицей B , которая является решением уравнения 1 .

Вот, 2 и 4 являются ли соответствующие значения для неизвестных x и y in Уравнение 1 . Для проверки, если вы подключаете 2 на месте неизвестного x и 4 на месте неизвестного y в уравнении 4x + 3y вы увидите , что результат будет равен 20.

Давайте теперь решим систему из трех линейных уравнений, как показано ниже:

Приведенное выше уравнение можно решить с помощью библиотеки Numpy следующим образом:

В приведенном выше скрипте методы linalg.inv() и linalg.dot() соединены вместе. Переменная X содержит решение для уравнения 2 и печатается следующим образом:

Значение для неизвестных x , y и z равно 5, 3 и -2 соответственно. Вы можете подключить эти значения в Уравнение 2 и проверить их правильность.

Использование метода solve()

В предыдущих двух примерах мы использовали методы linalg.inv() и linalg.dot() для нахождения решения системы уравнений. Однако библиотека Numpy содержит метод linalg.dsolve () , который может быть использован для непосредственного нахождения решения системы линейных уравнений:

Вы можете видеть, что выход такой же, как и раньше.

Реальный Пример

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

Предположим, продавец фруктов продал 20 манго и 10 апельсинов за один день на общую сумму 350 долларов. На следующий день он продал 17 манго и 22 апельсина за 500 долларов. Если цены на фрукты оставались неизменными в оба дня, то какова была цена одного манго и одного апельсина?

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

Допустим, цена одного манго равна x , а цена одного апельсина равна y . Вышеприведенная проблема может быть преобразована следующим образом:

Решение приведенной выше системы уравнений показано здесь:

Результат показывает, что цена одного манго составляет 10 долларов, а цена одного апельсина-15 долларов.

Видео:Метод Гаусса и метод Жордана-Гаусса ➜ 2 метода за 7 минутСкачать

Метод Гаусса и метод Жордана-Гаусса ➜ 2 метода за 7 минут

Решение систем линейных уравнений с помощью Numpy в Python

Библиотеку Numpy можно использовать для выполнения множества математических и научных операций, таких как скалярное произведение, поиск значений синуса и косинуса, преобразование Фурье и т.д.

Видео:Метод Жордана-Гаусса (метод прямоугольников). ВидеоурокСкачать

Метод Жордана-Гаусса (метод прямоугольников). Видеоурок

Что такое система линейных уравнений?

Википедия определяет систему линейных уравнений как:

В математике система линейных уравнений (или линейная система) – это набор двух или более линейных уравнений, включающих один и тот же набор переменных.

Конечная цель решения системы линейных уравнений – найти значения неизвестных переменных. Вот пример системы линейных уравнений с двумя неизвестными переменными x и y:

Чтобы решить указанную выше систему линейных уравнений, нам нужно найти значения переменных x и y. Есть несколько способов решить такую систему, например, исключение переменных, правило Крамера, метод сокращения строк и матричное решение.

В матричном решении решаемая система линейных уравнений представлена в виде матрицы AX = B. Например, мы можем представить уравнение 1 в виде матрицы следующим образом:

Чтобы найти значение переменных x и y в уравнении 1, нам нужно найти значения в матрице X. Для этого мы можем взять скалярное произведение обратной матрицы A и матрицы B, как показано ниже:

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

Видео:Решение системы уравнений методом ГауссаСкачать

Решение системы уравнений методом Гаусса

Решение

Из предыдущего раздела мы знаем, что для решения системы линейных уравнений нам необходимо выполнить две операции: обращение и скалярное произведение матрицы. Библиотека Numpy от Python поддерживает обе операции. Если вы еще не установили библиотеку Numpy, вы можете сделать это с помощью следующей команды pip:

Давайте теперь посмотрим, как решить систему линейных уравнений с помощью библиотеки Numpy.

Видео:Практика. Решение систем методом Жордана-ГауссаСкачать

Практика. Решение систем методом Жордана-Гаусса

Использование методов inv() и dot()

Сначала мы найдем матрицу, обратную матрице A, которую мы определили в предыдущем разделе.

Давайте сначала создадим матрицу A на Python. Для создания матрицы можно использовать метод массива модуля Numpy. Матрицу можно рассматривать как список списков, где каждый список представляет собой строку.

В следующем скрипте мы создаем список с именем m_list, который дополнительно содержит два списка: [4,3] и [-5,9]. Эти списки представляют собой две строки в матрице A. Чтобы создать матрицу A с помощью Numpy, m_list передается методу массива, как показано ниже:

Чтобы найти обратную матрицу, которая передается методу linalg.inv() модуля Numpy:

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

Чтобы найти точечный продукт с помощью библиотеки Numpy, используется функция linalg.dot(). Следующий скрипт находит скалярное произведение между обратной матрицей A и B, которая является решением уравнения 1.

Здесь 2 и 4 – соответствующие значения для неизвестных x и y в уравнении 1. Чтобы убедиться, что если вы подставите 2 вместо неизвестного x и 4 вместо неизвестного y в уравнении 4x + 3y, вы увидите что результат будет 20.

Давайте теперь решим систему трех линейных уравнений, как показано ниже:

Вышеупомянутое уравнение можно решить с помощью библиотеки Numpy следующим образом:

В приведенном выше скрипте методы linalg.inv() и linalg.dot() связаны вместе. Переменная X содержит решение уравнения 2 и печатается следующим образом:

Значения неизвестных x, y и z равны 5, 3 и -2 соответственно. Вы можете подставить эти значения в уравнение 2 и проверить их правильность.

Видео:Математика без Ху!ни. Метод Гаусса.Скачать

Математика без Ху!ни. Метод Гаусса.

resolve()

В двух предыдущих примерах мы использовали методы linalg.inv() и linalg.dot() для поиска решения системы уравнений. Однако библиотека Numpy содержит метод linalg.solve(), который можно использовать для непосредственного поиска решения системы линейных уравнений:

Вы можете видеть, что результат такой же, как и раньше.

Видео:Метод Жордана-Гаусса решения систем линейных уравнений.Скачать

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

Пример

Давайте посмотрим, как систему линейных уравнений можно использовать для решения реальных задач.

Предположим, продавец фруктов продал 20 манго и 10 апельсинов за один день на общую сумму 350 долларов. На следующий день он продал 17 манго и 22 апельсина за 500 долларов. Если цены на фрукты оставались неизменными в оба дня, какова была цена одного манго и одного апельсина?

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

Допустим, цена одного манго равна x, а цена апельсина – y. Вышеупомянутую проблему можно преобразовать так:

Решение для указанной выше системы уравнений показано здесь:

И вот результат:

Выходные данные показывают, что цена одного манго составляет 10 долларов, а цена одного апельсина – 15 долларов.

Видео:Решение системы линейных уравнений методом ГауссаСкачать

Решение системы линейных уравнений методом Гаусса

Метод Жордана-Гаусса

Вы будете перенаправлены на Автор24

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

Видео:Метод Гаусса и метод Жордана-ГауссаСкачать

Метод Гаусса и метод Жордана-Гаусса

История возникновения метода

Исторически метод Гаусса возник достаточно давно. Решение систем уравнений подобным способом было изложено ещё в древнем китайском математическом трактате под названием “Математика в девяти книгах”, представляющим собой разрозненное собрание решений различных прикладных математических задач.

Некоторые главы этого трактата датируются 150 г. до н.э.

В Европе же первым, кто занимался изучением этого метода, был Исаак Ньютон. Учёный изучил много книг по алгебре того времени и обнаружил, что ни в одной из них не предложено решений систем уравнений со множеством переменных, после чего он предложил свой способ решения.

Его работа на эту тему была опубликована в 1707 г., в это время Ньютон уже больше не работал в Кембридже. После этого в течение века метод появился во многих книгах и учебниках по алгебре.

В 1810 году известный немецкий учёный и математик К. Ф. Гаусс опубликовал свои дополнения к этому методу вместе с другими своими работами по линейной алгебре, после чего метод с получением верхней треугольной матрицы стал широко известен под его именем.

Затем в в конце XIX века геодезист и математик Жордан разработал на основе метода Гаусса свой усовершенствованный вариант с получением диагональной матрицы.

Примечательно, что он сделал это практически одновременно с другим учёным, тем не менее, в названии усовершенствованного метода отразилось только имя геодезиста Жордана.

Видео:МЕТОД ГАУССА 😉 #егэ #математика #профильныйегэ #shorts #огэСкачать

МЕТОД ГАУССА 😉 #егэ #математика #профильныйегэ #shorts #огэ

Практическое применение метода Жордана-Гаусса

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

Готовые работы на аналогичную тему

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

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

Видео:Метод Жордана-Гаусса (01)Скачать

Метод Жордана-Гаусса (01)

Объяснение сущности метода Жордана-Гаусса

Обычно матрица, полученная с помощью метода Жордана-Гаусса выглядит как диагональ с единицами, вот например:

$A = begin 1& 0 &0 &a_1 \ 0& 1 &0 &a_2 \ 0 & 0 & 1 &a_3 end$

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

С помощью метода Гаусса можно найти базисное и общее решение системы уравнений, также как и с помощью метода Жордана-Гаусса.

Базисное решение системы уравнений – это решение, при котором все свободные переменные равны нулю.

Общее решение системы уравнений – это решение, при котором основные переменные выражаются через свободные переменные.

Также методом Жордана-Гаусса производят получение обратных матриц.

Видео:Решение системы уравнений методом Гаусса 4x4Скачать

Решение системы уравнений методом Гаусса 4x4

Получение обратной матрицы методом Жордана-Гаусса

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

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

В результате мы получим диагональную единичную матрицу из исходной, а рядом с ней будет её обратная матрица, полученная из единичной матрицы.

Получение обратной матрицы методом Жордана-Гаусса.

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

$ begin 1& 2 & 1& 0\ 3 & 4& 0 & 1 \ end$

Теперь к нижней строчке прибавляем верхнюю строчку, умноженную на $-3$:

$ begin 1& 2 & 1 & 0\ 0 & -2 & -3 & 1 \ end$

Прибавляем к верхней строчке нижнюю:

$ begin 1& 0 & -2 & 1\ 0 & -2 & -3 & 1 \ end$

Делим вторую строку на $-2$:

$ begin 1& 0 & -2 & 1\ 0 & 1& 3/2 & -1/2 \ end$

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

Чтобы решить СЛАУ методом Жордана-Гаусса, к матрице возможно применить те же элементарные преобразования, что и в случае решения методом Гаусса, а именно:

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

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

Общий алгоритм решения системы уравнений методом Жордана-Гаусса

  1. Выбирают строчку, в которой первый элемент имеет ненулевое значение максимально приближенное к единице и ставят её на место первой строки. Такой элемент называют также “разрешающим”
  2. Приводят значение верхней левой ячейки к $1$ посредством деления или умножения всей верхней строки.
  3. Из оставшихся строчек вычитают верхнюю строчку, помноженную на коэффициент, стоящий на первом месте в строчке, над которой ведутся преобразования.
  4. Далее тоже самое проделывают необходимое количество раз с целью получения треугольной матрицы, в которой все элементы ниже главной диагонали, проходящей слева направо сверху вниз, равны нулю. Последовательность действий, описанных выше, называется прямым ходом преобразования матрицы.
  5. После получения треугольной матрицы затем вычитают последнюю строку из предпоследней, помножив последнюю строку на элемент из предпоследней. На данном этапе в последней и предпоследней строке остаётся по одному коэффициенту. Эту операцию повторяют пока не дойдут до верха матрицы, получив диагональную матрицу. Эти действия носят название обратного хода преобразования матрицы.

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

$begin 3x_1 + 2x_2 – 5x_3 = -1 \ 2x_1 – x_2 + 3x_3 = 13 \ x_1 + 2x_2 – x_3 = 9 end$

Теперь запишем эту систему в виде расширенной матрицы:

$ begin 3& 2 & -5 & -1\ 2 & -1& 3 & 13 \ 1 & 2 & -1 & 9 \ end$

Путём элементарных преобразований методом Гаусса получим следующую матрицу:

$ begin 1& 2 & -1 & 9\ 0 & 1& -1 & 1 \ 0 & 0& 1 & 4 \ end$

Теперь начнём использовать обратный ход и преобразуем эту матрицу чтобы получить диагональ из единиц.

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

$ begin 1& 2 & 0 & 13\ 0 & 1& 0 & 5 \ 0 & 0 & 1 & 4 \ end$

А теперь к верхней строчке прибавим среднюю, умноженную на $-2$:

$ begin 1& 0 & 0 & 3\ 0 & 1& 0 & 5 \ 0 & 0 & 1 & 4 \ end$

Получаем следующую систему:

$begin x_1 = 3 \ x_2 = 5 \ x_3 = 4 end$

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

$begin x_1 – 8x_2 + x_3 — 9x_4 = 6 \ x_1 – 4x_2 – x_3 — 5x_4 = 2 \ -3x_1 + 2x_2 + 8x_3 + 5x_4 = 4 \ 5x_1 + 2x_2 + 2x_3 + 3x_4 = 12 end$

Сначала запишем систему в матричном виде:

$ begin 1& -8 & 1 & -9 & 6 \ -1 & -4& -1 & -5 & 2 \ -3 & 2 & 8 & 5 & 4 \ 5& 2 & 2 & 3 & 12 \ end$

Затем преобразуем до треугольной:

К самой верхней строчке прибавляем вторую строчку, домноженную на $-1$. К третьей строчке прибавляем утроенную самую верхнюю строчку, затем к последней строчке прибавляем самую верхнюю, помноженную на $-5$:

$ begin 1& -8 & 1 & -9 & 6 \ 0 & 4& -2 & 4 & -4 \ 0 & -22 & 11 & -22 & 22 \ 0& 42 & -3 & 48 & -18 \ end$

Теперь вторую строчку необходимо поделить на $2$, третью строчку на на $11$, а самую нижнюю строку делим на 3:

$ begin 1& -8 & 1 & -9 & 6 \ 0 & 2& -1 & 2 & -2 \ 0 & -2 & 1 & -2 & 2 \ 0& 14 & -1 & 16 & -6 \ end$

Удаляем третью строчку, так как она пропорциональна со второй. А к последней строке прибавляем вторую, предварительно домноженную на $-7$:

$ begin 1& -8 & 1 & -9 & 6 \ 0 & 2& -1 & 2 & -2 \ 0& 0 & 6 & 2 & 8 \ end$

Теперь сокращаем последнюю строчку с $2$:

$ begin 1& -8 & 1 & -9 & 6 \ 0 & 2& -1 & 2 & -2 \ 0& 0 & 3 & 1 & 4 \ end$

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

$ begin -3& 24 & -3 & 27 & -18 \ 0 & 6& -3 & 6 & -6 \ 0& 0 & 3 & 1 & 4 \ end$

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

$ begin -3& 24 & 0 & 28 & -14 \ 0 & 6 & 0 & 7 & -2 \ 0& 0 & 3 & 1 & 4 \ end$

Домножаем вторую строчку на $-4$ чтобы получить одинаковые по модулю числа во втором столбце нашей матрицы:

$ begin -3& 24 & 0 & 28 & -14 \ 0 & -24 & 0 & -28 & 8 \ 0& 0 & 3 & 1 & 4 \ end$

Складываем верхнюю строчку со второй:

$ begin -3& 0 & 0 & 0 & -6 \ 0 & -24 & 0 & -28 & 8 \ 0& 0 & 3 & 1 & 4 \ end$

Теперь необходимо разделить верхнюю строчку на $-3$, среднюю строчку на $-24$, а последнюю строчку нужно разделить на 3:

$ begin 1 & 0 & 0 & 0 & 2 \ 0 & 1 & 0 & 7/6 & -1/3 \ 0& 0 & 1 & 1/3 & 4/3 \ end$

Если переписать в виде системы, получим следующее:

$begin x_1 = 2 \ x_2 + fracx_4 = -frac \ x_3 + fracx_4 = frac \ end$

А теперь просто выражаем базисные переменные:

$begin x_1 = 2 \ x_2 = -fracx_4 — frac \ x_3 = -fracx_4 + frac \ end$

Данная система является общим решением уравнения.

Получи деньги за свои студенческие работы

Курсовые, рефераты или другие работы

Автор этой статьи Дата последнего обновления статьи: 12.12.2021

📽️ Видео

Решение системы уравнений методом Гаусса. Бесконечное множество решенийСкачать

Решение системы уравнений методом Гаусса. Бесконечное множество решений

Линейная алгебра, 9 урок, Метод ГауссаСкачать

Линейная алгебра, 9 урок, Метод Гаусса

Система линейных уравнений. Общее решение. Метод ГауссаСкачать

Система линейных уравнений.  Общее решение. Метод Гаусса

метод Гаусса СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ решение СЛАУСкачать

метод Гаусса СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ решение СЛАУ

Нахождение обратной матрицы методом Жордано-ГауссаСкачать

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

2.1 Точные методы решения СЛАУ (Крамера, Гаусса, Жордана, прогонки)Скачать

2.1 Точные методы решения СЛАУ (Крамера, Гаусса, Жордана, прогонки)

Линейная алгебра, Матрицы: Метод Гаусса. Высшая математикаСкачать

Линейная алгебра, Матрицы: Метод Гаусса. Высшая математика

12. Решение систем линейных уравнений методом ГауссаСкачать

12. Решение систем линейных уравнений методом Гаусса

6 способов в одном видеоСкачать

6 способов в одном видео
Поделиться или сохранить к себе: