Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 SciPy – scipy.linalg.tanm() 함수로 행렬 탄젠트 계산하기

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]]