Home LaTeX 행렬과 연립방정식 — pmatrix·bmatrix·cases
Post
Cancel

LaTeX 행렬과 연립방정식 — pmatrix·bmatrix·cases

선형대수 한 학기, 미분방정식 한 학기 — 그 사이 등장하는 수식의 절반이 행렬과 조건부 정의입니다. Word 의 수식 편집기로 3×3 행렬을 그리다 보면 괄호와 줄 간격이 매번 어긋나고, Google Docs 는 행렬 셀이 추가될 때마다 손이 갑니다. LaTeX 에서는 이 두 패턴이 pmatrixcases 두 환경으로 깔끔하게 정리됩니다.

이전 글 #3 에서 그리스 문자와 수학 기호를 정리했다면, 이번 글에서는 그 기호들이 가장 많이 들어가는 자리 — 행렬 안과 조건부 정의의 오른쪽 — 의 환경 네 가지를 한 번에 짚습니다. 핵심은 괄호 모양은 환경 이름의 첫 글자, 셀 사이는 &, 행 사이는 \\ 두 규칙입니다.

1. pmatrix — 가장 흔한 소괄호 행렬

행렬은 matrix 계열 환경 안에 적습니다. 가장 자주 쓰는 것은 소괄호 ( ) 로 감싸는 pmatrix 입니다 (p 는 parenthesis).

1
2
3
4
5
6
7
\begin{equation}
  A = \begin{pmatrix}
    a_{11} & a_{12} & a_{13} \\
    a_{21} & a_{22} & a_{23} \\
    a_{31} & a_{32} & a_{33}
  \end{pmatrix}
\end{equation}

출력:

\[A = \begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{pmatrix} \tag{1}\]

규칙은 두 줄로 요약됩니다.

  • 열 구분자는 & — 한 행 안에서 셀을 나눕니다.
  • 행 구분자는 \\ — 행을 다음 줄로 넘깁니다.

마지막 행 뒤에 \\ 를 붙이는 것은 선택입니다. 붙이면 살짝 아래쪽 여백이 생기는데, 행렬 아래에 글이 바로 이어질 때는 빼는 편이 깔끔합니다.

pmatrixamsmath 패키지가 제공합니다. 프리앰블에 다음 한 줄이 들어가 있어야 합니다 (equation 환경을 쓰고 있다면 이미 있을 가능성이 높습니다).

1
\usepackage{amsmath}

1.1 첨자가 두 자리 이상이면 중괄호

행렬 안에서 가장 자주 깨지는 부분이 첨자입니다. 두 글자 이상의 아래첨자는 반드시 중괄호로 묶어야 합니다.

1
2
3
4
5
% 틀린 예 — a_1 과 두 변수 1 의 곱처럼 처리됩니다
a_11

% 올바른 예
a_{11}

이 규칙은 #2 에서 정리한 위·아래첨자 규칙 과 동일합니다. 행렬 셀이 늘어날수록 첨자 실수가 누적되므로 처음 적을 때부터 중괄호 습관을 들이는 편이 안전합니다.

2. bmatrix·Bmatrix — 괄호 모양만 다른 동기 환경

p 자리에 다른 글자를 넣으면 괄호 모양이 바뀝니다. 내부 문법 (& 열 구분, \\ 행 구분) 은 완전히 동일합니다.

환경괄호자주 쓰이는 곳
pmatrix( )일반 행렬 (가장 흔함)
bmatrix[ ]대괄호 표기를 쓰는 교재·논문
Bmatrix{ }중괄호 — 거의 안 씀
matrix괄호 없음정렬용
1
2
3
4
5
6
7
\begin{equation}
  B = \begin{bmatrix}
    1 & 0 & 0 \\
    0 & 1 & 0 \\
    0 & 0 & 1
  \end{bmatrix}
\end{equation}

출력:

\[B = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \tag{2}\]

pmatrixbmatrix 중 어느 쪽을 쓸지는 소속 분야·학과의 관례 에 맞춥니다. 통계·기계학습은 대체로 bmatrix, 순수수학과 물리는 pmatrix 가 우세합니다. 한 논문 안에서 두 가지를 섞지만 않으면 됩니다.

