Legendre 다항식에서 절댓값이 작은 후행 계수를 제거하려면 Python NumPy의 legendre.legtrim() 메서드를 사용하면 됩니다. 이 메서드는 후행에 있는 불필요한 계수(0 또는 허용 오차 이하의 값)가 제거된 1차원 배열을 반환하며, 만약 결과 시리즈가 완전히 비게 된다면 0 하나만 담긴 시리즈를 대신 반환합니다.
legtrim() 메서드의 주요 개념
여기서 말하는 "작은(small)"이란 "절댓값이 작다"는 의미이며, tol 매개변수를 통해 그 기준을 조절할 수 있습니다. 또한 "후행(trailing)"은 최고 차수에 해당하는 계수(들)를 뜻합니다.
예를 들어 계수 배열 [0, 1, 1, 0, 0]은 다항식 0 + x + x² + 0·x³ + 0·x⁴를 나타내는데, 이 경우 3차와 4차 계수가 모두 "잘려나간(trimmed)" 상태로 처리됩니다.
- c: 낮은 차수부터 높은 차수 순으로 정렬된 계수들의 1차원 배열입니다.
- tol: 절댓값이 이 값보다 작거나 같은 후행 요소들은 제거됩니다.
단계별 구현 방법
1단계: 필요한 라이브러리 임포트
import numpy as np
from numpy.polynomial import legendre as L
2단계: 계수 배열 생성
numpy.array() 메서드를 사용해 계수들을 담은 1차원 배열을 만듭니다.
c = np.array([0,5,0, 0,9,0])
3단계: 배열 정보 확인
생성한 배열의 값, 차원 수, 데이터 타입, 형태(shape)를 출력해 확인합니다.
print("Our Array...\n",c)
print("\nDimensions of our Array...\n",c.ndim)
print("\nDatatype of our Array object...\n",c.dtype)
print("\nShape of our Array object...\n",c.shape)4단계: legtrim()으로 후행 계수 제거
legendre.legtrim() 메서드를 호출하여 작은 후행 계수를 제거한 결과를 출력합니다.
print("\nResult...\n",L.legtrim(c))전체 예제 코드
import numpy as np
from numpy.polynomial import legendre as L
# numpy.array() 메서드로 계수 배열 생성
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)
# legtrim() 메서드로 작은 후행 계수 제거
print("\nResult...\n",L.legtrim(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이 제거되어 [0. 5. 0. 0. 9.]가 출력된 것을 확인할 수 있습니다. 이처럼 legtrim() 메서드는 다항식 표현을 간결하게 정리할 때 유용하게 활용됩니다.