Laguerre 급수의 근(roots)을 계산하려면 Python NumPy에서 제공하는 laguerre.lagroots() 메서드를 사용하면 됩니다. 이 메서드는 급수의 근들을 배열 형태로 반환하며, 모든 근이 실수일 경우 결과도 실수 배열로, 그렇지 않으면 복소수 배열로 반환됩니다.
근의 추정값은 동반 행렬(companion matrix)의 고유값(eigenvalue)을 통해 얻어집니다. 다만 복소 평면에서 원점으로부터 멀리 떨어진 근은 해당 값들에 대해 급수가 수치적으로 불안정하기 때문에 오차가 커질 수 있습니다. 또한 중근(multiplicity가 1보다 큰 근)은 그 지점 근처에서 급수의 값이 근의 오차에 상대적으로 둔감하기 때문에 더 큰 오차를 보입니다. 원점 근처의 고립된 근은 뉴턴 방법(Newton's method)을 몇 번 반복 적용하면 정확도를 개선할 수 있습니다. 매개변수 c는 계수들이 담긴 1차원 배열입니다.
단계별 진행
먼저 필요한 라이브러리를 임포트합니다.
from numpy.polynomial import laguerre as L
Laguerre 급수의 근을 계산하기 위해 laguerre.lagroots() 메서드를 호출합니다. 여기서는 허수 단위 j를 계수로 사용해 보겠습니다.
j = complex(0,1)
print("Result...\n",L.lagroots([-j, j]))결과 배열의 데이터 타입(dtype)을 확인합니다.
print("\nType...\n",L.lagroots([-j, j]).dtype)결과 배열의 형태(shape)를 확인합니다.
print("\nShape...\n",L.lagroots([-j, j]).shape)전체 예제 코드
from numpy.polynomial import laguerre as L
# Laguerre 급수의 근을 계산하려면 laguerre.lagroots() 메서드를 사용합니다.
# 모든 근이 실수이면 결과도 실수이고, 아니라면 복소수로 반환됩니다.
j = complex(0,1)
print("Result...\n",L.lagroots([-j, j]))
# 데이터 타입 확인
print("\nType...\n",L.lagroots([-j, j]).dtype)
# 형태(shape) 확인
print("\nShape...\n",L.lagroots([-j, j]).shape)실행 결과
Result...
[0.+0.j]
Type...
complex128
Shape...
(1,)위 실행 결과를 보면, 허수 단위 j와 -j를 계수로 갖는 1차 Laguerre 급수의 근은 0+0j, 즉 원점에 위치한 단일 복소근임을 확인할 수 있습니다. 반환된 배열의 데이터 타입은 complex128이며, 근이 하나이므로 형태는 (1,)입니다.