Python NumPy에서 한 르장드르(Legendre) 급수를 다른 급수와 곱하려면 numpy.polynomial.legendre.legmul() 메서드를 사용합니다. 이 메서드는 두 르장드르 급수의 곱(c1 * c2)을 나타내는 새로운 르장드르 급수 배열을 반환합니다.
여기서 인자로 전달되는 계수 시퀀스는 가장 낮은 차수 항부터 가장 높은 차수 항까지 순서대로 정렬되어야 합니다. 예를 들어 [1, 2, 3]은 P_0 + 2*P_1 + 3*P_2라는 급수를 의미합니다.
주요 매개변수
- c1 : 첫 번째 르장드르 급수의 계수를 담고 있는 1차원 배열 (낮은 차수 → 높은 차수 순)
- c2 : 두 번째 르장드르 급수의 계수를 담고 있는 1차원 배열 (낮은 차수 → 높은 차수 순)
단계별 구현 방법
1단계: 필요한 라이브러리 임포트
import numpy as np from numpy.polynomial import legendre as L
2단계: 르장드르 급수 계수로 1차원 배열 생성
c1 = np.array([2,3,4]) c2 = np.array([4,3,2])
3단계: 계수 배열 출력하기
print("Array1...\n",c1)
print("\nArray2...\n",c2)4단계: 배열의 데이터 타입 확인
print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)5단계: 배열의 차원(Dimension) 확인
print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)6단계: 배열의 형태(Shape) 확인
print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)7단계: legmul() 메서드로 두 급수 곱하기
print("\nResult (product)....\n",L.legmul(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)
# legmul() 메서드로 두 르장드르 급수의 곱 계산
# 이 메서드는 곱을 나타내는 르장드르 급수 배열을 반환합니다.
print("\nResult (product)....\n",L.legmul(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 (product)....
[12.6 25.2 28.28571429 10.8 4.11428571]실행 결과를 보면, 각각 3개의 계수를 가진 두 르장드르 급수를 곱했을 때 결과 급수는 5개의 계수를 갖게 됩니다. 이는 차수가 m인 급수와 차수가 n인 급수를 곱하면 차수가 m+n인 급수가 되기 때문입니다.