라게르(Laguerre) 급수의 근을 계산하려면 Python NumPy의 laguerre.lagroots() 메서드를 사용하면 됩니다. 이 메서드는 급수의 근으로 이루어진 배열을 반환하며, 모든 근이 실수일 경우 결과 배열도 실수형이 되고, 하나라도 허수가 포함되면 복소수형 배열이 반환됩니다.
근의 추정값은 동반 행렬(companion matrix)의 고유값(eigenvalue)을 통해 얻어집니다. 다만 몇 가지 주의할 점이 있습니다.
- 복소 평면의 원점에서 멀리 떨어진 근은 해당 영역에서 급수가 수치적으로 불안정하기 때문에 오차가 커질 수 있습니다.
- 중복도(multiplicity)가 2 이상인 중근 역시, 그 지점 근처에서는 급수의 값이 근의 오차에 상대적으로 둔감하기 때문에 더 큰 오차를 보입니다.
- 원점 근처에 있는 고립된 단순 근은 뉴턴 방법(Newton's method)을 몇 차례 반복 적용하면 정확도를 개선할 수 있습니다.
단계별 진행 과정
1단계: 필요한 라이브러리 임포트
먼저 NumPy의 라게르 다항식 모듈을 가져옵니다.
from numpy.polynomial import laguerre as L
2단계: lagroots() 메서드로 근 계산
laguerre.lagroots() 메서드에 계수 배열을 전달하여 라게르 급수의 근을 계산합니다.
print("결과...\n", L.lagroots([0, 1, 2]))3단계: 데이터 타입 확인
반환된 배열의 dtype을 확인합니다.
print("\n타입...\n", L.lagroots([0, 1, 2]).dtype)4단계: 배열의 형태(shape) 확인
반환된 배열의 shape을 확인합니다.
print("\n형태...\n", L.lagroots([0, 1, 2]).shape)전체 예제 코드
from numpy.polynomial import laguerre as L
# 라게르 급수의 근을 계산하려면 Python NumPy의 laguerre.lagroots() 메서드를 사용합니다.
# 이 메서드는 급수의 근으로 이루어진 배열을 반환하며,
# 모든 근이 실수이면 실수형 배열, 아니면 복소수형 배열을 반환합니다.
print("결과...\n", L.lagroots([0, 1, 2]))
# 데이터 타입 확인
print("\n타입...\n", L.lagroots([0, 1, 2]).dtype)
# 배열의 형태 확인
print("\n형태...\n", L.lagroots([0, 1, 2]).shape)실행 결과
결과...
[0.69722436 4.30277564]
타입...
float64
형태...
(2,)위 실행 결과를 보면, 계수 [0, 1, 2]로 표현된 라게르 급수의 근 두 개가 약 0.6972와 4.3028로 계산되었으며, 모두 실수이므로 결과 배열의 타입은 float64, 형태는 요소 2개짜리 1차원 배열임을 확인할 수 있습니다.