주어진 근(roots)으로부터 모닉(monic) 다항식을 생성하려면 Python NumPy의 polynomial.polyfromroots() 메서드를 사용하면 됩니다. 모닝 다항식이 아니라 모닉(monic) 다항식이란 최고차항의 계수가 1인 다항식을 의미하며, 근만 알면 곱 전개를 통해 손쉽게 구성할 수 있습니다.
polyfromroots() 메서드 개요
polyfromroots() 메서드는 근들의 시퀀스를 입력받아 해당 근들을 가지는 모닉 다항식의 계수를 1차원 배열 형태로 반환합니다.
- 반환값: 다항식의 계수를 담은 1차원 배열. 모든 근이 실수이면 결과 배열도 실수(real)이며, 하나라도 복소수가 포함되면 복소수(complex) 배열이 됩니다.
- 매개변수:
roots— 다항식의 근들이 들어 있는 시퀀스입니다.
구현 단계
1. 필요한 라이브러리 임포트
from numpy.polynomial import polynomial as P
2. 모닉 다항식 생성하기
근으로 (-1, 0, 1)을 지정하여 다항식을 생성합니다.
print("결과...\n", P.polyfromroots((-1, 0, 1)))3. 데이터 타입(dtype) 확인하기
print("\n타입...\n", P.polyfromroots((-1, 0, 1)).dtype)4. 배열의 형태(shape) 확인하기
print("\n형태...\n", P.polyfromroots((-1, 0, 1)).shape)전체 예제 코드
from numpy.polynomial import polynomial as P
# 주어진 근으로 모닉 다항식을 생성하려면 Python Numpy의
# polynomial.polyfromroots() 메서드를 사용합니다.
# 이 메서드는 다항식의 계수를 담은 1차원 배열을 반환하며,
# 모든 근이 실수이면 결과도 실수이고, 그렇지 않으면 복소수입니다.
# 매개변수 roots는 근들을 포함하는 시퀀스입니다.
# x(x - 1)(x + 1) = x^3 - x
print("결과...\n", P.polyfromroots((-1, 0, 1)))
# 데이터 타입 확인
print("\n타입...\n", P.polyfromroots((-1, 0, 1)).dtype)
# 배열의 형태(shape) 확인
print("\n형태...\n", P.polyfromroots((-1, 0, 1)).shape)실행 결과
결과... [ 0. -1. 0. 1.] 타입... float64 형태... (4,)
결과 해석
근이 (-1, 0, 1)일 때 다항식은 x(x - 1)(x + 1)로 표현되며, 이를 전개하면 x³ - x가 됩니다. 반환된 계수 배열 [0., -1., 0., 1.]은 낮은 차수부터 높은 차수 순으로 상수항, x의 계수, x²의 계수, x³의 계수를 나타내므로, 실제로 0 + (-1)x + 0x² + 1x³ = x³ - x임을 확인할 수 있습니다. 또한 모든 근이 실수이므로 dtype은 float64로, 계수가 4개이므로 shape는 (4,)로 출력됩니다.