Перейти к содержанию
Educora
Университет30 мин76 / 82

Матрицы и действия над ними

Запись матриц, сложение, умножение на число и на матрицу, единичная и транспонированная матрицы; матрица как преобразование плоскости; системы в виде Ax = b, метод Гаусса и ранг матрицы.

Проверь себя
В этом уроке ты узнаешь
  • Складывать матрицы, умножать их на число и друг на друга, транспонировать
  • Описывать повороты и растяжения плоскости с помощью матриц
  • Записывать систему линейных уравнений в виде Ax = b и решать её методом Гаусса
  • Находить ранг матрицы и по нему определять число решений системы

Когда герой компьютерной игры разворачивается, компьютер поворачивает тысячи точек сразу: умножает каждую из них на одну и ту же маленькую таблицу из четырёх чисел. Недельные продажи магазина по товарам и дням, пиксели фотографии, коэффициенты системы уравнений — всё это такие таблицы. В уроке «Системы линейных уравнений» мы решали два уравнения с двумя неизвестными; матрицы позволяют одним систематическим методом справляться с тремя, сотней или миллионом неизвестных.

Запись и виды матриц

Определение
Матрица

Прямоугольная таблица чисел из m строк и n столбцов называется матрицей размера m × n. Число на пересечении i-й строки и j-го столбца — это элемент aᵢⱼ; пишут A = (aᵢⱼ).

Матрицы обозначают заглавными буквами. В тексте будем записывать матрицу по строкам, разделяя строки точкой с запятой: A = [2 −1 0; 4 3 5] — матрица размера 2 × 3 с первой строкой 2, −1, 0. Первый индекс — всегда номер строки, второй — номер столбца: здесь a₁₂ = −1, a₂₃ = 5.

Aj = 1j = 2j = 3
i = 12−10
i = 2435
Матрица A = [2 −1 0; 4 3 5] размера 2 × 3: элемент aᵢⱼ стоит в i-й строке и j-м столбце.
  • Квадратная матрица: m = n; её главная диагональ — элементы a₁₁, a₂₂, …, aₙₙ.
  • Вектор-строка (1 × n) и вектор-столбец (m × 1); например, [3; 1] — столбец.
  • Нулевая матрица O: все элементы равны 0.
  • Единичная матрица I: единицы на главной диагонали, нули в остальных местах; I₂ = [1 0; 0 1].
  • Симметричная матрица: aᵢⱼ = aⱼᵢ, то есть Aᵀ = A (транспонирование объясняется ниже).

Действия с матрицами

Складывать можно только матрицы одного размера: складываются элементы, стоящие на одинаковых местах. Чтобы умножить матрицу на число k, каждый её элемент умножают на k. Эти действия подчиняются привычным правилам: A + B = B + A, k(A + B) = kA + kB.

(A + B)ᵢⱼ = aᵢⱼ + bᵢⱼ, (kA)ᵢⱼ = k · aᵢⱼ
где:
  • A, Bматрицы одного размера m × n
  • kчисло (скаляр)
  • aᵢⱼ, bᵢⱼэлементы в i-й строке и j-м столбце

Произведение матриц AB определено, только если число столбцов A равно числу строк B. Чтобы получить элемент AB в i-й строке и j-м столбце, идём по i-й строке A и по j-му столбцу B, перемножаем соответствующие элементы и складываем произведения.

cᵢⱼ = aᵢ₁b₁ⱼ + aᵢ₂b₂ⱼ + … + aᵢₙbₙⱼ = ∑ₖ aᵢₖ · bₖⱼ
где:
  • cᵢⱼэлемент произведения C = AB
  • Aматрица размера m × n
  • Bматрица размера n × p
  • nобщий «внутренний» размер; результат C имеет размер m × p

Правило «строка на столбец»: A (m × n) · B (n × p) = C (m × p).

Сумма, умножение на число и два произведения

A = [1 2; 3 4], B = [0 1; 5 −2]. Найдите A + B, 3A, AB и BA.

