파이썬 NumPy에서 한 르장드르(Legendre) 시리즈를 다른 시리즈로부터 빼려면 numpy.polynomial.legendre.legsub() 메서드를 사용하면 됩니다. 이 메서드는 두 르장드르 시리즈의 차이(c1 - c2)를 나타내는 배열을 반환합니다.
legsub()는 두 르장드르 시리즈의 차이인 c1 - c2를 반환합니다. 인자는 최저 차수 항부터 최고 차수 항까지 순서대로 정렬된 계수 시퀀스이며, 예를 들어 [1, 2, 3]은 P_0 + 2*P_1 + 3*P_2에 해당하는 시리즈를 의미합니다. 매개변수 c1과 c2는 낮은 차수부터 높은 차수 순으로 정렬된 르장드르 시리즈 계수의 1차원 배열입니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np from numpy.polynomial import legendre as L
르장드르 시리즈 계수로 이루어진 1차원 배열 두 개를 생성합니다.
c1 = np.array([2,3,4]) c2 = np.array([4,3,2])
생성한 계수 배열을 화면에 출력합니다.
print("Array1...\n",c1)
print("\nArray2...\n",c2)
두 배열의 데이터 타입(dtype)을 확인합니다.
print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)
두 배열의 차원(ndim)을 확인합니다.
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.legendre.legsub() 메서드를 호출하여 한 르장드르 시리즈를 다른 시리즈로부터 뺍니다.
print("\nResult (difference)....\n",L.legsub(c1, c2))
전체 예제 코드
import numpy as np
from numpy.polynomial import legendre as L
# 르장드르 시리즈 계수로 이루어진 1차원 배열 생성
c1 = np.array([2,3,4])
c2 = np.array([4,3,2])
# 계수 배열 출력
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)
# legsub() 메서드로 두 시리즈의 차이 계산
print("\nResult (difference)....\n",L.legsub(c1, c2))
실행 결과
Array1...
[2 3 4]
Array2...
[4 3 2]
Array1 datatype...
int64
Array2 datatype...
int64
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(3,)
Shape of Array2...
(3,)
Result (difference)....
[-2. 0. 2.]
실행 결과 [-2. 0. 2.]는 (2-4)*P_0 + (3-3)*P_1 + (4-2)*P_2, 즉 -2*P_0 + 2*P_2에 해당하는 계수를 의미합니다. 이처럼 legsub() 메서드를 활용하면 복잡한 계산 없이도 두 르장드르 시리즈의 차이를 손쉽게 구할 수 있습니다.