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

Python NumPy로 Legendre 다항식의 작은 후행 계수 제거하기

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() 메서드는 다항식 표현을 간결하게 정리할 때 유용하게 활용됩니다.