Показать решение
A + B = [1 3; 8 2].
3A = [3 6; 9 12].
AB, первая строка на столбцы: 1·0 + 2·5 = 10, 1·1 + 2·(−2) = −3.
AB, вторая строка на столбцы: 3·0 + 4·5 = 20, 3·1 + 4·(−2) = −5.
AB = [10 −3; 20 −5].
BA: 0·1 + 1·3 = 3, 0·2 + 1·4 = 4, 5·1 + (−2)·3 = −1, 5·2 + (−2)·4 = 2.
BA = [3 4; −1 2], значит, AB ≠ BA.

Другие привычные правила выполняются: (AB)C = A(BC) (ассоциативность), A(B + C) = AB + AC (дистрибутивность) и AI = IA = A — единичная матрица играет роль числа 1. В транспонированной матрице Aᵀ строки становятся столбцами: транспонированная к [2 −1 0; 4 3 5] — это матрица [2 4; −1 3; 0 5] размера 3 × 2.

(Aᵀ)ᵢⱼ = aⱼᵢ, (AB)ᵀ = Bᵀ · Aᵀ
где:
  • Aᵀтранспонированная матрица (размера n × m, если A имеет размер m × n)
  • aⱼᵢэлемент A в j-й строке и i-м столбце

При транспонировании произведения порядок множителей меняется на обратный — как с носками и ботинками: что надели последним, снимают первым.

Матрица как преобразование плоскости

Умножая матрицу 2 × 2 на вектор-столбец [x; y], получаем новый вектор, то есть матрица преобразует плоскость. Такое преобразование линейно: начало координат остаётся на месте, прямые переходят в прямые. Главное наблюдение: первый столбец матрицы — это образ вектора [1; 0], второй — образ [0; 1]. Зная, куда переходят два базисных вектора, знаешь всё преобразование.

R(θ) = [cos θ −sin θ; sin θ cos θ], S = [k₁ 0; 0 k₂]
где:
  • R(θ)поворот вокруг начала координат на угол θ против часовой стрелки
  • Sрастяжение: в k₁ раз вдоль оси x и в k₂ раз вдоль оси y
  • k₁, k₂коэффициенты растяжения (отрицательное значение ещё и отражает)
Поворот на 90°

Поверните точку (3; 1) вокруг начала координат на 90° против часовой стрелки. Затем найдите матрицу двух таких поворотов подряд.

Показать решение
cos 90° = 0, sin 90° = 1, значит, R = [0 −1; 1 0].
R · [3; 1] = [0·3 + (−1)·1; 1·3 + 0·1] = [−1; 3]. Образ — точка (−1; 3).
Проверка: длина не изменилась: √(3² + 1²) = √10 = √((−1)² + 3²).
Два поворота: R · R = [0·0 + (−1)·1 0·(−1) + (−1)·0; 1·0 + 0·1 1·(−1) + 0·0] = [−1 0; 0 −1].
Это R(180°) — поворот на 180°, как и ожидалось.

Выполнить сначала преобразование B, а затем A — то же самое, что умножить на одну матрицу AB: произведение читается справа налево. Именно поэтому умножение матриц определено по правилу «строка на столбец». Некоммутативность тоже становится наглядной: при S = [2 0; 0 1] получаем SR = [0 −2; 1 0], но RS = [0 −1; 2 0]. Повернуть, а потом растянуть — не то же самое, что растянуть, а потом повернуть.

Системы вида Ax = b: метод Гаусса и ранг

Рассмотрим систему
2x + y − z = 8
−3x − y + 2z = −11
−2x + y + 2z = −3
Коротко её записывают как Ax = b, где A = [2 1 −1; −3 −1 2; −2 1 2] — матрица коэффициентов, x = [x; y; z] — столбец неизвестных, b = [8; −11; −3] — столбец свободных членов. Если приписать b как ещё один столбец, получится расширенная матрица [A | b].

