주어진 근(roots)으로부터 체비쇼프(Chebyshev) 급수를 생성하려면 Python NumPy에서 제공하는 chebyshev.chebfromroots() 메서드를 사용하면 됩니다. 이 메서드는 계수들로 구성된 1차원 배열을 반환합니다.
흥미로운 점은 반환 결과의 데이터 타입이 근의 성질에 따라 달라진다는 것입니다. 모든 근이 실수라면 결과는 실수(real) 배열로 반환되지만, 근 중 하나라도 복소수가 포함되어 있다면 결과 계수가 모두 실수 값이더라도 배열 전체는 복소수(complex) 타입으로 반환됩니다.
메서드의 매개변수 roots는 체비쇼프 급수의 근들을 담고 있는 시퀀스(sequence)입니다.
구현 단계
1단계: 필요한 라이브러리 임포트
먼저 NumPy의 다항식 모듈에서 체비쇼프 클래스를 가져옵니다.
from numpy.polynomial import chebyshev as C
2단계: 복소수 근 정의
예제에서 사용할 허수 단위 j를 정의합니다.
j = complex(0,1)
3단계: 체비쇼프 급수 생성
-j와 j 두 개의 복소수 근을 전달하여 급수를 생성하고 결과를 출력합니다.
print("Result...\n",C.chebfromroots((-j, j)))4단계: 데이터 타입 확인
반환된 배열의 데이터 타입(dtype)을 확인합니다.
print("\nType...\n",C.chebfromroots((-j, j)).dtype)5단계: 배열 형태 확인
반환된 배열의 형태(shape)를 확인합니다.
print("\nShape...\n",C.chebfromroots((-j, j)).shape)전체 예제 코드
from numpy.polynomial import chebyshev as C
# 주어진 근으로 체비쇼프 급수를 생성하려면
# chebyshev.chebfromroots() 메서드를 사용합니다.
# 이 메서드는 계수들의 1-D 배열을 반환하며,
# 근 중 하나라도 복소수이면 결과는 complex 타입이 됩니다.
j = complex(0,1)
print("Result...\n",C.chebfromroots((-j, j)))
# 데이터 타입 확인
print("\nType...\n",C.chebfromroots((-j, j)).dtype)
# 배열 형태 확인
print("\nShape...\n",C.chebfromroots((-j, j)).shape)실행 결과
Result...
[1.5+0.j 0. +0.j 0.5+0.j]
Type...
complex128
Shape...
(3,)실행 결과를 보면, 근으로 (-j, j)를 전달했기 때문에 계수 값 자체는 모두 실수부만 가지고 있음에도 불구하고 배열의 dtype이 complex128로 지정된 것을 확인할 수 있습니다. 또한 두 개의 근으로부터 생성된 급수이므로 배열의 형태는 차수 2에 해당하는 3개의 계수를 가진 (3,) 형태입니다.