Урок 2.3. Матрицы, системы уравнений, многострочные формулы
Осваиваем продвинутые математические конструкции: матрицы (pmatrix, bmatrix, vmatrix), системы уравнений (cases), многострочные формулы (align, gather, multline). Учимся выбирать правильное окружение для каждой задачи и комбинировать их для сложных выкладок.
Матрицы, системы уравнений и многострочные формулы – это следующий уровень сложности после базовых дробей и степеней. Эти конструкции встречаются практически в любой серьезной научной работе: от линейной алгебры до машинного обучения, от физики до экономики. В LaTeX для них предусмотрены специальные окружения из пакета amsmath, которые дают полный контроль над выравниванием и оформлением.
Все окружения, которые мы рассмотрим в этом уроке, требуют подключения пакета amsmath. Убедитесь, что он подключен в преамбуле: \usepackage{amsmath}. Без этого пакета большинство команд просто не будут работать.
Матрицы: базовые окружения
В LaTeX матрицы создаются через специальные окружения, которые различаются типом обрамляющих скобок. Внутри матрицы элементы разделяются символом & (между колонками) и \\(между строками).
Запомните мнемонику: маленькая буква p – parentheses (круглые), маленькая b – brackets (квадратные), большая B – Braces (фигурные), маленькая v – vertical bars (одинарные), большая V – Vertical bars (двойные). Это поможет быстро выбрать нужное окружение.
% Матрица без скобок (окружение matrix)
\[
\begin{matrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{matrix}
\]
% Матрица в круглых скобках (pmatrix)
\[
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\]
% Матрица в квадратных скобках (bmatrix)
\[
\begin{bmatrix}
1 & 0 & 0 \\
0 & 1 & 0 \\
0 & 0 & 1
\end{bmatrix}
\]
% Матрица в фигурных скобках (Bmatrix)
\[
\begin{Bmatrix}
x_1 \\
x_2 \\
x_3
\end{Bmatrix}
\]
% Матрица с одинарными вертикальными линиями (vmatrix) — определитель
\[
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix} = ad - bc
\]
% Матрица с двойными вертикальными линиями (Vmatrix) — норма
\[
\begin{Vmatrix}
x \\
y
\end{Vmatrix}
\]
Матрицы с точками (продолжение)
Если матрица большая и нужно показать, что она продолжается, используйте команды \cdots(горизонтальные точки), \vdots (вертикальные точки) и \ddots (диагональные точки).
% Единичная матрица произвольного размера
\[
I_n = \begin{pmatrix}
1 & 0 & \cdots & 0 \\
0 & 1 & \cdots & 0 \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \cdots & 1
\end{pmatrix}
\]
% Матрица с точками
\[
A = \begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{bmatrix}
\]
Матрицы внутри формул
Матрицы можно использовать внутри формул: умножать, складывать, возводить в степень.
Обратите внимание: матрица — это просто объект внутри математического режима. Вы можете использовать её в любых формулах: умножать на скаляры, складывать с другими матрицами, заключать в дополнительные скобки через \left и \right.
% Умножение матрицы на вектор
\[
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\begin{pmatrix}
x \\
y
\end{pmatrix}
=
\begin{pmatrix}
ax + by \\
cx + dy
\end{pmatrix}
\]
% Транспонирование
\[
A^T = \begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}^T
= \begin{bmatrix}
1 & 3 \\
2 & 4
\end{bmatrix}
\]
% Обратная матрица
\[
A^{-1} = \frac{1}{ad - bc}
\begin{pmatrix}
d & -b \\
-c & a
\end{pmatrix}
\]
Системы уравнений: окружение cases
Для кусочно-заданных функций и систем уравнений используется окружение cases. Оно автоматически ставит фигурную скобку слева.
В окружении cases можно использовать символ & для выравнивания колонок. Обычно первая колонка – это выражения, вторая – условия (после запятой). Команда \text{если } позволяет вставить обычный текст внутри системы уравнений.
% Простая система уравнений
\[
\begin{cases}
x + y = 1 \\
x - y = 0
\end{cases}
\]
% Кусочно-заданная функция (модуль)
\[
|x| = \begin{cases}
x, & \text{если } x \geq 0 \\
-x, & \text{если } x < 0
\end{cases}
\]
% Функция ReLU из машинного обучения
\[
f(x) = \begin{cases}
0, & \text{если } x \leq 0 \\
x, & \text{если } x > 0
\end{cases}
\]
% Сложная система с выравниванием
\[
\begin{cases}
3x + 2y - z &= 1 \\
2x - 2y + 4z &= -2 \\
-x + \frac{1}{2}y - z &= 0
\end{cases}
\]
Системы с выравниванием: окружение aligned
Если вам нужно больше контроля над выравниванием, используйте окружение aligned. Оно не добавляет фигурную скобку автоматически, но позволяет точно задать точки выравнивания.
% Система с выравниванием по знаку равно
\[
\begin{aligned}
f(x) &= x^2 + 2x + 1 \\
&= (x + 1)^2
\end{aligned}
\]
% Система с фигурной скобкой и выравниванием
\[
\left\{
\begin{aligned}
x + y &= 1 \\
x - y &= 0
\end{aligned}
\right.
\]
% Множественные выравнивания
\[
\begin{aligned}
(a + b)^2 &= (a + b)(a + b) \\
&= a^2 + ab + ba + b^2 \\
&= a^2 + 2ab + b^2
\end{aligned}
\]
Многострочные формулы: окружение align
Когда формула слишком длинная для одной строки или нужно выровнять несколько формул друг под другом, используется окружение align. Это один из самых мощных инструментов amsmath.
Окружение align автоматически нумерует каждую строку. Если нумерация не нужна, используйте align* (со звездочкой). Символ & задает точку выравнивания – обычно его ставят перед знаком =, чтобы все равенства выстроились в одну колонку.
% Выравнивание нескольких формул по знаку равно
\begin{align}
f(x) &= x^2 + 2x + 1 \\
g(x) &= \sin(x) \\
h(x) &= e^x
\end{align}
% Выравнивание без нумерации (align*)
\begin{align*}
f(x) &= x^2 + 2x + 1 \\
g(x) &= \sin(x) \\
h(x) &= e^x
\end{align*}
% Выравнивание по нескольким точкам
\begin{align}
a_{11} &= 1 & a_{12} &= 2 & a_{13} &= 3 \\
a_{21} &= 4 & a_{22} &= 5 & a_{23} &= 6 \\
a_{31} &= 7 & a_{32} &= 8 & a_{33} &= 9
\end{align}
Окружение gather: центрирование без выравнивания
Если вам нужно просто вывести несколько формул друг под другом без выравнивания по конкретному символу, используйте окружение gather.
% Формулы центрируются независимо
\begin{gather}
a + b = c \\
x^2 + y^2 = z^2 \\
E = mc^2
\end{gather}
% Без нумерации
\begin{gather*}
a + b = c \\
x^2 + y^2 = z^2 \\
E = mc^2
\end{gather*}
Окружение multline: длинные формулы
Для очень длинных формул, которые не помещаются в одну строку, используется окружение multline. Первая строка выравнивается по левому краю, последняя – по правому, промежуточные – по центру.
Окружение multline нумерует только последнюю строку. Если нужно нумеровать все строки, используйте multline с командами \label на каждой строке. На практике multline используется реже, чем align, но для длинных сумм и многочленов это идеальный выбор.
\begin{multline}
f(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + a_4 x^4 + \\
a_5 x^5 + a_6 x^6 + a_7 x^7 + a_8 x^8 + a_9 x^9 + \\
a_{10} x^{10} + \cdots + a_n x^n
\end{multline}
% Без нумерации
\begin{multline*}
\sum_{i=1}^{n} \sum_{j=1}^{m} \sum_{k=1}^{p} a_{ij} b_{jk} c_{ki} = \\
\sum_{i=1}^{n} \sum_{k=1}^{p} \left(\sum_{j=1}^{m} a_{ij} b_{jk}\right) c_{ki}
\end{multline*}
Разрыв формулы внутри абзаца
Иногда нужно разорвать одну формулу на несколько строк. Для этого используется команда \splitfrac из amsmath (для дробей) или окружение split внутри equation.
% Длинная формула с разрывом через split
\begin{equation}
\begin{split}
f(x, y, z) &= x^3 + y^3 + z^3 + 3xy^2 + 3xz^2 + \\
&\quad 3yx^2 + 3yz^2 + 3zx^2 + 3zy^2 + 6xyz
\end{split}
\end{equation}
% Дробь с разрывом числителя
\[
\frac{\splitfrac{a + b + c + d + e + f + g +}{h + i + j + k + l + m + n}}{x + y + z}
\]
Практический пример: система линейных уравнений в матричной форме
Давайте соберем всё вместе в типичной задаче линейной алгебры.
В этом примере мы используем практически все инструменты модуля: матрицы разных типов (pmatrix, vmatrix), системы уравнений (cases), многострочные формулы (align, aligned), ссылки на формулы (\label, \ref), а также команды \underbrace для пояснений под формулами. Это типичный стиль изложения в научных статьях по математике и инженерии.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\section{Система линейных уравнений}
Рассмотрим систему линейных уравнений:
\begin{equation}
\begin{cases}
2x_1 + 3x_2 - x_3 = 5 \\
x_1 - 2x_2 + 4x_3 = -2 \\
3x_1 + x_2 + 2x_3 = 8
\end{cases}
\label{eq:system}
\end{equation}
Эту систему можно записать в матричной форме:
\begin{equation}
\underbrace{
\begin{pmatrix}
2 & 3 & -1 \\
1 & -2 & 4 \\
3 & 1 & 2
\end{pmatrix}
}_{A}
\underbrace{
\begin{pmatrix}
x_1 \\
x_2 \\
x_3
\end{pmatrix}
}_{\mathbf{x}}
=
\underbrace{
\begin{pmatrix}
5 \\
-2 \\
8
\end{pmatrix}
}_{\mathbf{b}}
\label{eq:matrix-form}
\end{equation}
или короче: $A\mathbf{x} = \mathbf{b}$.
Решение существует, если определитель матрицы $A$ не равен нулю:
\begin{equation}
\det(A) = \begin{vmatrix}
2 & 3 & -1 \\
1 & -2 & 4 \\
3 & 1 & 2
\end{vmatrix}
= 2(-4 - 4) - 3(2 - 12) + (-1)(1 + 6)
= -16 + 30 - 7 = 7 \neq 0
\end{equation}
Следовательно, решение единственно и может быть найдено по формуле:
\begin{equation}
\mathbf{x} = A^{-1}\mathbf{b}
\end{equation}
где обратная матрица вычисляется как:
\begin{align}
A^{-1} &= \frac{1}{\det(A)} \text{adj}(A) \\
&= \frac{1}{7}
\begin{pmatrix}
-8 & -7 & 10 \\
10 & 7 & -9 \\
7 & 7 & -7
\end{pmatrix}
\end{align}
Подставляя значения, получаем решение:
\begin{equation}
\begin{aligned}
x_1 &= \frac{1}{7}(-8 \cdot 5 - 7 \cdot (-2) + 10 \cdot 8) = \frac{44}{7} \\
x_2 &= \frac{1}{7}(10 \cdot 5 + 7 \cdot (-2) - 9 \cdot 8) = -\frac{8}{7} \\
x_3 &= \frac{1}{7}(7 \cdot 5 + 7 \cdot (-2) - 7 \cdot 8) = -\frac{35}{7} = -5
\end{aligned}
\end{equation}
\end{document}
Дополнительные полезные команды
% \underbrace и \overbrace — скобки под и над выражением
\[
\underbrace{a + b + c}_{\text{сумма}} + \overbrace{x \cdot y}^{\text{произведение}}
\]
% \underleftarrow и \underrightarrow — стрелки под выражением
\[
\underleftarrow{AB} \quad \text{и} \quad \underrightarrow{f(x)}
\]
% \xleftarrow и \xrightarrow — стрелки с текстом над/под ними
\[
A \xrightarrow{\text{функция } f} B \xleftarrow{\text{обратная}} A
\]
% \stackrel — текст над символом
\[
a \stackrel{\text{def}}{=} b + c
\]
% \overset и \underset — текст над/под выражением
\[
\overset{n \to \infty}{\longrightarrow} \quad \text{и} \quad \underset{x \to 0}{\lim}
\]
Сравнение окружений: когда что использовать
Эта таблица поможет быстро выбрать нужное окружение. На практике чаще всего используются pmatrix, cases, align и aligned – они покрывают 90% задач. Остальные окружения нужны для специфических случаев.
Окружение | Назначение | Нумерация | Выравнивание |
|---|---|---|---|
| Матрица без скобок | — | По колонкам |
| Матрица в | — | По колонкам |
| Матрица в | — | По колонкам |
| Система с | Одна | По |
| Произвольное выравнивание | — | По |
| Несколько формул | Каждая строка | По |
| То же без нумерации | Нет | По |
| Центрированные формулы | Каждая строка | По центру |
| Длинные формулы | Последняя строка | Лево/центр/право |
| Разрыв одной формулы | Одна (внутри equation) | По |
Советы по работе с матрицами и многострочными формулами
Выравнивайте элементы матриц по колонкам. Используйте
&между колонками и\\между строками. Для больших матриц с точками (\cdots,\vdots) следите, чтобы точки располагались на правильных позициях.Используйте
alignвместо несколькихequation. Если у вас несколько связанных формул, лучше выровнять их черезalign, чем нумеровать каждую отдельно.Не забывайте про
align*иgather*. Звездочка отключает нумерацию – это полезно для промежуточных выкладок, которые не нужно использовать в ссылках.Комбинируйте окружения. Внутри
equationможно использоватьsplitилиaligned, внутриcases–aligned. Это дает максимальную гибкость.Проверяйте парность
&в каждой строке. Если в одной строке три&, а в другой два – LaTeX выдаст ошибку. Все строки вalignдолжны иметь одинаковое число точек выравнивания.
Теперь вы умеете набирать матрицы, системы уравнений и сложные многострочные формулы. В следующем уроке мы изучим операторы, пределы, интегралы и суммы – еще одну важную группу математических конструкций. А пока попробуйте сверстать систему уравнений или матрицу из вашего учебника – это отличная практика.