A · x = b
где:
  • Aматрица коэффициентов размера m × n
  • xстолбец из n неизвестных
  • bстолбец свободных членов
  • [A | b]расширенная матрица

Метод Гаусса использует три элементарных преобразования строк; ни одно из них не меняет множество решений системы:

  1. Поменять местами две строки.
  2. Умножить строку на ненулевое число.
  3. Прибавить к одной строке другую, умноженную на число.

Цель — ступенчатый вид: каждая строка начинается с большего числа нулей, чем предыдущая, а первый ненулевой элемент строки называется ведущим. Затем неизвестные находят снизу вверх (обратный ход). Ниже Сᵢ обозначает i-ю строку.

Метод Гаусса, 3 × 3

Решите систему выше методом Гаусса.

Показать решение
[A | b]:
С₁: 2 1 −1 | 8
С₂: −3 −1 2 | −11
С₃: −2 1 2 | −3
С₂ → 2С₂ + 3С₁: 0 1 1 | 2 (так не появляются дроби).
С₃ → С₃ + С₁: 0 2 1 | 5.
С₃ → С₃ − 2С₂: 0 0 −1 | 1.
Обратный ход: −z = 1 ⇒ z = −1; y + z = 2 ⇒ y = 3; 2x + y − z = 8 ⇒ 2x + 4 = 8 ⇒ x = 2.
Ответ: (x; y; z) = (2; 3; −1). Проверка во втором уравнении: −6 − 3 − 2 = −11 ✓.
xyzb
21−18
0112
00−11
Ступенчатый вид [A | b]: ведущие элементы 2, 1 и −1. Их три, значит, r(A) = 3.
Определение
Ранг матрицы

Число ненулевых строк (ведущих элементов) в ступенчатом виде матрицы. Оно равно максимальному числу линейно независимых строк и, что замечательно, столбцов. Обозначение: r(A) или rang A.

r(A) = r(A | b)
где:
  • r(A)ранг матрицы коэффициентов
  • r(A | b)ранг расширенной матрицы
  • nчисло неизвестных

Теорема Кронекера — Капелли: система совместна тогда и только тогда, когда эти два ранга равны. Тогда при r(A) = n решение единственно, а при r(A) < n решений бесконечно много (свободных неизвестных n − r(A)). Если r(A) < r(A | b), появляется строка вида 0 = c, где c ≠ 0, и решений нет.

Python
import numpy as np

A = np.array([[1, 2], [3, 4]])
B = np.array([[0, 1], [5, -2]])
print(A @ B)
print(B @ A)

M = np.array([[2, 1, -1], [-3, -1, 2], [-2, 1, 2]])
b = np.array([8, -11, -3])
print(np.linalg.solve(M, b))
print(np.linalg.matrix_rank(M))
▸ Ожидаемый результат
[[10 -3]
 [20 -5]]
[[ 3  4]
 [-1  2]]
[ 2.  3. -1.]
3
numpy проверяет примеры: @ — произведение матриц, solve находит x из Ax = b, matrix_rank даёт ранг. Внимание: в numpy A * B перемножает элементы поэлементно — это не произведение матриц.

Главное

  • У матрицы размера m × n m строк и n столбцов; aᵢⱼ стоит в i-й строке и j-м столбце.
  • AB существует, если число столбцов A равно числу строк B; элемент находится по правилу «строка на столбец», результат имеет размер m × p.
  • В общем случае AB ≠ BA, но (AB)C = A(BC), AI = IA = A и (AB)ᵀ = BᵀAᵀ.
  • Матрица 2 × 2 — линейное преобразование; её столбцы — образы векторов [1; 0] и [0; 1].
  • Метод Гаусса приводит [A | b] к ступенчатому виду; число ведущих элементов — это ранг.
  • Система совместна только при r(A) = r(A | b); решение единственно, если этот ранг равен числу неизвестных.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
A = [1 2; 0 1], B = [3 0; 1 2]. Чему равно AB?