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

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


บทนำ

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

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

ขั้นตอน

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

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

สร้างอาร์เรย์พิกัดจุด ทั้งหมดมีรูปร่างเดียวกัน โดยใช้เมธอด numpy.array():

x = np.array([1, 2])
y = np.array([3, 4])

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

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)

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

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

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

import numpy as np
from numpy.polynomial import chebyshev as C
# สร้างอาร์เรย์พิกัดจุด ทั้งหมดมีรูปร่างเดียวกัน โดยใช้ numpy.array()
x = np.array([1, 2])
y = np.array([3, 4])
# แสดงอาร์เรย์
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)
# เพื่อสร้างเมทริกซ์แวนเดอร์มอนด์แบบปลอมของพหุนามเชบิเชฟ ใช้ chebyshev.chebvander2d() ใน Python NumPy
x_deg, y_deg = 2, 3
print("\nผลลัพธ์...\n", C.chebvander2d(x, y, [x_deg, y_deg]))

ผลลัพธ์

อาร์เรย์1...
 [1 2]
อาร์เรย์2...
 [3 4]
ชนิดข้อมูลอาร์เรย์1...
 int64
ชนิดข้อมูลอาร์เรย์2...
 int64
มิติของอาร์เรย์1...
 1
มิติของอาร์เรย์2...
 1
รูปร่างของอาร์เรย์1...
 (2,)
รูปร่างของอาร์เรย์2...
 (2,)
ผลลัพธ์...
 [[1.000e+00 3.000e+00 1.700e+01 9.900e+01 1.000e+00 3.000e+00 1.700e+01 9.900e+01 1.000e+00 3.000e+00 1.700e+01 9.900e+01]
 [1.000e+00 4.000e+00 3.100e+01 2.440e+02 2.000e+00 8.000e+00 6.200e+01 4.880e+02 7.000e+00 2.800e+01 2.170e+02 1.708e+03]]