모닉 다항식이란?
모닉(monic) 다항식은 최고차항의 계수가 1인 다항식을 의미합니다. 주어진 근(roots)으로부터 이러한 모닉 다항식을 생성하려면 Python NumPy에서 제공하는 polynomial.polyfromroots() 메서드를 사용할 수 있습니다.
이 메서드는 다항식의 계수들을 담은 1차원 배열을 반환합니다. 모든 근이 실수라면 결과값도 실수로 반환되며, 하나라도 복소수가 포함되어 있다면 결과는 복소수 형태로 반환됩니다. 매개변수 roots에는 다항식의 근들이 들어 있는 시퀀스(리스트나 튜플 등)를 전달합니다.
단계별 진행 과정
1단계: 필요한 라이브러리 임포트
먼저 NumPy의 polynomial 모듈을 임포트합니다.
from numpy.polynomial import polynomial as P
2단계: 복소수 근 정의 후 다항식 생성
허수 단위 j를 복소수로 정의하고, -j와 j를 근으로 갖는 다항식을 생성합니다.
j = complex(0,1)
print("Result...\n",P.polyfromroots((-j,j)))3단계: 데이터 타입 확인
반환된 계수 배열의 데이터 타입을 확인합니다.
print("\nType...\n",P.polyfromroots((-j, j)).dtype)4단계: 배열의 형태(shape) 확인
반환된 배열의 차원과 크기를 확인합니다.
print("\nShape...\n",P.polyfromroots((-j, j)).shape)전체 예제 코드
from numpy.polynomial import polynomial as P
# 주어진 근으로 모닉 다항식을 생성하려면
# polynomial.polyfromroots() 메서드를 사용합니다.
# 이 메서드는 다항식의 계수를 담은 1차원 배열을 반환하며,
# 모든 근이 실수면 결과도 실수, 그렇지 않으면 복소수입니다.
j = complex(0,1)
print("Result...\n",P.polyfromroots((-j,j)))
# 데이터 타입 확인
print("\nType...\n",P.polyfromroots((-j, j)).dtype)
# 배열의 형태 확인
print("\nShape...\n",P.polyfromroots((-j, j)).shape)실행 결과
Result... [1.+0.j 0.+0.j 1.+0.j] Type... complex128 Shape... (3,)
결과 해석
근이 -j와 j일 때 반환된 계수 배열은 [1, 0, 1]로, 이는 x² + 1에 해당하는 다항식입니다. 실제로 (x + j)(x − j) = x² − j² = x² + 1이므로 결과가 수학적으로 정확함을 알 수 있습니다.
근에 허수가 포함되어 있으므로 데이터 타입은 complex128로 반환되었으며, 2차 다항식의 계수 3개가 저장되어 배열의 형태는 (3,)임을 확인할 수 있습니다.