Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python NumPy polyfromroots()로 주어진 근으로 모닉 다항식 생성하기

주어진 근(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,)로 출력됩니다.