Онлайн решение линейных уравнений методом гаусса: Онлайн калькулятор. Решение систем линейных уравнений. Метод Гаусса

Содержание

Линейная алгебра для машинного обучения: решение системы линейных уравнений | by Khuyen Tran

Как алгебра является подчеркнутым механизмом алгоритмов машинного обучения

Давайте начнем с обычного графика в науке о данных: Диаграмма рассеяния

Получена из Chartio

График выше представляет корреляцию между диаметром и высотой дерево. Каждая точка является образцом дерева. Наша задача состоит в том, чтобы найти наиболее подходящую линию для предсказания высоты при заданном диаметре.

Как мы можем это сделать? Вот тогда и нужна линейная алгебра.

Получено от Edutin Academy

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

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

А как лучше всего понять линейную алгебру? Реализуйте это. Существует 2 метода решения системы линейных уравнений: прямые методы и итерационные методы. В данной статье мы будем использовать прямые методы, в частности метод Гаусса.

Так как чаще всего мы работаем с данными со многими свойствами (или переменными). Мы сделаем нашу систему линейных уравнений более общей, работая с трехмерными данными.

Давайте создадим пример для приведенного выше графика:

, где коэффициенты x_0, x_1 и x_2 и соответствующие значения 8, 4, 5 являются образцами точек на графике. Уравнения можно разбить на матрицы A, x и b

, где A и b — матрицы известных констант, x — вектор неизвестных переменных.

 A = np.array([[2, 1, 5], 
[4, 4, -4],
[1, 3, 1]])
b= np. array([8,4,5 ])

Объедините матрицы A и b, чтобы получить

 n = A.shape[0] 

C=np.c_[A,b.reshape(-1,1)]

Теперь мы готовы решить наши проблемы в два шага:

  1. Применить исключение Гаусса к уменьшите приведенную выше матрицу до треугольной матрицы

, которая может быть представлена ​​уравнением:

2. Примените обратную замену, чтобы получить результат

Начнем с первого шага

Чтобы получить эту матрицу:

идея проста :

  • Начнем со значения разворота в первой строке и первом столбце: строка =0, столбец = 0
  • Найдите максимальное абсолютное значение столбца сводной таблицы. Если все значения в этом столбце равны 0, мы останавливаемся.
  • В противном случае мы поменяем местами E_0 и E_1

Затем примените эквивалентные преобразования, чтобы преобразовать все записи ниже опорной точки в 0:

  1. Найдите соотношение между элементом j,i и опорной точкой i,i (т. е. 2 /4 = 1/2).
  2. Умножьте все элементы в E0 на 1/2. Вычтите все элементы в строке 1 на 1/2 E0 (т. е. 2-(4*1/2)=2–2 =0)
 #строка 
для j в диапазоне (i+1, n):

c = C[j,i]/C[i,i]
C[j,:] = C[j,:] - c*C [i,:]

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

Повторите процедуру:

Опорная точка: строка = 1, столбец = 1. Максимальное абсолютное значение: 2 в строке 2. Затем переставьте E_1 и E_2

Применение эквивалентного преобразования для преобразования всех записей ниже опорной в 0

Собери все вместе

Отлично! Теперь у нас есть система уравнений:

Как только мы доберемся до этой точки, эту систему уравнений будет невероятно легко решить с помощью обратной подстановки

Исключением Гаусса мы получим треугольную матрицу

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

Начните со строки 3. Разделите 8 на 8, чтобы получить значение x_3.

 X[n-1] = T[n-1,n]/T[n-1,n-1] 

Теперь во второй строке имеем:

x_2 можно легко решить с помощью

Повторить с x1

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

Отлично! Мы получаем решение, как мы предсказываем. Чтобы убедиться, что это правильно при работе с большей матрицей, мы можем использовать встроенную функцию в NumPy

 >>> np.linalg.solve(A,b)array([1., 1., 1.] ) 

Мы получаем вектор решений, где каждый элемент соответствует x_0, x_1, x_2

