scipy.linalg 패키지의 tanm() 함수는 입력 행렬에 대한 탄젠트(tangent)를 계산하는 데 사용됩니다. 이 루틴은 내부적으로 expm 함수를 활용해 행렬 지수(matrix exponential)를 구한 뒤, 그 결과를 바탕으로 행렬 탄젠트 값을 도출합니다.
참고로 행렬 탄젠트는 스칼라 삼각함수의 탄젠트를 행렬 연산으로 확장한 개념으로, 일반적으로 tan(A) = sin(A)·cos(A)-1 형태로 정의됩니다. SciPy에서는 이러한 계산을 행렬 지수 함수 기반의 안정적인 수치 알고리즘으로 처리합니다.
문법(Syntax)
scipy.linalg.tanm(x)
여기서 x는 입력 배열 또는 정방행렬(square matrix)입니다. 함수는 x에 대한 행렬 탄젠트를 반환합니다.
예제 1
다음 예제를 살펴보겠습니다.
# 필요한 라이브러리 임포트
from scipy import linalg
import numpy as np
# 입력 배열 정의
x = np.array([[69 , 12] , [94 , 28]])
print("Input array: \n", x)
# 탄젠트 계산
a = linalg.tanm(x)
# 행렬 탄젠트 출력
print("Tangent of X: \n", a)
출력 결과
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
Input array: [[69 12] [94 28]] Tangent of X: [[-0.15617321 0.02473695] [ 0.19377281 -0.24069113]]
예제 2
이번에는 NumPy의 cbrt()(세제곱근) 함수와 함께 사용하는 예제를 살펴보겠습니다. 먼저 각 요소의 세제곱근을 계산한 뒤, 그 결과 행렬에 대해 탄젠트를 구합니다.
# 필요한 라이브러리 임포트
from scipy import linalg
import numpy as np
# 입력 배열 정의 (각 요소의 세제곱근 계산)
y = np.cbrt([[87 , 26] , [59 , 36]])
print("Input array:\n", y)
# 탄젠트 계산
b = linalg.tanm(y)
# 행렬 탄젠트 출력
print("Tangent of Y: \n", b)
출력 결과
위 코드를 실행하면 다음과 같은 결과가 생성됩니다.
Input array: [[4.43104762 2.96249607] [3.89299642 3.30192725]] Tangent of Y: [[1.1489018 0.51580364] [0.67781414 0.95230934]]