Trình tìm nghiệm phương trình bậc hai của Python
Giải phương trình bậc hai và xác định nghiệm thực và nghiệm phức bằng cách sử dụng công thức phân biệt trong Python.
Tổng quan
Phương trình bậc hai có dạng ax² + bx + c = 0. Để giải phương trình này cần sử dụng công thức bậc hai: `x = (-b ± sqrt(b² - 4ac)) / 2a`.
Thuật ngữ `b² - 4ac` được gọi là phân biệt đối xử. Nếu dương thì có hai nghiệm thực khác nhau. Nếu không, một gốc thực sự. Nếu âm thì có hai nghiệm phức.
Mô-đun `cmath` tích hợp của Python hỗ trợ các số phức, cho phép chúng ta tìm nghiệm ngay cả khi phân biệt số âm.
Đầu ra mã & thực thi
Bộ giải mạnh mẽ có khả năng xử lý các phân biệt thực, 0 và phức tạp.
quadratic.py
Thử trong Trình chỉnh sửaimport cmath
def find_roots(a, b, c):
d = (b**2) - (4*a*c) # discriminant
# Calculate both roots
sol1 = (-b - cmath.sqrt(d)) / (2*a)
sol2 = (-b + cmath.sqrt(d)) / (2*a)
return sol1, sol2
# Test equation: x^2 - 5x + 6 = 0
r1, r2 = find_roots(1, -5, 6)
print("Roots of x^2 - 5x + 6 = 0:")
print(f"Root 1: {r1.real:.1f}")
print(f"Root 2: {r2.real:.1f}")Đầu ra thiết bị đầu cuối
Roots of x^2 - 5x + 6 = 0:
Root 1: 2.0
Root 2: 3.0Triển khai từng bước
- Mô hình vật lý và hệ thống theo dõi quỹ đạo
- Vectơ phát hiện va chạm hình học
- Người giải toán
Câu hỏi thường gặp
Tại sao lại sử dụng `cmath` thay vì `math`?
Mô-đun `math` tiêu chuẩn sẽ đưa ra ValueError nếu bạn cố lấy căn bậc hai của một số âm. Mô-đun `cmath` (toán phức) tự động xử lý các nghiệm ảo.