บทนำ
ในการสร้างเมทริกซ์วนเดอร์มอนด์แบบปลอม (pseudo-Vandermonde matrix) ของดีกรีที่กำหนดและจุดตัวอย่าง (x, y, z) สามารถใช้ฟังก์ชัน polynomial.polyvander3d() ใน NumPy ของ Python เมทริกซ์นี้ใช้ในการแก้ปัญหาการเหมาะสมพหุนามหลายตัวแปร
พารามิเตอร์สำคัญ
- x, y, z: อาร์เรย์พิกัดจุด ต้องมีรูปร่างเหมือนกัน dtype จะถูกแปลงเป็น float64 หรือ complex128
- deg: รายการของดีกรีสูงสุดในรูปแบบ [x_deg, y_deg, z_deg]
ขั้นตอนการทำงาน
1. นำเข้าไลบรารีที่จำเป็น
import numpy as np
from numpy.polynomial.polynomial import polyvander3d
2. สร้างอาร์เรย์พิกัดจุดแบบซ้อน
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. สร้างเมทริกซ์วนเดอร์มอนด์ 3 มิติ
x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n", polyvander3d(x, y, z, [x_deg, y_deg, z_deg]))
ตัวอย่างโค้ดสมบูรณ์
import numpy as np
from numpy.polynomial.polynomial import polyvander3d
# สร้างอาร์เรย์พิกัดจุดแบบซ้อน
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)
# สร้างเมทริกซ์วนเดอร์มอนด์ 3 มิติ
x_deg, y_deg, z_deg = 2, 3, 4
print("\nResult...\n", polyvander3d(x, y, z, [x_deg, y_deg, z_deg]))
ผลลัพธ์
ผลลัพธ์เป็นเมทริกซ์ขนาดใหญ่ที่มีค่าซ้อน (complex numbers) แสดงค่าของพจน์พหุนาม x^i y^j z^k สำหรับทุกชุดของ i, j, k ที่ i ≤ 2, j ≤ 3, k ≤ 4 ที่แต่ละจุดตัวอย่าง
สรุป
ฟังก์ชัน polyvander3d() สร้างเมทริกซ์วนเดอร์มอนด์ 3 มิติสำหรับจุดแบบซ้อน ซึ่งเป็นฐานสำคัญในการแก้ปัญหาการเหมาะสมพหุนามหลายตัวแปรและการประมาณค่าฟังก์ชัน