Python NumPy에서 르장드르(Legendre) 급수에 독립 변수 x를 곱하려면 numpy.polynomial.legendre.legmulx() 메서드를 사용하면 됩니다. 이 메서드는 곱셈 연산의 결과를 담은 배열을 반환합니다.
계수 인자는 가장 낮은 차수 항부터 가장 높은 차수 항까지 순서대로 정렬됩니다. 예를 들어 [1, 2, 3]은 P0 + 2·P1 + 3·P2라는 급수를 의미합니다. 매개변수 c는 낮은 차수에서 높은 차수 순으로 정렬된 르장드르 급수 계수를 담은 1차원 배열입니다.
x·Pn(x)는 르장드르 다항식의 점화 관계에 따라 다시 르장드르 다항식들의 선형 결합으로 표현되며, legmulx() 메서드가 이 변환을 자동으로 처리해 줍니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np from numpy.polynomial import legendre as L
배열을 생성합니다.
c = np.array([1, 2, 3])
생성한 배열을 화면에 출력합니다.
print("생성한 배열...\n", c)
배열의 차원을 확인합니다.
print("\n배열의 차원...\n", c.ndim)
배열의 데이터 타입을 확인합니다.
print("\n배열 객체의 데이터 타입...\n", c.dtype)
배열의 형태(shape)를 확인합니다.
print("\n배열 객체의 형태...\n", c.shape)
마지막으로 르장드르 급수 c에 독립 변수 x를 곱하기 위해 legmulx() 메서드를 호출합니다.
print("\n결과....\n", L.legmulx(c))
전체 예제 코드
import numpy as np
from numpy.polynomial import legendre as L
# 배열 생성
c = np.array([1, 2, 3])
# 배열 출력
print("생성한 배열...\n", c)
# 차원 확인
print("\n배열의 차원...\n", c.ndim)
# 데이터 타입 확인
print("\n배열 객체의 데이터 타입...\n", c.dtype)
# 형태 확인
print("\n배열 객체의 형태...\n", c.shape)
# 르장드르 급수 c에 독립 변수 x를 곱함
print("\n결과....\n", L.legmulx(c))
실행 결과
생성한 배열...
[1 2 3]
배열의 차원...
1
배열 객체의 데이터 타입...
int64
배열 객체의 형태...
(3,)
결과....
[0.66666667 2.2 1.33333333 1.8 ]
실행 결과를 보면 반환된 배열의 길이가 하나 늘어난 것을 확인할 수 있습니다. [0.66666667, 2.2, 1.33333333, 1.8]은 각각 P0, P1, P2, P3의 계수를 의미하며, 이는 원래 급수(P0 + 2·P1 + 3·P2)에 x를 곱한 다항식을 르장드르 기저로 다시 표현한 결과입니다.