บทนำ
เมธอด polynomial.polyroots() ใน NumPy คำนวณรากของพหุนามจากสัมประสิทธิ์ ส่งคืนอาร์เรย์ของราก หากรากทั้งหมดเป็นจริง ผลลัพธ์เป็นจริง มิฉะนั้นเป็นเชิงซ้อน
วิธีการคำนวณ
ประมาณค่ารากจากค่าเอกเวกเตอร์ (eigenvalues) ของเมทริกซ์คอมแพนियन (companion matrix) รากที่ไกลจากจุดกำเนิดอาจมีข้อผิดพลาดมาก รากซ้ำ (multiplicity > 1) ก็มีข้อผิดพลาดมาก รากใกล้จุดกำเนิดสามารถปรับปรุงได้ด้วยวิธี نیوتن (Newton's method)
ตัวอย่าง: รากเชิงซ้อน
from numpy.polynomial import polynomial as P
j = complex(0, 1) # i = sqrt(-1)
print("Result (roots of a polynomial)...\n", P.polyroots((-j, j)))
print("\nType...\n", P.polyroots((-j, j)).dtype)
print("\nShape...\n", P.polyroots((-j, j)).shape)
ผลลัพธ์
Result (roots of a polynomial)... [1.+0.j]
Type... complex128
Shape... (1,)
พหุนาม -j + j*x = 0 → x = 1 รากเดียวคือ 1 (เป็นจริงแต่เก็บในรูป complex)