Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm nghiệm đa thức với nghiệm phức cho trước trong Python

Giới thiệu

Phương thức polynomial.polyroots() tính nghiệm của đa thức cho trước hệ số. Nếu hệ số phức, nghiệm cũng phức. Nghiệm được tìm qua giá trị riêng của ma trận đồng hành (companion matrix).

Ví dụ: Da thức có nghiệm phức

from numpy.polynomial import polynomial as P

# Da thức: -j + j*x = 0 → x = 1
# Hệ số: c[0] = -j, c[1] = j  (bậc 1)
j = complex(0, 1)
coeffs = (-j, j)
roots = P.polyroots(coeffs)
print("Nghiệm:", roots)
print("Kiểu dữ liệu:", roots.dtype)
print("Hình dạng:", roots.shape)

Kết quả

Nghiệm: [1.+0.j]
Kiểu dữ liệu: complex128
Hình dạng: (1,)

Lưu ý quan trọng

  • Nghiệm xa gốc tọa độ phức có thể có sai số lớn do bất ổn định số học.
  • Nghiệm bội (multiplicity > 1) cũng có sai số lớn hơn.
  • Nghiệm đơn lập gần gốc có thể cải thiện bằng phương pháp Newton.