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

Python에서 특정 축을 따라 다차원 계수로 르장드르(Legendre) 급수 미분하기

르장드르(Legendre) 급수를 미분하려면 Python의 polynomial.legendre.legder() 메서드를 사용합니다. 이 메서드는 르장드르 급수 계수 c를 axis 축을 따라 m번 미분한 결과를 반환하며, 각 미분 반복마다 결과에 scl이 곱해집니다.

첫 번째 매개변수인 c는 르장드르 급수 계수로 이루어진 배열입니다. c가 다차원 배열인 경우 각 축은 서로 다른 변수에 해당하며, 각 축의 차수는 해당 인덱스로 결정됩니다.

두 번째 매개변수인 m은 미분 횟수를 나타내며, 음수가 아닌 값이어야 합니다(기본값: 1). 세 번째 매개변수인 scl은 스칼라 값으로, 각 미분 결과에 곱해집니다. 최종 결과에는 scl**m이 곱해지며, 이는 변수의 선형 변환에 활용됩니다(기본값: 1). 네 번째 매개변수인 axis는 미분을 수행할 축을 지정합니다(기본값: 0).

단계별 진행 과정

먼저 필요한 라이브러리를 임포트합니다:

import numpy as np
from numpy.polynomial import legendre as L

계수로 이루어진 다차원 배열을 생성합니다:

c = np.arange(4).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)

르장드르 급수를 미분하려면 Python의 polynomial.legendre.legder() 메서드를 사용합니다:

print("\nResult...\n",L.legder(c, axis = 1))

전체 예제 코드

import numpy as np
from numpy.polynomial import legendre as L

# 계수로 이루어진 다차원 배열 생성
c = np.arange(4).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)

# 형태 확인
print("\nShape of our Array object...\n",c.shape)

# legder() 메서드로 르장드르 급수 미분
print("\nResult...\n",L.legder(c, axis = 1))

실행 결과

Our Array...
[[0 1]
[2 3]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

Shape of our Array object...
(2, 2)

Result...
[[1.]
[3.]]

결과 해석

위 예제에서는 axis=1로 지정했기 때문에 각 행을 따라 미분이 수행됩니다. 첫 번째 행의 계수 [0, 1]은 1차 르장드르 다항식 P₁(x) = x를 나타내며, 이를 미분하면 상수 1이 됩니다. 마찬가지로 두 번째 행의 계수 [2, 3]은 2 + 3x에 해당하므로, 미분 결과는 3이 됩니다. 이처럼 legder() 메서드를 사용하면 지정한 축을 따라 르장드르 급수의 도함수 계수를 손쉽게 계산할 수 있습니다.