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

Python NumPy로 Chebyshev 급수 미분하기: 도함수 계산과 각 미분에 스칼라 곱하는 방법

Chebyshev 급수를 미분하려면 Python NumPy의 polynomial.chebder() 메서드를 사용하면 됩니다. 이 메서드는 도함수에 해당하는 Chebyshev 급수를 반환합니다.

chebder()는 Chebyshev 급수 계수 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: Chebyshev 급수 계수의 배열입니다. 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단계: Chebyshev 급수 계수 배열 생성

Chebyshev 급수의 계수로 이루어진 배열을 만듭니다.

c = np.array([1,2,3,4])

3단계: 계수 배열 출력

print("Our coefficient Array...\n",c)

4단계: 배열의 차원 확인

print("\nDimensions of our Array...\n",c.ndim)

5단계: 데이터 타입 확인

print("\nDatatype of our Array object...\n",c.dtype)

6단계: 배열의 형태(shape) 확인

print("\nShape of our Array object...\n",c.shape)

7단계: Chebyshev 급수 미분 수행

chebder() 메서드를 사용하여 Chebyshev 급수를 미분하고, 두 번 미분한 뒤 각 미분에 스칼라 -1을 곱합니다.

print("\nResult...\n",C.chebder(c, 2, scl = -1))

전체 예제 코드

import numpy as np
from numpy.polynomial import chebyshev as C

# Chebyshev 급수 계수 배열 생성
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)

# chebder() 메서드로 Chebyshev 급수 미분
print("\nResult...\n",C.chebder(c, 2, scl = -1))

실행 결과

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...
[12. 96.]

위 실행 결과에서 볼 수 있듯이, 계수 배열 [1, 2, 3, 4]를 두 번 미분하고 각 미분마다 -1을 곱하면 최종적으로 [12., 96.]이라는 도함수 계수가 얻어집니다. 이처럼 scl 매개변수를 활용하면 변수 변환 상황에서도 손쉽게 Chebyshev 급수의 미분을 처리할 수 있습니다.