Python NumPy에서 다항식의 근을 계산하려면 polynomial.polyroots() 메서드를 사용합니다. 이 메서드는 다항식의 근으로 이루어진 배열을 반환하며, 모든 근이 실수이면 결과도 실수이고, 하나라도 허수가 포함되면 복소수 형태로 반환됩니다. 매개변수 c는 다항식의 계수를 담고 있는 1차원 배열입니다.
근의 추정값은 컴패니언 행렬(companion matrix)의 고유값을 계산하는 방식으로 얻어집니다. 복소평면의 원점에서 멀리 떨어진 근은 거듭제곱 급수의 수치적 불안정성 때문에 오차가 커질 수 있습니다. 또한 중근(중복도가 1보다 큰 근)의 경우, 해당 지점 근처에서 급수 값이 근의 오차에 비교적 둔감하게 반응하기 때문에 더 큰 오차가 나타날 수 있습니다. 반면 원점 근처에 있는 고립된 근은 뉴턴 방법(Newton's method)을 몇 차례 반복 적용하면 정확도를 개선할 수 있습니다.
진행 단계
먼저 필요한 라이브러리를 임포트합니다.
from numpy.polynomial import polynomial as P
다항식의 근을 계산하려면 Python NumPy의 polynomial.polyroots() 메서드를 사용합니다.
j = complex(0,1)
print("Result (roots of a polynomial)...\n",P.polyroots((-j,j)))결과의 데이터 타입을 확인합니다.
print("\nType...\n",P.polyroots((-j, j)).dtype)결과의 형태(shape)를 확인합니다.
print("\nShape...\n",P.polyroots((-j, j)).shape)예제
from numpy.polynomial import polynomial as P
# Python NumPy에서 polynomial.polyroots() 메서드를 사용해 다항식의 근을 계산합니다.
# 이 메서드는 다항식의 근으로 이루어진 배열을 반환합니다.
# 모든 근이 실수이면 결과도 실수이고, 그렇지 않으면 복소수입니다.
# 매개변수 c는 다항식 계수로 이루어진 1차원 배열입니다.
j = complex(0,1)
print("Result (roots of a polynomial)...\n",P.polyroots((-j,j)))
# 데이터 타입 확인
print("\nType...\n",P.polyroots((-j, j)).dtype)
# 형태(shape) 확인
print("\nShape...\n",P.polyroots((-j, j)).shape)출력 결과
Result (roots of a polynomial)... [1.+0.j] Type... complex128 Shape... (1,)