Python에서 polygrid3d(x, y, z, c) 메서드를 사용하면 x, y, z의 데카르트 곱(Cartesian product) 위에서 3차원 다항식을 평가할 수 있습니다. 이 메서드는 numpy.polynomial.polynomial 모듈에 포함되어 있으며, x, y, z 각 점들의 모든 조합에 대해 다항식의 값을 계산한 결과를 반환합니다.
매개변수 살펴보기
첫 번째 매개변수인 x, y, z는 3차원 급수(series)를 평가할 지점들을 나타냅니다. 세 축의 값들이 만드는 데카르트 곱의 각 좌표에서 다항식이 계산됩니다. 만약 x, y 또는 z가 리스트(list)나 튜플(tuple)로 전달되면 먼저 ndarray로 변환되며, ndarray가 아닌 경우에는 스칼라(scalar)로 취급됩니다.
두 번째 매개변수인 c는 계수(coefficient) 배열입니다. 차수 i, j에 해당하는 항의 계수들이 c[i, j]에 저장되는 순서로 정렬되어야 합니다. c의 차원이 3보다 크면 나머지 인덱스들은 여러 개의 계수 집합을 의미합니다. 반대로 c의 차원이 3보다 작으면, 자동으로 형태(shape) 뒤에 1이 추가되어 3차원으로 확장됩니다.
결과 배열의 형태는 c.shape[3:] + x.shape + y.shape + z.shape가 됩니다. 즉, 계수 배열의 앞 세 차원은 다항식 평가에 사용되고, 네 번째 차원부터는 여러 계수 세트를 나타내는 데 활용됩니다.
구현 단계
1단계: 필요한 라이브러리 임포트
import numpy as np from numpy.polynomial.polynomial import polygrid3d
2단계: 4차원 계수 배열 생성
c = np.arange(48).reshape(2,2,6,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)4단계: polygrid3d()로 다항식 평가
print("\nResult...\n",polygrid3d([1,2],[1,2],[1,2],c))전체 예제 코드
import numpy as np
from numpy.polynomial.polynomial import polygrid3d
# 4차원 계수 배열 생성
c = np.arange(48).reshape(2,2,6,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)
# x, y, z의 데카르트 곱에서 3차원 다항식 평가
print("\nResult...\n",polygrid3d([1,2],[1,2],[1,2],c))실행 결과
Our Array...
[[[[ 0 1]
[ 2 3]
[ 4 5]
[ 6 7]
[ 8 9]
[10 11]]
[[12 13]
[14 15]
[16 17]
[18 19]
[20 21]
[22 23]]]
[[[24 25]
[26 27]
[28 29]
[30 31]
[32 33]
[34 35]]
[[36 37]
[38 39]
[40 41]
[42 43]
[44 45]
[46 47]]]]
Dimensions of our Array...
4
Datatype of our Array object...
int64
Shape of our Array object...
(2, 2, 6, 2)
Result...
[[[[ 552. 6600.]
[ 900. 10656.]]
[[ 972. 11412.]
[ 1566. 18252.]]]
[[[ 576. 6852.]
[ 936. 11034.]]
[[ 1008. 11790.]
[ 1620. 18819.]]]]정리
polygrid3d() 함수는 그리드 형태의 좌표 조합 전체에서 다항식 값을 한 번에 계산해야 할 때 매우 유용합니다. 개별 좌표마다 일일이 함수를 호출하는 대신, x, y, z 배열만 넘겨주면 모든 조합에 대한 결과를 효율적으로 얻을 수 있습니다. 특히 과학 계산, 데이터 피팅(fitting), 수치 해석 분야에서 다차원 다항식을 다룰 때 자주 활용됩니다.