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

การสร้างเมทริกซ์ Vandermonde แบบปลอมของพหุนาม Laguerre กับจุดเชิงซ้อน x,y ใน Python


ภาพรวม

ใช้ฟังก์ชัน laguerre.lagvander2d() ใน NumPy เพื่อสร้างเมทริกซ์ Vandermonde แบบปลอม (pseudo-Vandermonde matrix) ของพหุนาม Laguerre 2 มิติ สำหรับจุดที่มีค่าเชิงซ้อน

พารามิเตอร์

  • x, y: อาร์เรย์จุดพิกัด ต้องมีรูปร่างเหมือนกัน dtype จะแปลงเป็น float64 หรือ complex128
  • deg: รายการมุมสูงสุด [x_deg, y_deg]

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

  1. นำเข้าไลบรารี
    import numpy as np
    from numpy.polynomial import laguerre as L
    
  2. สร้างอาร์เรย์จุดพิกัดเชิงซ้อน
    x = np.array([-2.+2.j, -1.+2.j])
    y = np.array([1.+2.j, 2.+2.j])
    
  3. ตรวจสอบคุณสมบัติอาร์เรย์
    print("อาร์เรย์ 1...\n", x)
    print("\nอาร์เรย์ 2...\n", y)
    print("\nชนิดข้อมูลอาร์เรย์ 1...\n", x.dtype)
    print("\nชนิดข้อมูลอาร์เรย์ 2...\n", y.dtype)
    print("\nมิติอาร์เรย์ 1...\n", x.ndim)
    print("\nมิติอาร์เรย์ 2...\n", y.ndim)
    print("\nรูปร่างอาร์เรย์ 1...\n", x.shape)
    print("\nรูปร่างอาร์เรย์ 2...\n", y.shape)
    
  4. สร้างเมทริกซ์ Vandermonde แบบปลอม
    x_deg, y_deg = 2, 3
    print("\nผลลัพธ์...\n", L.lagvander2d(x, y, [x_deg, y_deg]))
    

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

import numpy as np
from numpy.polynomial import laguerre as L

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

print("อาร์เรย์ 1...\n", x)
print("\nอาร์เรย์ 2...\n", y)
print("\nชนิดข้อมูลอาร์เรย์ 1...\n", x.dtype)
print("\nชนิดข้อมูลอาร์เรย์ 2...\n", y.dtype)
print("\nมิติอาร์เรย์ 1...\n", x.ndim)
print("\nมิติอาร์เรย์ 2...\n", y.ndim)
print("\nรูปร่างอาร์เรย์ 1...\n", x.shape)
print("\nรูปร่างอาร์เรย์ 2...\n", y.shape)

x_deg, y_deg = 2, 3
print("\nผลลัพธ์...\n", L.lagvander2d(x, y, [x_deg, y_deg]))

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

อาร์เรย์ 1...
 [-2.+2.j -1.+2.j]
อาร์เรย์ 2...
 [1.+2.j 2.+2.j]
ชนิดข้อมูลอาร์เรย์ 1...
 complex128
ชนิดข้อมูลอาร์เรย์ 2...
 complex128
มิติอาร์เรย์ 1...
 1
มิติอาร์เรย์ 2...
 1
รูปร่างอาร์เรย์ 1...
 (2,)
รูปร่างอาร์เรย์ 2...
 (2,)
ผลลัพธ์...
 [[ 1.+0.j   0.-2.j  -2.5-2.j  ... ]
 [ 1.+0.j  -1.-2.j  -3.+0.j  ... ]]