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