Python NumPy에서는 polynomial.laguerre.lagval() 메서드를 사용하여 특정 지점 x에서 라게르(Laguerre) 급수를 간편하게 평가할 수 있습니다. 라게르 다항식은 물리학, 공학, 수치 해석 등 다양한 분야에서 활용되는 직교 다항식 계열 중 하나로, 이 글에서는 lagval() 메서드의 주요 매개변수와 실제 사용 예제를 단계별로 살펴보겠습니다.
lagval() 메서드의 주요 매개변수
1. x — 평가할 지점
첫 번째 매개변수인 x는 급수를 평가할 지점입니다. x가 리스트나 튜플로 전달되면 자동으로 ndarray로 변환되며, 그 외의 경우에는 변경 없이 스칼라로 취급됩니다. 어떤 경우든 x 또는 그 요소들은 자기 자신과 계수 배열 c의 요소들 간의 덧셈과 곱셈을 지원해야 합니다.
2. C — 계수 배열
두 번째 매개변수인 C는 계수들이 담긴 배열입니다. 차수 n에 해당하는 항의 계수는 c[n]에 저장되도록 정렬되어 있습니다. c가 다차원 배열이라면 나머지 인덱스들은 여러 개의 다항식을 의미하며, 2차원 배열의 경우 계수들은 c의 열(column)에 저장되어 있다고 생각할 수 있습니다.
3. tensor — 브로드캐스팅 방식 제어
세 번째 매개변수인 tensor가 True이면(기본값), 계수 배열의 형태가 오른쪽 끝에 1이 추가되어 확장됩니다. 이때 확장되는 차원의 수는 x의 차원 수와 같으며, 스칼라는 차원 0으로 처리됩니다. 그 결과 c의 모든 계수 열이 x의 모든 요소에 대해 평가됩니다. 반대로 False로 설정하면 x가 c의 열 위로 브로드캐스팅되어 평가가 진행됩니다. 이 키워드는 c가 다차원일 때 특히 유용합니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np from numpy.polynomial import laguerre as L
계수 배열을 생성합니다.
c = np.array([1, 2, 3])
생성한 배열을 출력합니다.
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)polynomial.laguerre.lagval() 메서드를 사용하여 점 x에서 라게르 급수를 평가합니다.
print("\nResult...\n",L.lagval(1,c))전체 예제 코드
import numpy as np
from numpy.polynomial import laguerre as L
# 계수 배열 생성
c = np.array([1, 2, 3])
# 배열 출력
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)
# lagval() 메서드로 점 x=1에서 라게르 급수 평가
print("\nResult...\n",L.lagval(1,c))실행 결과
Our Array... [1 2 3] Dimensions of our Array... 1 Datatype of our Array object... int64 Shape of our Array object... (3,) Result... -0.5
결과 해석
계수 배열 [1, 2, 3]은 라게르 급수 L₀(x) + 2·L₁(x) + 3·L₂(x)를 나타냅니다. lagval(1, c)을 호출하면 x = 1에서의 급수 값이 계산되며, 그 결과는 -0.5입니다. 또한 출력 결과를 통해 생성된 배열이 1차원이며, 데이터 타입은 int64, 형태는 (3,)임을 확인할 수 있습니다.