Giải phương trình bậc 2 một ẩn bằng Python

Bài viết này sẽ hướng dẫn bạn cách giải phương trình bậc hai một ẩn ax^2+bx+c=0 bằng Python, đây là phương trình mà bạn đã được học ở lớp 9. Trước khi bắt tay vào viết chương trình trên Python, chúng ta phải biết cách giải phương trình bậc 2 đã nhé:

Cách giải phương trình bậc 2 một ẩn

Giải phương trình bậc 2 là đi tìm các giá trị của x sao cho khi thay x vào phương trình thì thỏa mãn ax^2+bx+c=0.

Bước 1: Tính Δ=b2-4ac

Bước 2: So sánh Δ với 0

  • Δ < 0 => phương trình (1) vô nghiệm
  • Δ = 0 => phương trình (1) có nghiệm kép x_{1} =x_{2} = - \frac{b}{2a}
  • Δ > 0 => phương trình (1) có 2 nghiệm phân biệt, ta dùng công thức nghiệm sau:

x_{1} =\frac{-b+\sqrt{\triangle } }{2a}x_{2} =\frac{-b-\sqrt{\triangle } }{2a}

Giải phương trình bậc 2 một ẩn với Python

Bước 1: Cho phép người dùng nhập vào 3 số: a, b, c với điều kiện a và b ≠ 0

Bước 2: Tính Delta (Δ)

Bước 3: Theo phân tích giải phương trình bậc 2 ở trên, chúng ta có thể sử dụng công thức sau để tính toán nghiệm của phương trình bậc hai:

x = (-b ± sqrt(b^2 - 4ac)) / 2a với sqrt() là hàm tính căn bậc hai.

Code Python giải phương trình bậc 2 một ẩn:

import math
 
print("Giải phương trình bậc 2: ax2 + bx + c = 0 (a, b khác 0)")
print("Bạn đang làm bài tập Python trên QuanTriMang")
print("============")

# Nhập số a, b và kiểm tra điều kiện khác 0
a = float(input("Mời bạn nhập hệ số a: "))
while True:
    if a == 0:
        a = float(input("Số a phải khác 0. Mời nhập lại số a: "))
    else:
        break
    
b = float(input("Mời bạn nhập hệ số b: "))
while True:
    if b == 0:
        b = float(input("Số b phải khác 0. Mời nhập lại số b: "))
    else:
        break
    
# Nhập số c
c = float(input("Mời bạn nhập hệ số c: "))

# Tính Delta
delta = b**2 - 4 * a * c

# Tìm nghiệm của phương trình
if delta < 0:
    print("Phương trình vô nghiệm")
elif delta == 0:
    print("Phương trình có nghiệm kép x1 = x2 = ", -(b / (2 * a)) )
else:
    print("Phương trình có hai nghiệm phân biệt:")
    print("x1 = ", (-(b) + math.sqrt(delta))/(2*a) )
    print("x2 = ", (-(b) - math.sqrt(delta))/(2*a) )

Bạn hãy thử chạy mã lệnh trên bằng công cụ Python Online của QuanTriMang và xem kết quả nhé! Một số ví dụ có thể thử:

  • x^2-3x+2=0 (a=1, b=-3, c=2)
  • x^2+x-6=0 (a=1, b=1, c=-6)
Thứ Tư, 02/10/2024 04:02
352 👨 116.340
3 Bình luận
Sắp xếp theo
  • Minh Hiếu
    Minh Hiếu

    có 1 số lỗi là denta và nhập c không cần thụt vào lề


    Thích Phản hồi 21/09/22
    • Bách Lê
      Bách Lê

      bậc 2 một ẩn chỉ cần đk a khác 0 thôi ạ ??

      Thích Phản hồi 01/11/23
      • Quy Vo thi
        Quy Vo thi

        Đoạn lệnh cuối print x1 lặp lại 2 lần là cố tình hay là lỗi vậy m

        Thích Phản hồi 06/05/23
        • MOD
          MOD

          Là nhầm đó bạn 🤣

          Thích Phản hồi 10/05/23
      ❖ Python