Hermite_e 다항식의 의사 Vandermonde(pseudo-Vandermonde) 행렬을 생성하려면 Python NumPy에서 제공하는 hermite_e.hermevander2d() 함수를 사용하면 됩니다. 이 함수는 계산된 의사 Vandermonde 행렬을 반환합니다.
주요 매개변수는 다음과 같습니다.
- x, y: 점 좌표를 나타내는 배열로, 모두 동일한 형태(shape)여야 합니다. 요소 중 하나라도 복소수가 포함되어 있으면 dtype은 complex128로, 그렇지 않으면 float64로 변환됩니다. 스칼라 값은 1차원 배열로 변환됩니다.
- deg: 최대 차수를 지정하는 목록으로, [x_deg, y_deg] 형태로 입력합니다.
단계별 구현 방법
1. 필요한 라이브러리 가져오기
먼저 NumPy와 Hermite_e 다항식 모듈을 임포트합니다.
import numpy as np
from numpy.polynomial import hermite_e as H
2. 점 좌표 배열 생성하기
numpy.array() 메서드를 사용하여 동일한 형태의 좌표 배열을 생성합니다.
x = np.array([1, 2])
y = np.array([3, 4])
3. 배열 출력하기
생성된 두 배열의 내용을 확인합니다.
print("Array1...\n", x)
print("\nArray2...\n", y)4. 데이터 타입 확인하기
각 배열의 데이터 타입(dtype)을 출력합니다.
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)5. 차원(Dimension) 확인하기
두 배열의 차원 수를 확인합니다.
print("\nDimensions of Array1...\n", x.ndim)
print("\nDimensions of Array2...\n", y.ndim)6. 형태(Shape) 확인하기
두 배열의 형태가 서로 일치하는지 확인합니다.
print("\nShape of Array1...\n", x.shape)
print("\nShape of Array2...\n", y.shape)7. 의사 Vandermonde 행렬 생성하기
hermite_e.hermevander2d() 함수에 x, y 배열과 각 축의 최대 차수 [x_deg, y_deg]를 전달하여 의사 Vandermonde 행렬을 생성합니다.
x_deg, y_deg = 2, 3
print("\nResult...\n", H.hermevander2d(x, y, [x_deg, y_deg]))
전체 예제 코드
import numpy as np
from numpy.polynomial import hermite_e as H
# numpy.array() 메서드로 동일한 형태의 점 좌표 배열 생성
x = np.array([1, 2])
y = np.array([3, 4])
# 배열 출력
print("Array1...\n", x)
print("\nArray2...\n", y)
# 데이터 타입 출력
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
# 배열의 차원 확인
print("\nDimensions of Array1...\n", x.ndim)
print("\nDimensions of Array2...\n", y.ndim)
# 배열의 형태 확인
print("\nShape of Array1...\n", x.shape)
print("\nShape of Array2...\n", y.shape)
# hermite_e.hermevander2d()로 의사 Vandermonde 행렬 생성
x_deg, y_deg = 2, 3
print("\nResult...\n", H.hermevander2d(x, y, [x_deg, y_deg]))
실행 결과
Array1...
[1 2]
Array2...
[3 4]
Array1 datatype...
int64
Array2 datatype...
int64
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(2,)
Shape of Array2...
(2,)
Result...
[[ 1. 3. 8. 18. 1. 3. 8. 18. 0. 0. 0. 0.]
[ 1. 4. 15. 52. 2. 8. 30. 104. 3. 12. 45. 156.]]
정리
numpy.polynomial.hermite_e 모듈의 hermevander2d() 함수는 2차원 Hermite_e(확률론적 Hermite) 다항식 기저 함수들의 곱으로 구성된 의사 Vandermonde 행렬을 반환합니다. 반환되는 행렬의 열 개수는 (x_deg + 1) × (y_deg + 1)이며, 이 행렬은 2변수 Hermite_e 다항식의 최소제곱 피팅(fitting)이나 다항식 보간 등에 활용할 수 있습니다. 위 예제에서는 x의 최대 차수가 2, y의 최대 차수가 3이므로 (2+1) × (3+1) = 12개의 열을 가진 행렬이 생성된 것을 확인할 수 있습니다.