Знакомство с матрицами
medium

Знакомство с матрицами

Понятие и базовые операции.

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

  • Вектор — это просто группа из нескольких чисел, выстроенных в определённой последовательности. Например, рост и вес человека можно представить как вектор (172, 80). Ничего сложного. 
  • У вектора может быть внутри сколько угодно чисел. Главное — чтобы мы договорились, что для нас значат эти числа, и не меняли их местами просто так, произвольно. 
  • Векторы можно складывать, вычитать, умножать. Это чуть сложнее, чем с обычными числами. 
  • У вектора есть понятие линейной зависимости. Грубо говоря — параллельны друг другу векторы или нет. От этого зависит, какие операции можно делать с этими векторами. 

Вектор — это «кирпичик» линейной алгебры. На его основе мы переходим к понятию матрицы. 

Что такое матрица

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

Матрицы принято обозначать большими буквами латинского алфавита вроде А, В, С, D и так далее. 

Числа внутри матрицы называют элементами. Каждый элемент обозначается двумя цифрами: первая цифра указывает на строку, а вторая — на столбец. Это адрес числа внутри матрицы. Например, элемент А₂₃ означает, что нужное число находится во второй строке и третьем столбце. Нумерация элементов нужна для записи формул и устного объяснения того, где находится нужное число в матрице. 

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

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

Общая схема матрицы
Общая схема матрицы
Пример квадратной матрицы с пятью строками и столбцами
Пример квадратной матрицы с пятью строками и столбцами. Записывается как матрица размера 5×5. В числовой матрице мы не нумеруем элементы — они закрепляются за числами по умолчанию. Например, элементу А₂₃ соответствует число три

Простые операции с матрицами

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

И наоборот: если внутри матрицы у большинства элементов знак минус и перед матрицей стоит минус, то минус можно внести в матрицу.

Выносим минус за пределы матрицы и получаем вместо двадцати одного отрицательного элемента — четыре
Выносим минус за пределы матрицы и получаем вместо двадцати одного отрицательного элемента — четыре
Общая схема матрицы
Перед матрицей минус, и внутри у большинства элементов минус. Вносим минус в матрицу и делаем её удобной для дальнейших вычислений

Умножение матрицы на число. Для умножения матрицы на число достаточно каждый элемент матрицы умножить на это число.

Пример умножения матрицы на число
Пример умножения матрицы на число

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

⚠️ При этом в матрице запрещено в произвольном порядке менять элементы. Зато можно полностью менять местами строки или столбцы. Если мы поменяем местами первую и вторую строку, то это останется прежняя матрица.

Схема транспонирования матриц
Схема транспонирования матриц: первая строка переходит в первый столбец, вторая строка — во второй столбец и так далее в зависимости от количества элементов матрицы
Пример транспонирования
Пример транспонирования. Транспонированная матрица обозначается буквой той же матрицы, из которой она получилась + надстрочечный индекс в виде печатной буквы «Т»
Матрицу можно перетасовывать, но это нужно делать по правилам
Матрицу можно перетасовывать, но это нужно делать по правилам. Транспонирование — одно из таких правил

Сложение и вычитание матриц

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

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

Умножение матриц 

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

  1. У нас есть две матрицы A и B. Их нужно перемножить, чтобы получить новую матрицу C. 
  2. Размер матрицы A два на два: есть две строки и два столбца. Первая строка состоит из элементов А₁₁ и А₁₂; вторая — А₂₁ и А₂₂. 
  3. У матрицы B такая же размерность: есть две строки и два столбца. Первая строка состоит из элементов B₁₁ и B₁₂; вторая — B₂₁ и B₂₂. 
  4. У нас две одинаковые по размеру матрицы с двумя строками и столбцами. Это значит, что и матрица C будет размером два на два. Первая строка будет состоять из элементов C₁₁ и C₁₂; вторая — C₂₁ и C₂₂. 
  5. Считаем элемент C₁₁. Умножаем первый элемент первой строки матрицы А (А₁₁) на первый элемент первого столбика матрицы B (B₁₁). Это первая часть, после которой ставим знак плюс. Вторая часть: умножаем второй элемент первой строчки матрицы А (А₁₂) на второй элемент первого столбика матрицы B (B₂₁). Складываем обе части и получаем первый элемент первой строки матрицы С (C₁₁). 
  6. Считаем элемент C₁₂. Умножаем первый элемент первой строки матрицы А (А₁₁) на первый элемент второго столбика матрицы B (B₁₂). Это первая часть. Вторая часть: умножаем второй элемент первой строчки матрицы А (А₁₂) на второй элемент второго столбика матрицы B (B₂₂). Складываем части и получаем второй элемент первой строки матрицы С (C₁₂). 
  7. Считаем элемент C₂₁. Умножаем первый элемент второй строки матрицы А (А₂₁) на первый элемент первого столбика матрицы B (B₁₁). Это первая часть. Вторая часть: умножаем второй элемент второй строки матрицы А (А₂₂) на второй элемент первого столбика матрицы B (B₂₁). Складываем части и получаем первый элемент второй строки матрицы С (C₂₁). 
  8. Считаем элемент C₂₂. Умножаем первый элемент второй строки матрицы А (А₂₁) на первый элемент второго столбика матрицы B (B₁₂). Это первая часть. Вторая часть: умножаем второй элемент второй строки матрицы А (А₂₂) на второй элемент второго столбика матрицы B (B₂₂). Складываем части и получаем второй элемент второй строки матрицы С (C₂₂). 

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

Формула умножения матриц
Формула умножения матриц
Пример умножения квадратных матриц размерностью 2×2
Пример умножения квадратных матриц размерностью 2×2

Что дальше 

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

Текст:

Александр Бабаскин

Редактура:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
«Программисты, которые умеют писать алгоритмы, — нишевая профессия»
«Программисты, которые умеют писать алгоритмы, — нишевая профессия»

Мнение работодателя Коли Митина.

easy
Single Page Application: как работает сайт-приложение
Single Page Application: как работает сайт-приложение

Это не сайт и не приложение. Что это?

easy
MySQL — царица баз
MySQL — царица баз

Она сложная, но с ней всё просто.

easy
Как на самом деле работает Wi-Fi
Как на самом деле работает Wi-Fi

Пособие для тех, кому нужно больше, чем пароль.

easy
Новые чудеса оптимизации: как делали игру «Принц Персии»
Новые чудеса оптимизации: как делали игру «Принц Персии»

Как сделать плавную анимацию, если доступно всего несколько кадров

easy
Что такое пинг и как его проверить
Что такое пинг и как его проверить

Путешествие туда и обратно

easy
Зачем нужно нагрузочное тестирование
Зачем нужно нагрузочное тестирование

Когда обычного тестирования уже недостаточно

easy
Если вы гуманитарий, вы очень нужны в ИТ
Если вы гуманитарий, вы очень нужны в ИТ

Самое простое объяснение, почему технарям не обойтись без гуманитариев.

easy
Создаём и наполняем базу данных SQLite в Python
Создаём и наполняем базу данных SQLite в Python

Ничего сложного, нужен только SQL

easy
medium