Поздравляем, вы продвинулись так далеко! Надеюсь, эта статья поможет вам понять, что такое линейная алгебра и один из механизмов решения системы линейных уравнений. Я стараюсь сделать эту статью максимально понятной. Но я понимаю, что это может быть сложно, если вы не знакомы с линейной алгеброй. Это нормально! Один шаг за раз. Чем больше вы знакомитесь с линейной алгеброй, тем больше вы ее понимаете.

Вы можете поиграть и поэкспериментировать с приведенными выше кодами на моем Github.

Мне нравится писать об основных концепциях науки о данных и экспериментировать с различными алгоритмами и инструментами обработки данных. Вы можете связаться со мной в LinkedIn и Twitter.

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

Как создать матричный модуль с нуля

Если вы импортировали Numpy для матричных операций, но не знаете, как строится модуль, эта статья покажет…

в направлении datascience.com

Сроки для эффективного кода Python

Как сравнить производительность между списком , набор и другие методы

в направлении datascience.com

Как изучать науку о данных, когда жизнь не дает вам передышки

Я изо всех сил пытался посвятить время науке о данных.

Но поиск новых стратегий позволяет мне повысить скорость обучения и…

На направлении adatascience.com

Словарь в качестве альтернативы IF-ELSE

Используйте словарь для создания более чистого кода функции IF-ELSE

к DATASTASCIENCE.com

СЛАДКА В качестве альтернативы IF-ELSE

8

в качестве альтернативы IF-ELSE

8

. Использование словарей для создания более чистого кода функции «если-иначе»

в направлении datascience.com

Численный метод — третий семестр

Решение нелинейных уравнений

1.1 Ошибки в численных расчетах, источники ошибок, распространение ошибок, обзор теоремы Тейлора 1.2 Решение нелинейных уравнений методом проб и ошибок, Half-I. . .

1.1 Ошибки в численных расчетах, источники ошибок, распространение ошибок, обзор теоремы Тейлора 1.2 Решение нелинейных уравнений методом проб и ошибок, методом полуинтервала и сходимостью, методом Ньютона и сходимостью, методом секущих и сходимостью, итерацией с фиксированной точкой и ее сходимостью, методом Ньютона для вычисления нескольких корней, методом Хорнера

Читать примечание

Интерполяция и регрессия

2. 1 Интерполяция и экстраполяция, интерполяция Лагранжа, интерполяция Ньютона с использованием разделенных разностей, разностей вперед и назад, кубический сплайн, инт. . .

2.1 Интерполяция и экстраполяция, интерполяция Лагранжа, интерполяция Ньютона с использованием разделенных разностей, прямые и обратные разности, интерполяция кубическим сплайном 2.2 Знакомство с регрессией, регрессией и интерполяцией, методом наименьших квадратов, линейной регрессией, нелинейной регрессией путем подбора экспоненциальной и полиномиальной

Читать примечание

Численное дифференцирование и интегрирование

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

3.1 Дифференцирование непрерывных функций (формула двух и трех точек), дифференцирование табличных функций с использованием разностей Ньютона, максимумов и минимумов табличных функций 3. 2 Квадратурные формулы Ньютона-Коута, правило трапеций, многосегментное правило трапеций, правило Симпсона 1/3, многосегментное правило Симпсона 1/3, правило Симпсона 3/8, многосегментное правило Симпсона 3/8, алгоритм интегрирования Гаусса, Интеграция Ромберга

Читать примечание

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

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

4.1 Обзор существования решений и свойств матриц, метод исключения Гаусса, поворот, метод Гаусса-Жордана, обращение матрицы методом Гаусса-Жордана 4.2 Матричная факторизация и решение системы линейных уравнений с использованием алгоритма Дулиттла и Холецкого 4.3. Итерационные решения системы линейных уравнений, метод итераций Якоби, метод Гаусса-Зейдала. 4.4 Задачи на собственные значения и собственные векторы. Решение задач на собственные значения степенным методом.

Прочитать примечание

Решение обыкновенных дифференциальных уравнений

5.

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

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