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

파이썬 NumPy로 르장드르 급수 미분하기 – legder() 메서드로 도함수 계산 후 스칼라 곱하기

파이썬에서 르장드르(Legendre) 급수를 미분하려면 numpy.polynomial.legendre.legder() 메서드를 사용하면 됩니다. 이 메서드는 르장드르 급수의 계수 c를 지정한 축(axis)을 따라 m번 미분한 결과를 반환하며, 미분이 수행될 때마다 그 결과에 스칼라 scl이 곱해집니다.

legder() 메서드의 주요 매개변수

첫 번째 매개변수 c : 르장드르 급수의 계수를 담고 있는 배열입니다. 만약 c가 다차원 배열이라면, 서로 다른 축은 서로 다른 변수에 대응하며 각 축의 차수(degree)는 해당 인덱스 값으로 결정됩니다.

두 번째 매개변수 m : 미분을 수행할 횟수입니다. 반드시 0 이상의 값이어야 하며, 기본값은 1입니다.

세 번째 매개변수 scl : 곱해질 스칼라 값입니다. 매번 미분이 일어날 때마다 scl이 곱해지므로, 최종 결과에는 scl**m(scl의 m제곱)이 곱해진 것과 같습니다. 이 기능은 주로 선형 변수 변환(linear change of variable)에 활용됩니다. 기본값은 1입니다.

네 번째 매개변수 axis : 미분이 수행될 축을 지정합니다. 기본값은 0입니다.

미분 수행 단계

1단계 : 필요한 라이브러리 임포트

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

2단계 : 계수 배열 생성

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

3단계 : 배열 출력

print("Our 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단계 : legder() 메서드로 르장드르 급수 미분

2차 미분을 수행하고 각 미분 결과에 스칼라 -1을 곱하는 예시입니다.

print("\nResult...\n",L.legder(c, 2, scl = -1))

전체 코드 예제

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

# 계수 배열 생성
c = np.array([1,2,3,4])

# 배열 출력
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)

# legder() 메서드로 르장드르 급수를 2차 미분하고 스칼라 -1 곱하기
print("\nResult...\n",L.legder(c, 2, scl = -1))

실행 결과

Our Array...
   [1 2 3 4]

Dimensions of our Array...
1

Datatype of our Array object...
int64

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

Result...
   [ 9. 60.]

실행 결과를 보면, 계수 배열 [1, 2, 3, 4]로 표현된 르장드르 급수를 2차 미분한 후 각 단계마다 -1을 곱했기 때문에 최종적으로 [9., 60.]이라는 결과가 출력됩니다. 이처럼 legder() 메서드를 활용하면 복잡한 미분 연산도 간단하게 처리할 수 있습니다.