Python NumPy에서 hermite.hermvander2d() 함수를 사용하면 허르미트(Hermite) 다항식의 의사 Vandermonde(판데르몬드) 행렬을 생성할 수 있습니다. 이 함수는 계산된 의사 Vandermonde 행렬을 반환합니다.
주요 매개변수 설명
x, y: 점 좌표를 나타내는 배열로, 모두 동일한 형태(shape)를 가져야 합니다. 요소 중 하나라도 복소수가 포함되어 있으면 dtype은 float64 또는 complex128로 자동 변환됩니다. 스칼라 값은 1차원 배열로 변환됩니다.
deg: 최대 차수를 지정하는 리스트로, [x_deg, y_deg] 형태로 전달합니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np from numpy.polynomial import hermite 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)두 배열의 차원(dimension)을 확인합니다.
print("\nDimensions of Array1...\n",x.ndim)
print("\nDimensions of Array2...\n",y.ndim)두 배열의 형태(shape)를 확인합니다.
print("\nShape of Array1...\n",x.shape)
print("\nShape of Array2...\n",y.shape)hermite.hermvander2d() 함수를 호출하여 허르미트 다항식의 의사 Vandermonde 행렬을 생성합니다.
x_deg, y_deg = 2, 3
print("\nResult...\n",H.hermvander2d(x,y, [x_deg, y_deg]))전체 예제 코드
import numpy as np
from numpy.polynomial import hermite 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.hermvander2d()로 허르미트 다항식의 의사 Vandermonde 행렬 생성
# 이 메서드는 의사 Vandermonde 행렬을 반환합니다.
x_deg, y_deg = 2, 3
print("\nResult...\n",H.hermvander2d(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.000e+00 6.000e+00 3.400e+01 1.800e+02 2.000e+00 1.200e+01 6.800e+01
3.600e+02 2.000e+00 1.200e+01 6.800e+01 3.600e+02]
[1.000e+00 8.000e+00 6.200e+01 4.640e+02 4.000e+00 3.200e+01 2.480e+02
1.856e+03 1.400e+01 1.120e+02 8.680e+02 6.496e+03]]정리
NumPy의 hermvander2d() 함수는 2차원 허르미트 다항식 기저 함수 값들로 구성된 의사 Vandermonde 행렬을 효율적으로 계산해 줍니다. x 방향 차수가 2, y 방향 차수가 3으로 지정된 경우, 각 점에 대해 총 (2+1)×(3+1)=12개의 기저 함수 값이 행렬의 열로 배치되는 것을 결과에서 확인할 수 있습니다. 이러한 행렬은 다항식 회귀 분석이나 곡선 피팅 등 수치 해석 작업에 유용하게 활용됩니다.