[파이썬][Scipy] Linear Algebra (선형 대수) 객체 및 함수 예제

scipy.linalg 모듈은 선형 대수 계산을 위한 함수와 객체를 제공합니다. 아래 예제에서는 scipy.linalg 모듈을 사용하여 선형 대수 계산을 수행하는 방법을 보여줍니다.

먼저, 필요한 모듈을 가져옵니다:

mport numpy as np
from scipy import linalg

예제 1: 행렬 곱셈 및 역행렬

두 개의 행렬을 곱하고 역행렬을 계산하는 예제입니다.

# 두 개의 행렬 정의
A = np.array([[3, 2], [1, 4]])
B = np.array([[1, 5], [2, 0]])

# 행렬 곱셈
C = np.dot(A, B)

# 역행렬 계산
A_inv = linalg.inv(A)

print("A * B:")
print(C)
print("\nInverse of A:")
print(A_inv)

예제 2: 선형 시스템 해결

선형 방정식 시스템을 해결하는 예제입니다.

# 선형 방정식 시스템 정의: Ax = b
A = np.array([[2, 1], [1, 3]])
b = np.array([4, 5])

# Ax = b를 해결하여 x 계산
x = linalg.solve(A, b)

print("Solution x:")
print(x)

예제 3: 특이값 분해 (SVD)

특이값 분해를 사용하여 행렬을 분해하는 예제입니다.

# 행렬 생성
X = np.array([[1, 2], [3, 4], [5, 6]])

# 특이값 분해 수행
U, S, VT = linalg.svd(X)

print("U:")
print(U)
print("\nS (Singular Values):")
print(S)
print("\nVT (Transpose of V):")
print(VT)

예제 4: 고윳값과 고유벡터

고윳값과 고유벡터를 계산하는 예제입니다.

# 행렬 생성
A = np.array([[4, 2], [3, 1]])

# 고윳값과 고유벡터 계산
eigenvalues, eigenvectors = linalg.eig(A)

print("Eigenvalues:")
print(eigenvalues)
print("\nEigenvectors:")
print(eigenvectors)

위의 예제에서는 행렬 곱셈, 역행렬 계산, 선형 시스템 해결, 특이값 분해, 고윳값과 고유벡터 계산 등 선형 대수 계산을 수행하는 방법을 보여줍니다. scipy.linalg 모듈은 선형 대수 계산에 유용한 다양한 함수와 객체를 제공합니다.