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

การสร้างเมทริกซ์แวนเดอร์มอนด์ของพหุนามเชบิเชฟด้วยจุดแบบเชิงซ้อนใน Python


บทนำ

เพื่อสร้างเมทริกซ์แวนเดอร์มอนด์ (Vandermonde matrix) ของพหุนามเชบิเชฟ (Chebyshev polynomial) ให้ใช้ chebyshev.chebvander() ใน Python NumPy เมธอดนี้ส่งคืนเมทริกซ์แวนเดอร์มอนด์ รูปร่างของเมทริกซ์ที่ส่งคืนคือ x.shape + (deg + 1,) โดยดัชนีสุดท้ายคือองศาของพหุนามเชบิเชฟที่สอดคล้อง dtype จะเหมือนกับ x ที่แปลงแล้ว

พารามิเตอร์ a คืออาร์เรย์ของจุด dtype จะถูกแปลงเป็น float64 หรือ complex128 ขึ้นอยู่กับว่ามีองค์ประกอบใดเป็นเชิงซ้อนหรือไม่ หาก x เป็นสเกลาร์ จะถูกแปลงเป็นอาร์เรย์ 1-D พารามิเตอร์ deg คือองศาของเมทริกซ์ที่ได้

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:

import numpy as np
from numpy.polynomial import chebyshev as C

สร้างอาร์เรย์:

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

แสดงอาร์เรย์:

print("อาร์เรย์ของเรา...\n", x)

ตรวจสอบมิติ:

print("\nมิติของอาร์เรย์...\n", x.ndim)

ดูชนิดข้อมูล:

print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", x.dtype)

ดูรูปร่าง:

print("\nรูปร่างของออบเจกต์อาร์เรย์...\n", x.shape)

เพื่อสร้างเมทริกซ์แวนเดอร์มอนด์ของพหุนามเชบิเชฟ ให้ใช้ chebyshev.chebvander():

print("\nผลลัพธ์...\n", C.chebvander(x, 2))

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

import numpy as np
from numpy.polynomial import chebyshev as C
# สร้างอาร์เรย์
x = np.array([-2.+2.j, -1.+2.j, 0.+2.j, 1.+2.j, 2.+2.j])
# แสดงอาร์เรย์
print("อาร์เรย์ของเรา...\n", x)
# ตรวจสอบมิติ
print("\nมิติของอาร์เรย์...\n", x.ndim)
# ดูชนิดข้อมูล
print("\nชนิดข้อมูลของออบเจกต์อาร์เรย์...\n", x.dtype)
# ดูรูปร่าง
print("\nรูปร่างของออบเจกต์อาร์เรย์...\n", x.shape)
# เพื่อสร้างเมทริกซ์แวนเดอร์มอนด์ของพหุนามเชบิเชฟ ใช้ chebyshev.chebvander() ใน Python NumPy
# เมธอดส่งคืนเมทริกซ์แวนเดอร์มอนด์ รูปร่างของเมทริกซ์ที่ส่งคืนคือ x.shape + (deg + 1,) โดยดัชนีสุดท้ายคือองศาของพหุนามเชบิเชฟที่สอดคล้อง dtype จะเหมือนกับ x ที่แปลงแล้ว
# พารามิเตอร์ a คืออาร์เรย์ของจุด dtype จะถูกแปลงเป็น float64 หรือ complex128 ขึ้นอยู่กับว่ามีองค์ประกอบใดเป็นเชิงซ้อนหรือไม่ หาก x เป็นสเกลาร์ จะถูกแปลงเป็นอาร์เรย์ 1-D
# พารามิเตอร์ deg คือองศาของเมทริกซ์ที่ได้
print("\nผลลัพธ์...\n", C.chebvander(x, 2))

ผลลัพธ์

อาร์เรย์ของเรา...
 [-2.+2.j -1.+2.j 0.+2.j 1.+2.j 2.+2.j]
มิติของอาร์เรย์...
 1
ชนิดข้อมูลของออบเจกต์อาร์เรย์...
 complex128
รูปร่างของออบเจกต์อาร์เรย์...
 (5,)
ผลลัพธ์...
 [[ 1. +0.j -2. +2.j -1.-16.j]
 [ 1. +0.j -1. +2.j -7. -8.j]
 [ 1. +0.j  0. +2.j -9. +0.j]
 [ 1. +0.j  1. +2.j -7. +8.j]
 [ 1. +0.j  2. +2.j -1.+16.j]]