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