Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 점 좌표의 복잡한 배열을 사용하여 Hermite 다항식의 Pseudo Vandermonde 행렬 생성

<시간/>

Hermite 다항식의 의사 Vandermonde 행렬을 생성하려면 Python Numpy에서 thehermite.hermvander2d()를 사용합니다. 이 메서드는 의사 Vandermonde 행렬을 반환합니다. 매개변수 x, y는 모두 같은 모양의 점 좌표 배열입니다. dtypes는 요소가 복잡한지 여부에 따라 float64 또는 complex128로 변환됩니다. 스칼라는 1차원 배열로 변환됩니다. 매개변수 deg는 [x_deg, y_deg] 형식의 최대 각도 목록입니다.

단계

먼저 필요한 라이브러리를 가져옵니다 -

numpy를 np로 가져오기 from numpy.polynomial 가져오기 hermite를 H로

numpy.array() 메서드를 사용하여 동일한 모양의 점 좌표 배열을 만듭니다. -

x =np.array([-2.+2.j, -1.+2.j])y =np.array([1.+2.j, 2.+2.j]) 

배열 표시 -

print("배열1...\n",x)print("\n배열2...\n",y)

데이터 유형 표시 -

print("\nArray1 데이터 유형...\n",x.dtype)print("\nArray2 데이터 유형...\n",y.dtype)

두 어레이의 차원을 확인하십시오 -

print("\n배열1의 치수...\n",x.ndim)print("\n배열2의 치수...\n",y.ndim)

두 배열의 모양을 확인하십시오 -

print("\nArray1의 모양...\n",x.shape)print("\nArray2의 모양...\n",y.shape)

Hermite 다항식의 의사 Vandermonde 행렬을 생성하려면 Python Numpy에서 thehermite.hermvander2d()를 사용합니다. 이 메서드는 의사 Vandermonde 행렬을 반환합니다. -

x_deg, y_deg =2, 3print("\n결과...\n",H.hermvander2d(x,y, [x_deg, y_deg]))

예시

import numpy as npfrom numpy.polynomial import hermite as H# numpy.array() 메서드를 사용하여 동일한 모양의 점 좌표 배열을 만듭니다.x =np.array([-2.+2.j, -1 .+2.j])y =np.array([1.+2.j, 2.+2.j])# 배열 표시print("Array1...\n",x)print("\nArray2 ...\n",y)# 데이터 유형 표시print("\nArray1 데이터 유형...\n",x.dtype)print("\nArray2 데이터 유형...\n",y.dtype)# 치수 확인 두 arrayprint("\nDimensions of Array1...\n",x.ndim)print("\nDimensions of Array2...\n",y.ndim)# 두 arrayprint("\ nShape of Array1...\n",x.shape)print("\nShape of Array2...\n",y.shape)# Hermite 다항식의 의사 Vandermonde 행렬을 생성하려면 hermite.hermvander2d( ) in Python Numpy# 이 메서드는 의사 Vandermonde matrix.x_deg, y_deg =2, 3print("\nResult...\n",H.hermvander2d(x,y, [x_deg, y_deg])) 

출력

Array1... [-2.+2.j -1.+2.j]Array2... [1.+2.j 2.+2.j]Array1 데이터 유형...complex128Array2 데이터 유형.. .complex128배열1의 치수...1배열의 치수2...1배열의 모양1...(2,)배열의 모양2...(2,)결과... [[ 1.000e+00 +0.j 2.000e+ 00 +4.j -1.400e+01 +16.j -1.000e+02 -40.j -4.000e+00 +4.j -2.400e+01 -8.j -8.000e+00 -120.j 5.600e+02 -240.j -2.000e+00 -32.j 1.240e+02 -72.j 5.400e+02 +416.j -1.080e+03 +3280.j] [ 1.000e+00 +0 .j 4.000e+00 +4.j -2.000e+00 +32.j -1.520e+02 +104.j -2.000e+00 +4.j -2.400e+01 +8.j -1.240e+ 02 -72.j -1.120e+02 -816.j -1.400e+01 -16.j 8.000e+00 -120.j 5.400e+02 -416.j 3.792e+03 +976.j]]