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

Python NumPy로 에르미트(Hermite) 급수 나누기 – hermdiv() 메서드 완벽 가이드

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로 표현할 수 있습니다.