Автор оригинала: Team Python Pool.
Исключение Гаусса в Python также известно как сокращение строк. Это алгоритм линейной алгебры, используемый для решения системы линейных уравнений.
Привет, кодеры!! В этой статье мы познакомимся с устранением гаусса в python. Сначала мы поймем, что это значит, изучим его алгоритм, а затем реализуем его на Python. Итак, начнем!
Что такое исключение Гаусса?
Исключение Гаусса также известно как сокращение строк. Это алгоритм линейной алгебры, используемый для решения системы линейных уравнений. В основном последовательность операций выполняется над матрицей коэффициентов. Задействованные операции таковы:
- Замена двух рядов
- Умножение строки на ненулевое число
- Добавление кратного одной строки к другой строке
Эти операции выполняются до тех пор, пока нижний левый угол матрицы не будет заполнен нулями, насколько это возможно.
Иллюстрация исключения Гаусса на примере:
Рассмотрим следующую систему линейных уравнений:
- 2x + y–………………….L1
- -3x – y + 2z = -11…………..L2
- -2x + y + 2z = -3…………..L3
Дополненная матрица приведенной выше системы уравнений будет иметь вид:
Наша задача-сделать так, чтобы нижний левый угол матрицы был как можно больше заполнен нулями. Для этого мы выполним последовательность операций.
L2 + 3/2L1 -> L2
L3 + L1 -> L3
Когда мы выполняем приведенное выше уравнение на дополненной матрице, мы получаем:
расширенная матрица гауссовского исключения python
L3 + -4L2 -> L3
Когда мы выполняем вышеописанную операцию, мы получаем в результате вышеописанную расширенную матрицу. Как вы можете видеть, матрица теперь имеет форму эшелона (треугольная форма).
L2 + 1/2 L3 -> L2
L1 – L3 -> L1
При выполнении описанной выше операции мы получаем следующую матрицу:
Мы все еще можем добавить больше нулей в эту матрицу, поэтому давайте продолжим.
Мы все еще можем добавить больше нулей в эту матрицу, поэтому давайте продолжим.
-L3 -> L3
Когда мы выполняем вышеуказанные операции, мы получаем следующую матрицу:
L1 – L2 -> L1
1/2 L2 -> L1
В результате приведенной выше операции строки мы получаем следующий результат:
Поскольку мы не можем уменьшить матрицу дальше, мы остановим алгоритм. Решением вышеприведенных уравнений являются:
- икс
- y
- z = -1
Реализация в Python:
import numpy as np import sys (input('Enter number of unknowns: ')).zeros((n,n+1)).zeros(n) print('Enter Augmented Matrix Coefficients:') for i in range(n): for j in range(n+1): (input( 'a['+str(i)+']['+Divide by zero detected!') for j in range(i+1, n): [j][i]/a[i][i] for k in range(n+1): [j][k] - ratio * a[i][k] [n-1][n]/a[n-1][n-1] for i in range(n-2,-1,-1): [i][n] for j in range(i+1,n): [i] - a[i][j]*x[j] [i]/a[i][i] print('\nThe solution is: ') for i in range(n): print('X%d = %0.2f' %(i,x[i]),)
Вывод и объяснение:
Итак, это будет вывод вышеприведенного кода. Дайте мне знать
- Сначала мы импортировали необходимые библиотеки, которые будем использовать в нашей программе.
- Затем мы спросили пользователя о количестве неизвестных переменных, которые мы храним в переменной “n”.
- После этого мы создали массив numpy ‘a’ размером nx(n+1) и инициализировали его нулем. Мы будем хранить нашу дополненную матрицу в этом массиве.
- Другой массив ” x ” размера n также создается и инициализируется нулем. Мы будем использовать этот массив для хранения вектора решения.
- Другой массив ” x ” размера n также создается и инициализируется нулем. Мы будем использовать этот массив для хранения вектора решения.
- После этого мы применили метод исключения Гаусса.
- Если какой-либо из коэффициентов равен 0, то при делении возникает ошибка
- После этого мы применяем href=”http://www.math.usm.edu/lambers/mat 610/sum 10/lecture 4.pdf”> метод обратной подстановки для получения желаемого результата. href=”http://www.math.usm.edu/lambers/mat 610/sum 10/lecture 4.pdf”> метод обратной подстановки для получения желаемого результата.
Должен Читать
- Топ-10 алгоритмов для науки о данных
- Таблица Matplotlib в Python С примерами
- Сложение матриц в Python | Сложение двух матриц
Вывод:
На этом мы заканчиваем нашу статью. Надеюсь, вы узнали об устранении Гаусса и его реализации в Python.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!