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

Урок учит набирать матрицы в разных скобках и системы уравнений через cases.

Матричные окружения (pmatrix, bmatrix, ...) различаются только видом скобок; строки разделяются \\, элементы строки — &.

Матрицы в LaTeX набираются как маленькие таблицы. Разные окружения дают разные скобки — круглые, квадратные, модуль и так далее.

Виды матриц

ОкружениеСкобки
pmatrixкруглые ( )
bmatrixквадратные [ ]
Bmatrixфигурные { }
vmatrixвертикальные черты (определитель)
matrixбез скобок

Матрица 2×2 в квадратных скобках:

\begin{bmatrix}
  a & b \\
  c & d
\end{bmatrix}

$$\begin{bmatrix} a & b \\ c & d \end{bmatrix}$$

Та же матрица в круглых скобках (pmatrix) и как определитель (vmatrix):

\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}
\begin{vmatrix} 1 & 2 \\ 3 & 4 \end{vmatrix}

$$\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \qquad \begin{vmatrix} 1 & 2 \\ 3 & 4 \end{vmatrix}$$

Системы уравнений

Окружение cases рисует фигурную скобку слева и набор условий справа:

f(x) = \begin{cases}
  x^2, & x \geq 0 \\
  -x,  & x < 0
\end{cases}

$$f(x) = \begin{cases} x^2, & x \geq 0 \\ -x, & x \lt 0 \end{cases}$$

Здесь & отделяет значение от условия, \\ — строки. Это типичный способ задать кусочно-определённую функцию. Обратите внимание: в исходнике написано x < 0 через сущность &lt; на этой странице, а в реальном .tex — просто x < 0; в живой формуле выше использовано \lt, чтобы знак «меньше» корректно отрисовался.

Точки-многоточия

Для матриц общего вида нужны многоточия: \dots (по строке), \vdots (вертикальное), \ddots (диагональное):

\begin{bmatrix}
  a_{11} & \dots  & a_{1n} \\
  \vdots & \ddots & \vdots \\
  a_{m1} & \dots  & a_{mn}
\end{bmatrix}

$$\begin{bmatrix} a_{11} & \dots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \dots & a_{mn} \end{bmatrix}$$

Как работает под капотом

Все матричные окружения — частный случай выровненной таблицы в матрежиме: колонки центрируются, интервалы рассчитываются по математическим правилам. Скобки добавляются автоматически и растягиваются по высоте матрицы тем же механизмом, что и \left/\right. cases — это, по сути, двухколоночная таблица с единственной растянутой фигурной скобкой слева. Все эти окружения объявлены в пакете amsmath.

Окружение array — основа всех матриц

Под капотом любая матрица из amsmath опирается на более общее окружение array — это математический аналог текстового tabular. В array вы сами задаёте преамбулу столбцов вроде {ccc} (три центрированных колонки) или {cc}, можете попросить выравнивание влево l или вправо r и даже вставить вертикальную линию символом вертикальной черты. Готовые pmatrix и его собратья — это, по сути, array со всегда центрированными колонками и заранее подставленными скобками, поэтому они короче в наборе, но менее гибкие. Когда нужна расширенная матрица системы — с вертикальной чертой, отделяющей столбец свободных членов, — берут именно array внутри \left[ \ldots \right], потому что встроенные матрицы черту посередине провести не умеют.

Высота строк и arraystretch

Если строки матрицы кажутся слишком тесными — например, в них есть дроби или индексы, которые почти слипаются, — высоту всех строк регулируют параметром \arraystretch. Командой \renewcommand{\arraystretch}{1.4} вы увеличиваете межстрочный интервал в полтора раза для всех последующих таблиц и матриц; вернуть исходное значение можно, поставив обратно 1.0. Менять его лучше локально, внутри группы из фигурных скобок, чтобы растяжение не распространилось на весь документ. Это типографский, а не смысловой параметр: он не трогает содержимое, а лишь делает плотные матрицы более читаемыми.

Сколько столбцов помещается

У встроенных матричных окружений есть негласный предел: по умолчанию amsmath разрешает не более десяти столбцов, и при одиннадцатом вы получите ошибку вроде «Extra alignment tab has been changed». Это сделано ради ловли реальных опечаток, но иногда матрица действительно широкая. Лимит поднимают, увеличив счётчик MaxMatrixCols в преамбуле — например, до двадцати; для совсем больших матриц всё равно разумнее перейти на array с явной преамбулой. Помните и про эстетику: очень широкие матрицы плохо влезают на страницу, и часто их лучше переписать через многоточия \dots, \vdots и \ddots, показывая общий вид, а не все элементы поимённо.

Частые ошибки

  • Матрица без amsmath — окружения pmatrix и т.п. не определены.
  • Разное число элементов в строках — колонки разъедутся или будет ошибка.
  • Буквальный < в исходнике внутри cases — в LaTeX это ок, но на веб-странице его надо экранировать.

Итоги

  • Матрицы: pmatrix/bmatrix/vmatrix различаются скобками; & и \\ разделяют элементы и строки.
  • Системы и кусочные функции — окружение cases.
  • Многоточия: \dots, \vdots, \ddots.
Проверьте себя
1. Чем отличаются pmatrix и bmatrix?
AРазмером шрифта
BВидом скобок: pmatrix — круглые ( ), bmatrix — квадратные [ ]
Cbmatrix не печатает элементы
DЧислом строк
2. Какое окружение рисует фигурную скобку для кусочно-заданной функции?
Apmatrix
Bcases
Calign
Dsplit
3. Как разделяются элементы внутри строки матрицы?
AЗапятыми
BСимволом &
CПробелами
DТочкой с запятой