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

Python에서 에르미트(Hermite) 급수를 적분하고 적분 상수를 추가하기 전에 결과에 스칼라 곱하는 방법

Python으로 에르미트 급수 적분하고 스칼라 곱하기

Python에서 에르미트(Hermite) 급수를 적분하려면 numpy.polynomial.hermite 모듈의 hermint() 메서드를 사용합니다. 이 메서드는 적분 상수를 추가하기 전에 각 적분 결과에 지정한 스칼라(scl)를 곱할 수 있어, 계수 스케일 조정이 필요한 경우에 유용하게 활용됩니다.


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

c: 에르미트 급수의 계수 배열입니다. c가 다차원 배열인 경우 각 축은 서로 다른 변수에 해당하며, 각 축의 차수는 해당 인덱스로 결정됩니다.

m: 적분 차수(order of integration)입니다. 반드시 양수여야 하며, 기본값은 1입니다.

k: 적분 상수(들)입니다. lbnd에서의 첫 번째 적분값이 목록의 첫 번째 값이 되고, lbnd에서의 두 번째 적분값이 두 번째 값이 되는 방식으로 순서대로 대응됩니다. k == [](기본값)이면 모든 상수가 0으로 설정됩니다. m == 1인 경우에는 목록 대신 단일 스칼라를 전달할 수도 있습니다.

lbnd: 적분의 하한(lower bound)입니다. 기본값은 0입니다.

scl: 스칼라 값입니다. 각 적분을 수행한 후 적분 상수를 더하기 전에 결과에 scl을 곱합니다. 기본값은 1입니다.

axis: 적분이 수행될 축입니다. 기본값은 0입니다.


단계별 구현 방법

1단계: 필요한 라이브러리 가져오기

import numpy as np
from numpy.polynomial import hermite as H

2단계: 계수 배열 생성하기

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

3단계: 배열 정보 확인하기

생성한 배열과 그 속성들을 출력하여 확인합니다.

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)

4단계: hermint() 메서드로 적분 수행하기

scl = -2로 설정하여 적분 후 결과에 -2를 곱합니다.

print("\nResult...\n",H.hermint(c, scl = -2))

전체 예제 코드

import numpy as np
from numpy.polynomial import hermite as H

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

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

# hermint() 메서드로 적분하고 스칼라 -2 곱하기
print("\nResult...\n",H.hermint(c, scl = -2))

실행 결과

Our Array...
   [1 2 3]

Dimensions of our Array...
1

Datatype of our Array object...
int64

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

Result...
   [-2. -1. -1. -1.]

결과 해석

위 예제에서 입력된 계수 [1, 2, 3]에 대한 에르미트 급수를 적분한 결과는 [-0.5, -0.5, -0.5, -0.5]이지만, scl = -2 옵션으로 인해 적분 상수가 추가되기 전에 결과 전체에 -2가 곱해져 최종적으로 [-2. -1. -1. -1.]이 출력되었습니다. 또한 적분으로 인해 계수 배열의 크기가 원래 3개에서 4개로 하나 늘어난 것을 확인할 수 있습니다. 이처럼 hermint() 메서드를 활용하면 스케일링과 함께 에르미트 급수의 적분을 손쉽게 처리할 수 있습니다.