Python의 NumPy 라이브러리에서는 polynomial.hermite.hermdiv() 메서드를 사용하여 하나의 에르미트(Hermite) 급수를 다른 급수로 나눌 수 있습니다. 이 메서드는 몫(quotient)과 나머지(remainder)를 나타내는 에르미트 급수 계수 배열을 반환합니다.
즉, 두 에르미트 급수 c1 / c2의 나눗셈 결과를 몫과 나머지 형태로 얻을 수 있습니다. 인자로 전달되는 계수 시퀀스는 낮은 차수 항부터 높은 차수 항 순으로 정렬됩니다. 예를 들어 [1, 2, 3]은 P_0 + 2*P_1 + 3*P_2라는 급수를 의미합니다.
주요 매개변수
- c1: 피제수가 되는 에르미트 급수 계수의 1차원 배열 (낮은 차수 → 높은 차수 순)
- c2: 제수가 되는 에르미트 급수 계수의 1차원 배열 (낮은 차수 → 높은 차수 순)
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
from numpy.polynomial import hermite as H
에르미트 급수 계수로 이루어진 1차원 배열을 생성합니다.
c1 = np.array([53., 30., 52., 7., 6.])
c2 = np.array([1, 2, 3])
생성한 계수 배열을 화면에 출력합니다.
print("Array1...\n", c1)
print("\nArray2...\n", c2)배열의 데이터 타입(dtype)을 확인합니다.
print("\nArray1 datatype...\n", c1.dtype)
print("\nArray2 datatype...\n", c2.dtype)두 배열의 차원(dimension)을 확인합니다.
print("\nDimensions of Array1...\n", c1.ndim)
print("\nDimensions of Array2...\n", c2.ndim)두 배열의 형상(shape)을 확인합니다.
print("\nShape of Array1...\n", c1.shape)
print("\nShape of Array2...\n", c2.shape)이제 polynomial.hermite.hermdiv() 메서드를 사용하여 한 에르미트 급수를 다른 급수로 나눕니다.
print("\nResult (division)....\n", H.hermdiv(c1, c2))전체 예제 코드
import numpy as np
from numpy.polynomial import hermite as H
# 에르미트 급수 계수로 이루어진 1차원 배열 생성
c1 = np.array([53., 30., 52., 7., 6.])
c2 = np.array([1, 2, 3])
# 계수 배열 출력
print("Array1...\n", c1)
print("\nArray2...\n", c2)
# 데이터 타입 확인
print("\nArray1 datatype...\n", c1.dtype)
print("\nArray2 datatype...\n", c2.dtype)
# 차원 확인
print("\nDimensions of Array1...\n", c1.ndim)
print("\nDimensions of Array2...\n", c2.ndim)
# 형상 확인
print("\nShape of Array1...\n", c1.shape)
print("\nShape of Array2...\n", c2.shape)
# hermdiv() 메서드로 에르미트 급수 나누기
print("\nResult (division)....\n", H.hermdiv(c1, c2))
실행 결과
Array1...
[53. 30. 52. 7. 6.]
Array2...
[1 2 3]
Array1 datatype...
float64
Array2 datatype...
int64
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(5,)
Shape of Array2...
(3,)
Result (division)....
(array([0., 1., 2.]), array([1., 1.]))
결과 해석
실행 결과를 보면 H.hermdiv(c1, c2)는 튜플 형태로 두 개의 배열을 반환합니다. 첫 번째 배열 [0., 1., 2.]는 몫에 해당하는 에르미트 급수 계수이고, 두 번째 배열 [1., 1.]은 나머지에 해당하는 계수입니다. 즉, c1을 c2로 나눈 결과는 몫 P_1 + 2*P_2와 나머지 P_0 + P_1로 표현할 수 있습니다.