\left( \begin{matrix} ... \end{matrix} \right) 같이 괄호를 따로 감싸 수동으로 그릴 수도 있지만 권장하지 않습니다. pmatrix 는 괄호 크기를 행렬 높이에 맞춰 자동 조정하고 셀 간격도 정돈해 줍니다. 직접 그리면 그 모든 보정을 손으로 해야 합니다.

3. vmatrix·Vmatrix — 행렬식과 노름

세로 막대 | | 와 이중 세로 막대 ‖ ‖ 는 의미가 다릅니다.

  • vmatrix — 단일 세로 막대 | |. 행렬식 (determinant) 표기.
  • Vmatrix — 이중 세로 막대 ‖ ‖. 노름 (norm) 표기.

3.1 행렬식 — vmatrix

1
2
3
4
5
6
\begin{equation}
  \det(A) = \begin{vmatrix}
    a & b \\
    c & d
  \end{vmatrix} = ad - bc
\end{equation}

출력:

\[\det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \tag{3}\]

\det 명령어와 vmatrix 의 세로 막대는 둘 다 행렬식을 표현하지만 자리가 다릅니다. \det(A) 는 행렬 이름만 부를 때, vmatrix 는 성분을 직접 펼쳐서 보일 때 씁니다. 위 예처럼 두 표기를 등호로 연결하면 정의와 계산식을 한 줄에 보일 수 있습니다.

3.2 노름 — Vmatrix

1
2
3
4
5
6
\begin{equation}
  \|\mathbf{x}\|_2 = \begin{Vmatrix}
    x_1 \\ x_2 \\ x_3
  \end{Vmatrix}_2
  = \sqrt{x_1^2 + x_2^2 + x_3^2}
\end{equation}

Vmatrix 환경 자체에는 아래첨자가 없으니 노름의 차수 (예: _2 의 L2 노름) 는 환경 뒤에 적습니다. 통계·딥러닝 코드에 자주 등장하는 \|x\|_2 패턴입니다.

본문 인라인에서는 환경 대신 명령어 \|...\| 로 적는 경우가 더 흔합니다.

1
손실 함수는 $\|y - \hat{y}\|_2^2$ 의 형태입니다.

\| 은 이중 세로 막대 — 키보드의 파이프 | 한 개와는 다릅니다.

4. cases — 조건부 정의

함수의 조건부 정의 — “x 가 양수일 때 …, 음수일 때 …” — 는 cases 환경으로 적습니다. 행렬과 문법이 거의 같습니다.

1
2
3
4
5
6
\begin{equation}
  f(x) = \begin{cases}
    x^2          & \text{if } x \geq 0 \\
    -x           & \text{if } x < 0
  \end{cases}
\end{equation}

출력:

\[f(x) = \begin{cases} x^2 & \text{if } x \geq 0 \\ -x & \text{if } x < 0 \end{cases} \tag{4}\]

