บทนำ
เพื่อสร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似 (pseudo Vandermonde matrix) ของพหุนามเฮอร์ไมท์ (Hermite polynomial) เราสามารถใช้เมธอด hermite.hermvander2d() ใน NumPy เมธอดนี้จะส่งคืนเมทริกซ์แบบヴァンเดอร์มอนด์疑似 พารามิเตอร์หลักมีดังนี้:
- x, y: อาร์เรย์ของพิกัดจุด ทุกอาร์เรย์ต้องมีรูปทรงเหมือนกัน ชนิดข้อมูล (dtype) จะถูกแปลงเป็น float64 หรือ complex128 ขึ้นอยู่กับว่ามีองค์ประกอบซ้อนหรือไม่ สเกลาร์จะถูกแปลงเป็นอาร์เรย์ 1 มิติ
- deg: ลิสต์ของดีกรีสูงสุดในรูปแบบ
[x_deg, y_deg]
ขั้นตอนการทำงาน
1. นำเข้าไลบรารีที่จำเป็น
import numpy as np
from numpy.polynomial import hermite as H
2. สร้างอาร์เรย์พิกัดจุดทศนิยม (รูปทรงเหมือนกัน)
x = np.array([0.1, 1.4])
y = np.array([1.7, 2.8])
3. แสดงอาร์เรย์
print("Array1...\n", x)
print("\nArray2...\n", y)
4. แสดงชนิดข้อมูล
print("\nArray1 datatype...\n", x.dtype)
print("\nArray2 datatype...\n", y.dtype)
5. ตรวจสอบมิติของทั้งสองอาร์เรย์
print("\nDimensions of Array1...\n", x.ndim)
print("\nDimensions of Array2...\n", y.ndim)
6. ตรวจสอบรูปทรงของทั้งสองอาร์เรย์
print("\nShape of Array1...\n", x.shape)
print("\nShape of Array2...\n", y.shape)
7. สร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似
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
# สร้างอาร์เรย์พิกัดจุด ทุกอาร์เรย์มีรูปทรงเหมือนกัน
x = np.array([0.1, 1.4])
y = np.array([1.7, 2.8])
# แสดงอาร์เรย์
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)
# สร้างเมทริกซ์แบบヴァンเดอร์มอนด์疑似 ของพหุนามเฮอร์ไมท์
x_deg, y_deg = 2, 3
print("\nResult...\n", H.hermvander2d(x, y, [x_deg, y_deg]))
ผลลัพธ์ที่คาดหวัง
Array1...
[0.1 1.4]
Array2...
[1.7 2.8]
Array1 datatype...
float64
Array2 datatype...
float64
Dimensions of Array1...
1
Dimensions of Array2...
1
Shape of Array1...
(2,)
Shape of Array2...
(2,)
Result...
[[ 1.0000000e+00 3.4000000e+00 9.5600000e+00 1.8904000e+01 2.0000000e-01 6.8000000e-01 1.9120000e+00 3.7808000e+00 -1.9600000e+00 -6.6640000e+00 -1.8737600e+01 -3.7051840e+01]
[ 1.0000000e+00 5.6000000e+00 2.9360000e+01 1.4201600e+02 2.8000000e+00 1.5680000e+01 8.2208000e+01 3.9764480e+02 5.8400000e+00 3.2704000e+01 1.7146240e+02 8.2937344e+02]]