Python NumPy에서 체비셰프(Chebyshev) 급수를 미분하려면 polynomial.chebder() 메서드를 사용하면 됩니다. 이 메서드는 도함수에 해당하는 체비셰프 급수를 반환합니다.
chebder()는 계수 배열 c를 지정한 축(axis)을 따라 m번 미분한 결과를 반환하며, 매 반복마다 결과에 scl 값이 곱해집니다. 인자 c는 각 축을 따라 낮은 차수부터 높은 차수 순으로 배열된 계수 배열입니다. 예를 들어 [1,2,3]은 1*T_0 + 2*T_1 + 3*T_2라는 급수를 나타내며, [[1,2],[1,2]]는 axis=0이 x, axis=1이 y일 때 1*T_0(x)*T_0(y) + 1*T_1(x)*T_0(y) + 2*T_0(x)*T_1(y) + 2*T_1(x)*T_1(y)를 의미합니다.
chebder() 메서드의 주요 매개변수
- c – 체비셰프 급수의 계수 배열입니다. 다차원 배열인 경우 각 축은 서로 다른 변수에 대응하며, 각 축의 차수는 해당 인덱스로 결정됩니다.
- m – 미분을 수행할 횟수로, 반드시 음수가 아니어야 합니다. (기본값: 1)
- scl – 각 미분 연산 후 곱해지는 스칼라 값입니다. 최종 결과에는 scl**m이 곱해지며, 변수의 선형 변환(linear change of variable) 시 유용하게 활용됩니다. (기본값: 1)
- axis – 미분이 수행되는 축입니다. (기본값: 0)
구현 단계
1단계: 필요한 라이브러리 임포트
import numpy as np from numpy.polynomial import chebyshev as C
2단계: 체비셰프 급수 계수 배열 생성
c = np.array([1,2,3,4])
3단계: 계수 배열 출력 및 속성 확인
print("Our coefficient Array...\n",c)
# 차원 확인
print("\nDimensions of our Array...\n",c.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",c.dtype)
# 형태 확인
print("\nShape of our Array object...\n",c.shape)4단계: chebder() 메서드로 미분 수행
# 체비셰프 급수를 미분하려면 polynomial.chebder() 메서드를 사용합니다.
# 이 메서드는 도함수의 체비셰프 급수를 반환합니다.
print("\nResult...\n",C.chebder(c, 3))전체 예제 코드
import numpy as np
from numpy.polynomial import chebyshev as C
# 체비셰프 급수 계수 배열 생성
c = np.array([1,2,3,4])
# 계수 배열 출력
print("Our coefficient Array...\n",c)
# 차원 확인
print("\nDimensions of our Array...\n",c.ndim)
# 데이터 타입 확인
print("\nDatatype of our Array object...\n",c.dtype)
# 형태 확인
print("\nShape of our Array object...\n",c.shape)
# 체비셰프 급수를 미분하려면 polynomial.chebder() 메서드를 사용합니다.
# 이 메서드는 도함수의 체비셰프 급수를 반환합니다.
print("\nResult...\n",C.chebder(c, 3))실행 결과
Our coefficient Array... [1 2 3 4] Dimensions of our Array... 1 Datatype of our Array object... int64 Shape of our Array object... (4,) Result... [96.]
결과 해석
계수 배열 [1, 2, 3, 4]는 1*T_0 + 2*T_1 + 3*T_2 + 4*T_3 체비셰프 급수를 나타냅니다. 이 급수를 3번 미분하면 상수항과 1차·2차 항은 모두 사라지고, 4*T_3만 남습니다. 체비셰프 다항식 T_3(x) = 4x³ − 3x의 3차 도함수는 24이므로, 최종 결과는 4 × 24 = 96이 되어 [96.]이 출력됩니다.