polyvalfromroots() 메서드란?
근(roots)으로 정의된 다항식을 주어진 점 x에서 평가하려면 Python NumPy의 polynomial.polyvalfromroots() 메서드를 사용합니다. 이 메서드는 다항식의 계수가 아닌 근이 주어졌을 때 유용하며, 다차원 배열도 손쉽게 처리할 수 있습니다.
주요 매개변수
1) x: 다항식을 평가할 지점입니다. x가 리스트나 튜플이면 자동으로 ndarray로 변환되고, 그렇지 않으면 스칼라로 취급됩니다. 어떤 경우든 x 또는 그 요소는 자기 자신 및 r의 요소와 덧셈·곱셈 연산이 가능해야 합니다.
2) r: 근(root)들의 배열입니다. r이 다차원인 경우 첫 번째 인덱스는 근의 인덱스를 나타내고, 나머지 인덱스들은 여러 개의 다항식을 구분합니다. 예를 들어 2차원 배열이라면 각 다항식의 근들이 r의 열(column)에 저장되어 있다고 생각할 수 있습니다.
3) tensor: True로 설정하면 r 배열의 오른쪽에 x의 차원 수만큼 1을 추가하여 형태(shape)를 확장합니다. 스칼라는 이 연산에서 차원이 0으로 간주됩니다. 그 결과 r의 모든 계수 열이 x의 모든 요소에 대해 평가됩니다. False로 설정하면 x가 r의 열 위로 브로드캐스트되어 평가됩니다. 이 키워드는 r이 다차원일 때 특히 유용하며, 기본값은 True입니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
from numpy.polynomial.polynomial import polyvalfromroots
import numpy as np
다차원 계수 배열을 생성합니다.
c = np.arange(-2, 2).reshape(2,2)
배열을 출력해 확인합니다.
print("Our Array...\n",c)배열의 차원을 확인합니다.
print("\nDimensions of our Array...\n",c.ndim)배열의 데이터 타입을 확인합니다.
print("\nDatatype of our Array object...\n",c.dtype)배열의 형태(shape)를 확인합니다.
print("\nShape of our Array object...\n",c.shape)근으로 정의된 다항식을 점 x에서 평가하기 위해 polyvalfromroots() 메서드를 호출합니다.
print("\nResult...\n",polyvalfromroots([-2, 1], c, tensor=True))전체 예제 코드
from numpy.polynomial.polynomial import polyvalfromroots
import numpy as np
# 다차원 계수 배열 생성
c = np.arange(-2, 2).reshape(2,2)
# 배열 출력
print("Our Array...\n",c)
# 차원 확인
print("\nDimensions of our Array...\n",c.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",c.dtype)
# 형태(shape) 확인
print("\nShape of our Array object...\n",c.shape)
# 근으로 정의된 다항식을 x의 각 요소에서 평가
print("\nResult...\n",polyvalfromroots([-2, 1], c, tensor=True))
실행 결과
Our Array...
[[-2 -1]
[ 0 1]]
Dimensions of our Array...
2
Datatype of our Array object...
int64
Shape of our Array object...
(2, 2)
Result...
[[-0. 3.]
[ 3. 0.]]
위 결과에서 볼 수 있듯이, tensor=True 설정 덕분에 근 배열 [-2, 1]이 2x2 계수 배열 c의 각 열에 대해 개별적으로 적용되어, x의 모든 요소 조합에 대한 다항식 평가 결과가 행렬 형태로 반환됩니다.