선형대수에서 벡터 연산은 수학적 기초이자 실용적 분석의 출발점입니다. 특히 행벡터(row vector)와 열벡터(column vector) 간의 곱셈은 벡터 내적 및 외적의 기반이 되는 중요한 연산입니다. 이번 글에서는 행벡터와 열벡터를 곱하는 방법과 그 결과가 가지는 의미를 자세히 알아보겠습니다.
1. 행벡터와 열벡터의 정의
- 행벡터: \( \vec{a} = [a_1 \ a_2 \ \cdots \ a_n] \in \mathbb{R}^{1 \times n} \)
- 열벡터: \( \vec{b} = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_n \end{bmatrix} \in \mathbb{R}^{n \times 1} \)
두 벡터 모두 n개의 성분을 가지며, 각각 1행 n열, n행 1열의 형태를 가집니다.
2. 행벡터 × 열벡터 = 스칼라 (내적)
가장 일반적인 곱셈은 행벡터와 열벡터의 내적(dot product)입니다:
$$ \vec{a} \cdot \vec{b} = \vec{a} \times \vec{b} = \sum_{i=1}^{n} a_i b_i $$
예를 들어,
$$ \vec{a} = [1 \ 2 \ 3], \quad \vec{b} = \begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix} $$
그 곱은:
$$ \vec{a} \cdot \vec{b} = 1×4 + 2×5 + 3×6 = 32 $$
결과는 스칼라 하나가 됩니다. 이 연산은 두 벡터가 얼마나 같은 방향으로 정렬되어 있는지를 수치로 나타내는 데 유용합니다.
3. 열벡터 × 행벡터 = 행렬 (외적 기반 구조)
열벡터가 앞에 오고 행벡터가 뒤에 올 경우, 결과는 스칼라가 아닌 행렬(matrix)이 됩니다:
$$ \vec{b} \times \vec{a} = \begin{bmatrix} b_1 \\ b_2 \\ b_3 \end{bmatrix} \times [ a_1 \ a_2 \ a_3 ] = \begin{bmatrix} b_1a_1 & b_1a_2 & b_1a_3 \\ b_2a_1 & b_2a_2 & b_2a_3 \\ b_3a_1 & b_3a_2 & b_3a_3 \\ \end{bmatrix} $$
즉, \( n \times 1 \) 벡터와 \( 1 \times n \) 벡터의 곱은 \( n \times n \) 행렬이 됩니다. 이는 외적과 관련된 연산에서 구조를 나타낼 때 활용됩니다.
4. 요약 표
| 곱셈 형식 | 형태 | 결과 | 설명 |
|---|---|---|---|
| \( \vec{a} \cdot \vec{b} \) | 1×n × n×1 | 스칼라 (1×1) | 벡터 내적 |
| \( \vec{b} \cdot \vec{a} \) | n×1 × 1×n | 행렬 (n×n) | 외적 구조 기반 |
5. 프로그래밍에서의 구현
- Python(Numpy):
np.dot(a, b),a @ b - Matlab:
a * b또는dot(a, b)
단, 프로그래밍에서는 벡터의 shape(행/열 방향성)에 따라 결과가 달라질 수 있으므로 주의가 필요합니다.
6. 활용 예시
- 기하학: 내적을 통한 각도 계산 및 투영
- 물리학: 힘과 변위의 내적 → 일(work)
- 통계/ML: 벡터 유사도 계산, 선형 회귀 예측
- 행렬 생성: 기저 벡터 간의 곱을 통한 구조화
결론
행벡터와 열벡터의 곱셈은 방향성과 연산 순서에 따라 결과가 크게 달라지는 매우 중요한 연산입니다.
행벡터 × 열벡터는 스칼라 결과를 낳는 내적이며, 열벡터 × 행벡터는 구조적 정보를 담는 행렬을 생성합니다. 두 연산 모두 선형대수, 물리학, 컴퓨터공학 등 다양한 분야에서 핵심적으로 사용됩니다.
기본 구조와 계산 원리를 정확히 이해하면, 보다 복잡한 벡터·행렬 연산도 자연스럽게 해석할 수 있게 됩니다.