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

สร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似 ของอนุกรมเฮอร์ไมท์_e และจุดตัวอย่าง x, y, z ใน Python

บทนำ

เพื่อสร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似 (pseudo Vandermonde matrix) ของอนุกรมเฮอร์ไมท์_e (Hermite_e polynomial) และจุดตัวอย่าง x, y, z เราสามารถใช้เมธอด hermite.hermevander3d() ใน NumPy เมธอดนี้จะส่งคืนเมทริกซ์แบบヴァンเดอร์มอนด์疑似 พารามิเตอร์หลักมีดังนี้:

  • x, y, z: อาร์เรย์ของพิกัดจุด ทุกอาร์เรย์ต้องมีรูปทรงเหมือนกัน ชนิดข้อมูล (dtype) จะถูกแปลงเป็น float64 หรือ complex128 ขึ้นอยู่กับว่ามีองค์ประกอบซ้อนหรือไม่ สเกลาร์จะถูกแปลงเป็นอาร์เรย์ 1 มิติ
  • deg: ลิสต์ของดีกรีสูงสุดในรูปแบบ [x_deg, y_deg, z_deg]

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

1. นำเข้าไลบรารีที่จำเป็น

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

2. สร้างอาร์เรย์พิกัดจุด (รูปทรงเหมือนกัน)

x = np.array([1, 2])
y = np.array([3, 4])
z = np.array([5, 6])

3. แสดงอาร์เรย์

print("Array1...\n", x)
print("\nArray2...\n", y)
print("\nArray3...\n", z)

4. แสดงชนิดข้อมูล

print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
print("\nArray3 datatype...\n", z.dtype)

5. ตรวจสอบมิติของอาร์เรย์ทั้งหมด

print("\nDimensions of Array1...\n", x.ndim)
print("\nDimensions of Array2...\n", y.ndim)
print("\nDimensions of Array3...\n", z.ndim)

6. ตรวจสอบรูปทรงของอาร์เรย์ทั้งหมด

print("\nShape of Array1...\n", x.shape)
print("\nShape of Array2...\n", y.shape)
print("\nShape of Array3...\n", z.shape)

7. สร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似 3 มิติ

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

ตัวอย่างโค้ดสมบูรณ์

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

# สร้างอาร์เรย์พิกัดจุด ทุกอาร์เรย์มีรูปทรงเหมือนกัน
x = np.array([1, 2])
y = np.array([3, 4])
z = np.array([5, 6])

# แสดงอาร์เรย์
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)

# สร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似 ของอนุกรมเฮอร์ไมท์_e และจุดตัวอย่าง x, y, z
x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n", H.hermevander3d(x, y, z, [x_deg, y_deg, z_deg]))

ผลลัพธ์ที่คาดหวัง

Array1...
 [1 2]
Array2...
 [3 4]
Array3...
 [5 6]
Array1 datatype...
 int64
Array2 datatype...
 int64
Array3 datatype...
 int64
Dimensions of Array1...
 1
Dimensions of Array2...
 1
Dimensions of Array3...
 1
Shape of Array1...
 (2,)
Shape of Array2...
 (2,)
Shape of Array3...
 (2,)

Result...
 [[1.00000e+00 5.00000e+00 2.40000e+01 1.10000e+02 4.78000e+02 3.00000e+00 1.50000e+01 7.20000e+01 3.30000e+02 1.43400e+03 8.00000e+00 4.00000e+01 1.92000e+02 8.80000e+02 3.82400e+03 1.80000e+01 9.00000e+01 4.32000e+02 1.98000e+03 8.60400e+03 1.00000e+00 5.00000e+00 2.40000e+01 1.10000e+02 4.78000e+02 3.00000e+00 1.50000e+01 7.20000e+01 3.30000e+02 1.43400e+03 8.00000e+00 4.00000e+01 1.92000e+02 8.80000e+02 3.82400e+03 1.80000e+01 9.00000e+01 4.32000e+02 1.98000e+03 8.60400e+03 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]
 [1.00000e+00 6.00000e+00 3.50000e+01 1.98000e+02 1.08300e+03 4.00000e+00 2.40000e+01 1.40000e+02 7.92000e+02 4.33200e+03 1.50000e+01 9.00000e+01 5.25000e+02 2.97000e+03 1.62450e+04 5.20000e+01 3.12000e+02 1.82000e+03 1.02960e+04 5.63160e+04 2.00000e+00 1.20000e+01 7.00000e+01 3.96000e+02 2.16600e+03 8.00000e+00 4.80000e+01 2.80000e+02 1.58400e+03 8.66400e+03 3.00000e+01 1.80000e+02 1.05000e+03 5.94000e+03 3.24900e+04 1.04000e+02 6.24000e+02 3.64000e+03 2.05920e+04 1.12632e+05 3.00000e+00 1.80000e+01 1.05000e+02 5.94000e+02 3.24900e+03 1.20000e+01 7.20000e+01 4.20000e+02 2.37600e+03 1.29960e+04 4.50000e+01 2.70000e+02 1.57500e+03 8.91000e+03 4.87350e+04 1.56000e+02 9.36000e+02 5.46000e+03 3.08880e+04 1.68948e+05]]