- Складывать матрицы, умножать их на число и друг на друга, транспонировать
- Описывать повороты и растяжения плоскости с помощью матриц
- Записывать систему линейных уравнений в виде 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.
| A | j = 1 | j = 2 | j = 3 |
|---|---|---|---|
| i = 1 | 2 | −1 | 0 |
| i = 2 | 4 | 3 | 5 |
- Квадратная матрица: 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матрицы одного размера m × n
- kчисло (скаляр)
- aᵢⱼ, bᵢⱼэлементы в i-й строке и j-м столбце
Произведение матриц AB определено, только если число столбцов A равно числу строк B. Чтобы получить элемент AB в i-й строке и j-м столбце, идём по i-й строке A и по j-му столбцу 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.
Показать решениеСкрыть решение
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ᵀтранспонированная матрица (размера n × m, если A имеет размер m × n)
- aⱼᵢэлемент A в j-й строке и i-м столбце
При транспонировании произведения порядок множителей меняется на обратный — как с носками и ботинками: что надели последним, снимают первым.
Матрица как преобразование плоскости
Умножая матрицу 2 × 2 на вектор-столбец [x; y], получаем новый вектор, то есть матрица преобразует плоскость. Такое преобразование линейно: начало координат остаётся на месте, прямые переходят в прямые. Главное наблюдение: первый столбец матрицы — это образ вектора [1; 0], второй — образ [0; 1]. Зная, куда переходят два базисных вектора, знаешь всё преобразование.
- R(θ)поворот вокруг начала координат на угол θ против часовой стрелки
- Sрастяжение: в k₁ раз вдоль оси x и в k₂ раз вдоль оси y
- k₁, k₂коэффициенты растяжения (отрицательное значение ещё и отражает)
Поверните точку (3; 1) вокруг начала координат на 90° против часовой стрелки. Затем найдите матрицу двух таких поворотов подряд.
Показать решениеСкрыть решение
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матрица коэффициентов размера m × n
- xстолбец из n неизвестных
- bстолбец свободных членов
- [A | b]расширенная матрица
Метод Гаусса использует три элементарных преобразования строк; ни одно из них не меняет множество решений системы:
- Поменять местами две строки.
- Умножить строку на ненулевое число.
- Прибавить к одной строке другую, умноженную на число.
Цель — ступенчатый вид: каждая строка начинается с большего числа нулей, чем предыдущая, а первый ненулевой элемент строки называется ведущим. Затем неизвестные находят снизу вверх (обратный ход). Ниже Сᵢ обозначает i-ю строку.
Решите систему выше методом Гаусса.
Показать решениеСкрыть решение
С₁: 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 ✓.
| x | y | z | b |
|---|---|---|---|
| 2 | 1 | −1 | 8 |
| 0 | 1 | 1 | 2 |
| 0 | 0 | −1 | 1 |
Число ненулевых строк (ведущих элементов) в ступенчатом виде матрицы. Оно равно максимальному числу линейно независимых строк и, что замечательно, столбцов. Обозначение: r(A) или rang A.
- r(A)ранг матрицы коэффициентов
- r(A | b)ранг расширенной матрицы
- nчисло неизвестных
Теорема Кронекера — Капелли: система совместна тогда и только тогда, когда эти два ранга равны. Тогда при r(A) = n решение единственно, а при r(A) < n решений бесконечно много (свободных неизвестных n − r(A)). Если r(A) < r(A | b), появляется строка вида 0 = c, где c ≠ 0, и решений нет.
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
@ — произведение матриц, 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.