Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

สร้าง Pseudo Vandermonde matrix ของ Hermite polynomial และจุด x, y, z complex array ใน Python


ภาพรวม

ใช้ numpy.polynomial.hermite.hermvander3d() สร้าง pseudo-Vandermonde matrix ของ Hermite polynomial สำหรับจุดตัวอย่าง x, y, z

พารามิเตอร์

  • x, y, z: อาร์เรย์พิกัดจุด ทุกตัวต้องมี shape เหมือนกัน dtype จะแปลงเป็น float64 หรือ complex128
  • deg: list ของ maximum degrees [x_deg, y_deg, z_deg]

ขั้นตอนการทำงาน

1. นำเข้าไลบรารี

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

2. สร้างอาร์เรย์พิกัด complex

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

3. แสดงข้อมูลอาร์เรย์

print("Array1...\n", x)
print("\nArray2...\n", y)
print("\nArray3...\n", z)
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
print("\nArray3 datatype...\n", z.dtype)
print("\nDimensions of Array1...\n", x.ndim)
print("\nDimensions of Array2...\n", y.ndim)
print("\nDimensions of Array3...\n", z.ndim)
print("\nShape of Array1...\n", x.shape)
print("\nShape of Array2...\n", y.shape)
print("\nShape of Array3...\n", z.shape)

4. สร้าง pseudo Vandermonde matrix

x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n", H.hermvander3d(x, y, z, [x_deg, y_deg, z_deg]))

ตัวอย่างโค้ดเต็ม

import numpy as np
from numpy.polynomial import hermite as H
x = np.array([-2.+2.j, -1.+2.j])
y = np.array([0.+2.j, 1.+2.j])
z = np.array([2.+2.j, 3. + 3.j])
print("Array1...\n", x)
print("\nArray2...\n", y)
print("\nArray3...\n", z)
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
print("\nArray3 datatype...\n", z.dtype)
print("\nDimensions of Array1...\n", x.ndim)
print("\nDimensions of Array2...\n", y.ndim)
print("\nDimensions of Array3...\n", z.ndim)
print("\nShape of Array1...\n", x.shape)
print("\nShape of Array2...\n", y.shape)
print("\nShape of Array3...\n", z.shape)
x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n", H.hermvander3d(x, y, z, [x_deg, y_deg, z_deg]))

ผลลัพธ์

คืนค่า pseudo-Vandermonde matrix ขนาดใหญ่ (complex values) สำหรับ Hermite polynomial degrees x=2, y=3, z=4 ที่จุดตัวอย่าง 2 จุด

หมายเหตุ: ผลลัพธ์เป็น matrix ขนาด (2, (x_deg+1)*(y_deg+1)*(z_deg+1)) = (2, 3×4×5) = (2, 60) สำหรับแต่ละจุดตัวอย่าง