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

การสร้างเมทริกซ์แวนเดอร์มอนด์แบบปลอมของพหุนามเชบิเชฟด้วยจุดพิกัด float ใน 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([0.1, 1.4])
y = np.array([1.7, 2.8])

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

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([0.1, 1.4])
y = np.array([1.7, 2.8])
# แสดงอาร์เรย์
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...
 [0.1 1.4]
อาร์เรย์2...
 [1.7 2.8]
ชนิดข้อมูลอาร์เรย์1...
 float64
ชนิดข้อมูลอาร์เรย์2...
 float64
มิติของอาร์เรย์1...
 1
มิติของอาร์เรย์2...
 1
รูปร่างของอาร์เรย์1...
 (2,)
รูปร่างของอาร์เรย์2...
 (2,)
ผลลัพธ์...
 [[ 1.0000000e+00 1.7000000e+00 4.7800000e+00 1.4552000e+01 1.0000000e-01 1.7000000e-01 4.7800000e-01 1.4552000e+00 -9.8000000e-01 -1.6660000e+00 -4.6844000e+00 -1.4260960e+01]
 [ 1.0000000e+00 2.8000000e+00 1.4680000e+01 7.9408000e+01 1.4000000e+00 3.9200000e+00 2.0552000e+01 1.1117120e+02 2.9200000e+00 8.1760000e+00 4.2865600e+01 2.3187136e+02]]