행렬식(determinant)은 하나의 행렬 또는 다차원 배열에 대해 계산할 수 있는 값입니다.
때로는 행렬이나 배열을 더 깊이 이해하고 분석해야 할 필요가 있으며, 바로 이럴 때 행렬식 연산이 유용하게 활용됩니다. 행렬식은 선형 변환의 성질을 파악하거나 역행렬 존재 여부를 판단하는 데 핵심적인 역할을 하기 때문입니다.
파이썬의 SciPy 라이브러리는 '선형 대수(Linear Algebra)'를 의미하는 linalg 모듈 안에 det라는 함수를 제공하여 손쉽게 행렬식을 계산할 수 있도록 지원합니다.
'det' 함수의 기본 문법
scipy.linalg.det(matrix)
det 함수에는 행렬식 값을 구하고자 하는 matrix(행렬)가 매개변수로 전달됩니다. 즉, 행렬이나 배열을 인자로 넘겨서 해당 함수를 호출하면 됩니다.
2차원 행렬의 행렬식 계산 원리
2×2 형태의 행렬을 예로 들어 보겠습니다. 행렬의 원소를 각각 'a', 'b', 'c', 'd'라고 가정하면, 행렬식은 다음과 같이 계산됩니다.
행렬식 = (a × d) − (b × c)
즉, 주대각선 방향의 두 원소 곱(a×d)에서 반대 방향의 두 원소 곱(b×c)을 빼면 됩니다. 그럼 실제 코드로 어떻게 구현하는지 살펴보겠습니다.
예제 코드
from scipy import linalg
import numpy as np
two_d_matrix = np.array([ [7, 9], [33, 8] ])
print("행렬의 행렬식 값은 다음과 같습니다 :")
print(linalg.det(two_d_matrix))실행 결과
행렬의 행렬식 값은 다음과 같습니다 : -241.0
코드 설명
- 라이브러리 임포트: SciPy의 linalg 모듈과 NumPy를 불러옵니다.
- 행렬 정의: 특정 숫자 값들을 담은 2차원 NumPy 배열(행렬)을 생성합니다.
- 함수 호출: 정의된 행렬을
det함수에 매개변수로 전달하여 행렬식을 계산합니다. - 결과 출력: 계산된 행렬식 값이 콘솔 화면에 출력됩니다.
위 예제에서 결과값은 -241.0으로, (7 × 8) − (9 × 33) = 56 − 297 = -241 공식에 따라 정확히 계산된 것을 확인할 수 있습니다. 이처럼 SciPy의 linalg.det 함수를 활용하면 복잡한 수식 없이도 단 한 줄의 코드로 행렬식을 빠르고 정확하게 구할 수 있습니다.