cases 의 특징은 왼쪽에만 중괄호 { 가 붙는다는 것 입니다. 오른쪽은 비어 있어 조건 텍스트가 그대로 흘러나가게 합니다. 행렬과 동일하게 & 가 열 구분자, \\ 가 행 구분자입니다 — 첫 열은 식, 두 번째 열은 조건입니다.

4.1 조건문에 한글·영문 텍스트 — text

조건 부분에 \text{} 를 쓰는 이유는 수식 환경 안에서 일반 텍스트가 이탤릭으로 잡히는 것을 막기 위해서입니다.

1
2
3
4
5
6
7
8
9
10
11
% 틀린 예 — if 가 i·f 두 변수의 곱처럼 보입니다
\begin{cases}
  x^2  & if x \geq 0 \\
  -x   & if x < 0
\end{cases}

% 올바른 예
\begin{cases}
  x^2  & \text{if } x \geq 0 \\
  -x   & \text{if } x < 0
\end{cases}

\text{if } 끝의 공백 한 칸 도 잊지 마세요. 수식 환경 안에서는 일반 공백이 무시되므로, 조건 텍스트 뒤에 이어지는 수식 (x \geq 0) 과 한 칸 띄려면 \text{} 안쪽에 공백을 박아두는 것이 깔끔합니다. \text{}amsmath 가 제공합니다.

4.2 한국어 조건도 가능

조건 텍스트가 한국어여도 동일합니다.

1
2
3
4
\begin{cases}
  x^2  & x \geq 0 \text{ 일 때} \\
  -x   & x < 0 \text{ 일 때}
\end{cases}

조사·어미는 \text{} 안에 넣고, 수식 변수는 바깥에 둡니다. 이렇게 분리하면 변수는 수식 스타일 (이탤릭) 로, 조사는 본문 스타일 (직립) 로 렌더링됩니다.

5. 자주 하는 실수 세 가지

5.1 열 구분자 누락

열 구분자 & 를 빼면 셀이 합쳐져 한 칸으로 출력됩니다. 컴파일 오류가 안 나서 발견이 어렵습니다.

1
2
3
4
5
6
7
8
9
10
11
% 틀린 예 — 첫 행이 한 셀로 처리됨
\begin{pmatrix}
  a_{11} a_{12} \\
  a_{21} & a_{22}
\end{pmatrix}

% 올바른 예
\begin{pmatrix}
  a_{11} & a_{12} \\
  a_{21} & a_{22}
\end{pmatrix}

5.2 행과 열의 개수가 들쭉날쭉

각 행의 & 개수는 동일해야 합니다. 한 행에서 셀이 모자라면 LaTeX 가 알아서 빈 셀을 채우지만, 보통은 컴파일 경고 (Underfull \hbox) 가 떠서 알아챌 수 있습니다. 일관성 있게 적는 것이 가장 안전합니다.

5.3 마지막 행 뒤 행 구분자의 미묘한 차이

1
2
3
4
5
% 마지막 \\ 있음 — 행렬 아래 여백이 살짝 더 큼
\begin{pmatrix} a & b \\ c & d \\ \end{pmatrix}

% 마지막 \\ 없음 — 본문이 바로 이어질 때 깔끔
\begin{pmatrix} a & b \\ c & d \end{pmatrix}

수식이 본문 한가운데에 들어갈 때는 마지막 \\ 를 빼는 쪽이 좋고, 행렬이 독립적으로 큰 박스처럼 자리할 때는 붙여도 무방합니다.

정리 — 환경 다섯 가지를 한 표에

환경괄호의미자주 쓰이는 곳
pmatrix( )일반 행렬선형대수·물리
bmatrix[ ]일반 행렬 (대괄호 관례)통계·기계학습
vmatrix\| \|행렬식2×2·3×3 직접 계산
Vmatrix‖ ‖노름통계·딥러닝 손실 함수
cases{ (좌만)조건부 정의조각별 함수

다섯 가지 모두 내부 문법은 같습니다.

  • 열 구분: &
  • 행 구분: \\
  • 첨자 두 자리 이상: 중괄호 {} 필수
  • 조건 텍스트: \text{} 로 감싸기 (amsmath 필요)

이 네 규칙만 손에 익히면, Word 에서 한 행씩 수동으로 그리던 행렬도, Google Docs 에서 못 그렸던 조건부 정의도 모두 LaTeX 코드 몇 줄로 정돈됩니다.

다음 글에서는 같은 amsmath 가 제공하는 또 하나의 핵심 환경 — 여러 줄 수식을 등호 기준으로 정렬하는 align — 을 정리합니다. 행렬 안의 &align& 는 의미가 다르다는 점이 미리 알아둘 만한 포인트입니다.


이전 글: #3 LaTeX 그리스 문자와 수학 기호 완전 정복 다음 글: #5 LaTeX align 환경으로 수식 정렬하기

Google Docs / Word 의 수식을 한 번에 깔끔하게LaTeXFlow Web 바로 가기 (sign-in 없이 즉시)

This post is licensed under CC BY 4.0 by the author.

LaTeX 그리스 문자와 수학 기호 완전 정복

-