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

Python NumPy hermtrim()으로 Hermite 다항식의 작은 후행 계수 제거하기

Python NumPy에서 hermite.hermtrim() 메서드를 사용하면 Hermite 다항식의 작은 후행 계수(trailing coefficients)를 간편하게 제거할 수 있습니다. 이 메서드는 뒤쪽의 불필요한 계수가 제거된 1차원 배열을 반환하며, 만약 결과 계수열이 모두 제거되어 비게 되면 0 하나만 담긴 배열을 대신 반환합니다.

여기서 "작다(small)"란 절댓값 기준으로 크기가 작다는 의미이며, 그 기준은 tol 매개변수로 조절합니다. "후행(trailing)"은 최고 차수 쪽에 위치한 계수들을 가리킵니다. 예를 들어 [0, 1, 1, 0, 0] 배열(즉, 0 + x + x² + 0·x³ + 0·x⁴을 표현하는 배열)에서는 3차와 4차에 해당하는 마지막 두 개의 0이 모두 잘려나갑니다.

주요 매개변수

  • c: 다항식의 계수를 담은 1차원 배열로, 낮은 차수부터 높은 차수 순으로 정렬되어 있어야 합니다.
  • tol: 절댓값이 이 값 이하인 후행 요소들은 모두 제거됩니다.

단계별 구현 방법

먼저 필요한 라이브러리를 임포트합니다.

import numpy as np
from numpy.polynomial import hermite as H

numpy.array() 메서드를 사용해 계수 배열을 생성합니다. 이 배열은 다항식의 계수를 담고 있는 1차원 배열입니다.

c = np.array([0,5,0, 0,9,0])

생성한 배열을 출력해 내용을 확인합니다.

print("Our Array...\n",c)

배열의 차원 수(ndim)를 확인합니다.

print("\nDimensions of our Array...\n",c.ndim)

배열 객체의 데이터 타입(dtype)을 확인합니다.

print("\nDatatype of our Array object...\n",c.dtype)

배열의 형태(shape)를 확인합니다.

print("\nShape of our Array object...\n",c.shape)

마지막으로 hermite.hermtrim() 메서드를 호출하여 작은 후행 계수를 제거합니다.

print("\nResult...\n",H.hermtrim((c)))

전체 예제 코드

import numpy as np
from numpy.polynomial import hermite as H

# numpy.array() 메서드로 계수 배열 생성 (1차원 배열)
c = np.array([0,5,0, 0,9,0])

# 배열 출력
print("Our Array...\n",c)

# 차원 수 확인
print("\nDimensions of our Array...\n",c.ndim)

# 데이터 타입 확인
print("\nDatatype of our Array object...\n",c.dtype)

# 형태(shape) 확인
print("\nShape of our Array object...\n",c.shape)

# hermite.hermtrim() 메서드로 작은 후행 계수 제거
print("\nResult...\n",H.hermtrim((c)))

실행 결과

Our Array...
[0 5 0 0 9 0]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(6,)

Result...
[0. 5. 0. 0. 9.]

결과 해석

실행 결과를 보면 원래 배열 [0 5 0 0 9 0]에서 맨 뒤에 위치한 0이 제거되어 [0. 5. 0. 0. 9.]가 반환된 것을 확인할 수 있습니다. 주목할 점은 배열 중간에 있는 0은 그대로 유지되고, 오직 끝부분(후행)에 있는 계수만 잘린다는 것입니다. 또한 반환된 배열의 데이터 타입이 float로 변환되는데, 이는 hermtrim()이 내부적으로 부동소수점 연산을 수행하기 때문입니다.