개요
Python NumPy에서 한 라게르(Laguerre) 급수를 다른 라게르 급수에 곱하려면 numpy.polynomial.laguerre.lagmul() 메서드를 사용하면 됩니다. 이 메서드는 두 라게르 급수의 곱(c1 * c2)을 새로운 계수 배열 형태로 반환합니다.
라게르 급수의 계수 시퀀스는 항상 낮은 차수 항부터 높은 차수 항 순으로 정렬됩니다. 예를 들어 [1, 2, 3]이라는 배열은 P_0 + 2*P_1 + 3*P_2라는 급수를 의미합니다. 매개변수 c1과 c2는 각각 낮은 차수에서 높은 차수 순으로 정렬된 라게르 급수 계수의 1차원 배열이어야 합니다.
단계별 구현 방법
1단계: 필요한 라이브러리 임포트
먼저 NumPy와 라게르 다항식 모듈을 임포트합니다.
import numpy as np
from numpy.polynomial import laguerre as L
2단계: 라게르 급수 계수 배열 생성
곱셈에 사용할 두 개의 1차원 계수 배열을 생성합니다.
c1 = np.array([1,2,3])
c2 = np.array([3,2,1])
3단계: 계수 배열 출력 및 속성 확인
생성한 배열의 값, 데이터 타입, 차원, 형태를 확인합니다.
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)4단계: lagmul() 메서드로 급수 곱하기
이제 L.lagmul() 메서드를 호출하여 두 라게르 급수를 곱합니다.
print("\nResult (multiply)....\n",L.lagmul(c1, c2))전체 예제 코드
import numpy as np
from numpy.polynomial import laguerre as L
# 라게르 급수 계수로 구성된 1차원 배열 생성
c1 = np.array([1,2,3])
c2 = np.array([3,2,1])
# 계수 배열 출력
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)
# lagmul() 메서드로 두 라게르 급수 곱하기
print("\nResult (multiply)....\n",L.lagmul(c1, c2))
실행 결과
Array1...
[1 2 3]
Array2...
[3 2 1]
Array1 datatype...
int64
Array2 datatype...
int64
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(3,)
Shape of Array2...
(3,)
Result (multiply)....
[ 10. 4. 16. -12. 18.]
정리
위 실행 결과를 보면, 두 개의 3차항 라게르 급수를 곱한 결과 최대 5개의 계수를 가진 새로운 급수가 생성되었습니다. 이는 두 3차 급수를 곱하면 결과 급수의 차수가 최대 5차까지 올라갈 수 있기 때문입니다. lagmul() 메서드는 내부적으로 라게르 기저 함수의 직교성을 활용하여 곱셈 결과를 올바른 라게르 급수 계수 형태로 변환해 주므로, 복잡한 수학적 변환 과정을 직접 구현할 필요 없이 간편하게 사용할 수 있습니다.