행렬 덧셈의 정의
행렬 덧셈은 두 행렬의 같은 위치에 있는 성분끼리 더하는 연산을 의미한다. 두 행렬이 덧셈이 가능하기 위해서는 두 행렬이 같은 크기를 가져야 한다. 즉, 두 행렬이 모두 m \times n의 크기를 가지고 있어야 한다. 행렬 \mathbf{A}와 \mathbf{B}가 다음과 같은 형태를 가진다고 가정하자.
이때, 행렬 \mathbf{C} = \mathbf{A} + \mathbf{B}는 다음과 같이 각 성분을 더한 행렬이 된다.
즉, 행렬의 덧셈은 두 행렬의 동일한 인덱스의 원소끼리 더하는 방식으로 이루어진다.
행렬 덧셈의 성질
- 교환 법칙: 두 행렬 \mathbf{A}와 \mathbf{B}가 같은 크기라면, \mathbf{A} + \mathbf{B} = \mathbf{B} + \mathbf{A}가 성립한다.
이는 각 성분의 덧셈이 교환 법칙을 따르기 때문이다. 즉, a_{ij} + b_{ij} = b_{ij} + a_{ij}이다.
- 결합 법칙: 세 행렬 \mathbf{A}, \mathbf{B}, \mathbf{C}가 모두 같은 크기를 가진다면, (\mathbf{A} + \mathbf{B}) + \mathbf{C} = \mathbf{A} + (\mathbf{B} + \mathbf{C})가 성립한다.
이는 성분별로 덧셈의 결합 법칙이 성립하기 때문이다.
행렬 뺄셈의 정의
행렬의 뺄셈 역시 행렬 덧셈과 마찬가지로, 같은 크기의 행렬에서 각 성분을 서로 빼는 방식으로 정의된다. 행렬 \mathbf{A}와 \mathbf{B}가 다음과 같은 형태를 가진다고 하자.
이때, 행렬 \mathbf{D} = \mathbf{A} - \mathbf{B}는 다음과 같이 각 성분을 뺀 행렬이 된다.
행렬 뺄셈의 성질
행렬 뺄셈은 행렬 덧셈과 다르게 교환 법칙이 성립하지 않는다. 즉, 일반적으로 \mathbf{A} - \mathbf{B} \neq \mathbf{B} - \mathbf{A}이다. 그러나 결합 법칙은 다음과 같이 성립한다.
- 결합 법칙: 세 행렬 \mathbf{A}, \mathbf{B}, \mathbf{C}가 모두 같은 크기를 가진다면, (\mathbf{A} - \mathbf{B}) - \mathbf{C} = \mathbf{A} - (\mathbf{B} + \mathbf{C})가 성립한다.
이는 성분별로 뺄셈의 결합 법칙이 성립하기 때문이다.
- 덧셈과 뺄셈의 결합: 행렬 \mathbf{A}, \mathbf{B}, \mathbf{C}가 모두 같은 크기라면, \mathbf{A} + (\mathbf{B} - \mathbf{C}) = (\mathbf{A} + \mathbf{B}) - \mathbf{C}가 성립한다.
행렬의 덧셈과 뺄셈에서 영행렬의 역할
행렬 덧셈과 뺄셈에서 중요한 개념 중 하나는 영행렬의 역할이다. 영행렬은 모든 성분이 0인 행렬로 정의된다. m \times n 크기의 영행렬을 \mathbf{0}_{m \times n}으로 표기할 수 있다. 예를 들어, 3 \times 3 크기의 영행렬은 다음과 같다.
영행렬은 행렬 덧셈에서 항등원으로 작용한다. 즉, 임의의 m \times n 행렬 \mathbf{A}에 대해 다음이 성립한다.
행렬 뺄셈에서 영행렬은 다음과 같은 역할을 한다.
이 식은 행렬 \mathbf{A}와 자기 자신을 뺄 때 영행렬이 된다는 것을 보여준다. 이는 모든 성분에서 자기 자신을 빼면 0이 되기 때문이다.
행렬의 덧셈과 스칼라 곱의 결합
행렬 덧셈은 스칼라 곱과도 결합된다. 즉, 행렬의 스칼라 배와 덧셈을 결합하여 다음과 같은 성질을 이용할 수 있다. 두 행렬 \mathbf{A}, \mathbf{B}와 스칼라 c에 대해 다음이 성립한다.
이 성질은 스칼라의 분배 법칙과 동일한 역할을 한다. 즉, 스칼라 c를 두 행렬 \mathbf{A}와 \mathbf{B}에 각각 곱한 결과는 c를 행렬의 합 \mathbf{A} + \mathbf{B}에 곱한 것과 같다.
컴포넌트별 벡터와 행렬 덧셈
행렬 덧셈은 벡터 덧셈과도 밀접한 관련이 있다. 벡터는 1차원 행렬로 볼 수 있으며, 벡터의 덧셈은 행렬 덧셈과 동일한 방식으로 이루어진다. 두 벡터 \mathbf{u}와 \mathbf{v}가 다음과 같이 주어진다고 하자.
이 경우, 벡터 \mathbf{w} = \mathbf{u} + \mathbf{v}는 각 성분을 더한 결과로 다음과 같이 주어진다.
이는 행렬 덧셈의 경우와 동일하게, 같은 인덱스에 있는 성분끼리 더하는 방식이다. 벡터와 행렬의 덧셈과 뺄셈은 차원에 따라 동일한 원리로 적용된다.
컴퓨터에서의 행렬 덧셈과 뺄셈 구현
행렬 덧셈과 뺄셈은 컴퓨터 프로그래밍에서도 자주 사용되며, 특히 Eigen 라이브러리를 사용하여 쉽게 구현할 수 있다. Eigen 라이브러리에서는 행렬을 Matrix 클래스로 표현하며, 행렬 덧셈과 뺄셈을 직관적인 방식으로 사용할 수 있다.
다음은 Eigen 라이브러리에서 행렬 덧셈과 뺄셈을 구현하는 예시이다.
#include <Eigen/Dense>
#include <iostream>
int main() {
Eigen::Matrix3f A;
A << 1, 2, 3,
4, 5, 6,
7, 8, 9;
Eigen::Matrix3f B;
B << 9, 8, 7,
6, 5, 4,
3, 2, 1;
Eigen::Matrix3f C = A + B;
Eigen::Matrix3f D = A - B;
std::cout << "A + B =\n" << C << std::endl;
std::cout << "A - B =\n" << D << std::endl;
return 0;
}
이 코드에서는 두 3 \times 3 행렬 A와 B를 더하고, 그 결과를 C에 저장한 후 출력한다. 마찬가지로 A에서 B를 뺀 결과를 D에 저장하고 출력한다. 이는 행렬 덧셈과 뺄셈이 컴퓨터 상에서 매우 직관적이고 간단하게 구현될 수 있음을 보여준다.