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

คืนค่าเมทริกซ์คอมแพเนียนแบบปรับขนาดของอาร์เรย์ 1 มิติ สัมประสิทธิ์เชบิเชฟใน Python

หากต้องการคืนค่าเมทริกซ์คอมแพเนียน (companion matrix) แบบปรับขนาด (scaled) ของอาร์เรย์ 1 มิติ ของสัมประสิทธิ์พหุนาม ให้ใช้เมธอด chebyshev.chebcompanion() ใน Python NumPy

พหุนามฐาน (basis polynomials) จะถูกปรับขนาด ทำให้เมทริกซ์คอมแพเนียนเป็นสมมาตร (symmetric) เมื่อ c เป็นพหุนามฐานเชบิเชฟ ซึ่งให้การประมาณค่าเอกค่า (eigenvalue estimates) ที่ดีกว่ากรณีที่ไม่ปรับขนาด และสำหรับพหุนามฐาน เอกค่าถูกประกันว่าจะเป็นจำนวนจริง หากใช้ numpy.linalg.eigvalsh เพื่อหาค่า

เมธอดคืนค่าเมทริกซ์คอมแพเนียนแบบปรับขนาด ขนาด (deg, deg) พารามิเตอร์ c คืออาร์เรย์ 1 มิติ ของสัมประสิทธิ์อนุกรมเชบิเชฟ เรียงจากอันดับต่ำไปสูง

ขั้นตอนการใช้งาน

1. นำเข้าไลบรารีที่จำเป็น

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

2. สร้างอาร์เรย์ 1 มิติ ของสัมประสิทธิ์

c = np.array([1, 2, 3])

3. แสดงอาร์เรย์

print("Our Array...\n", c)

4. ตรวจสอบมิติ

print("\nDimensions of our Array...\n", c.ndim)

5. ตรวจสอบชนิดข้อมูล

print("\nDatatype of our Array object...\n", c.dtype)

6. ตรวจสอบรูปร่าง

print("\nShape of our Array object...\n", c.shape)

7. คืนค่าเมทริกซ์คอมแพเนียนแบบปรับขนาดด้วย chebyshev.chebcompanion()

print("\nResult...\n", C.chebcompanion(c))

ตัวอย่างโค้ดเต็ม

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

# สร้างอาร์เรย์สัมประสิทธิ์ 1 มิติ
c = np.array([1, 2, 3])

# แสดงอาร์เรย์
print("Our Array...\n", c)

# ตรวจสอบมิติ
print("\nDimensions of our Array...\n", c.ndim)

# ตรวจสอบชนิดข้อมูล
print("\nDatatype of our Array object...\n", c.dtype)

# ตรวจสอบรูปร่าง
print("\nShape of our Array object...\n", c.shape)

# คืนค่าเมทริกซ์คอมแพเนียนแบบปรับขนาด
print("\nResult...\n", C.chebcompanion(c))

ผลลัพธ์ที่ได้

Our Array...
 [1 2 3]
Dimensions of our Array...
 1
Datatype of our Array object...
 int64
Shape of our Array object...
 (3,)
Result...
 [[ 0.         0.47140452]
 [ 0.70710678 -0.33333333]]

คำอธิบายเพิ่มเติม

อนุกรมเชบิเชฟ: 1·T₀ + 2·T₁ + 3·T₂ (อันดับ 2)

เมทริกซ์คอมแพเนียนขนาด 2×2 (deg=2):

[[ 0.          0.47140452]
 [ 0.70710678 -0.33333333]]

เมทริกซ์นี้เป็น สมมาตร (symmetric) เนื่องจากการปรับขนาด basis ทำให้เมทริกซ์คอมแพเนียนของเชบิเชฟเป็นสมมาตรเสมอ

เอกค่า (eigenvalues) ของเมทริกซ์นี้คือ รากของอนุกรมเชบิเชฟ (roots of the Chebyshev series)

สามารถหาเอกค่าได้ด้วย np.linalg.eigvalsh() (สำหรับเมทริกซ์สมมาตร) ซึ่งเร็วกว่าและแม่นยำกว่า eigvals() ทั่วไป

การใช้งาน:

  • การหา roots ของอนุกรมเชบิเชฟ
  • การวิเคราะห์ความเสถียร (stability analysis)
  • การคำนวณเชิงตัวเลขขั้นสูง
คืนค่าเมทริกซ์คอมแพเนียนแบบปรับขนาดของอาร์เรย์ 1 มิติ สัมประสิทธิ์เชบิเชฟใน Python

ใช้ chebyshev.chebcompanion() หาเมทริกซ์คอมแพเนียนแบบปรับขนาด 2x2 ของอนุกรมเชบิเชฟ 1·T₀+2·T₁+3·T₂ เมทริกซ์สมมาตร เอกค่า = รากของอนุกรม