20/12/2024
20/12/2024
Tuyệt vời! Việc sử dụng Python để giải hệ phương trình bậc nhất hai ẩn là một cách tiếp cận hiệu quả. Dưới đây là một đoạn code Python hoàn chỉnh để thực hiện việc này, kết hợp cả việc xử lý lỗi và giao diện người dùng đơn giản:
Python
import math
def giai_he_phuong_trinh(a1, b1, c1, a2, b2, c2):
"""
Hàm giải hệ phương trình bậc nhất hai ẩn:
a1*x + b1*y = c1
a2*x + b2*y = c2
Args:
a1, b1, c1: Hệ số của phương trình thứ nhất
a2, b2, c2: Hệ số của phương trình thứ hai
Returns:
Một tuple chứa nghiệm (x, y) nếu hệ có nghiệm duy nhất,
"Vô số nghiệm" nếu hệ có vô số nghiệm,
"Vô nghiệm" nếu hệ vô nghiệm.
"""
D = a1 * b2 - a2 * b1
Dx = c1 * b2 - c2 * b1
Dy = a1 * c2 - a2 * c1
if D == 0:
if Dx == 0 and Dy == 0:
return "Vô số nghiệm"
else:
return "Vô nghiệm"
else:
x = Dx / D
y = Dy / D
return x, y
if __name__ == "__main__":
while True:
try:
a1 = float(input("Nhập hệ số a1: "))
b1 = float(input("Nhập hệ số b1: "))
c1 = float(input("Nhập hệ số c1: "))
a2 = float(input("Nhập hệ số a2: "))
b2 = float(input("Nhập hệ số b2: "))
c2 = float(input("Nhập hệ số c2: "))
ket_qua = giai_he_phuong_trinh(a1, b1, c1, a2, b2, c2)
print("Kết quả:")
print(ket_qua)
except ValueError:
print("Vui lòng nhập các hệ số là số!")
except ZeroDivisionError:
print("Hệ phương trình vô nghiệm hoặc vô số nghiệm!")
chon = input("Bạn có muốn tiếp tục không? (y/n): ")
if chon.lower() != 'y':
break
Giải thích code:
Hàm giai_he_phuong_trinh:
Tính định thức D, Dx, Dy để kiểm tra số nghiệm của hệ phương trình.
Nếu D khác 0, hệ có nghiệm duy nhất và tính được x, y.
Nếu D bằng 0 và Dx, Dy cũng bằng 0, hệ có vô số nghiệm.
Nếu D bằng 0 và Dx hoặc Dy khác 0, hệ vô nghiệm.
Phần chính:
Nhập các hệ số từ người dùng.
Gọi hàm giai_he_phuong_trinh để giải hệ và in kết quả ra màn hình.
Xử lý các trường hợp ngoại lệ như nhập sai kiểu dữ liệu hoặc hệ phương trình vô nghiệm hoặc vô số nghiệm.
Cho phép người dùng nhập nhiều hệ phương trình liên tiếp.
Cách sử dụng:
Lưu code vào một file Python (ví dụ: giai_he_phuong_trinh.py).
Chạy file trong môi trường Python.
Nhập các hệ số theo yêu cầu.
Kết quả sẽ được in ra màn hình.
Ưu điểm của code này:
Dễ hiểu: Code được viết rõ ràng, có chú thích.
Đầy đủ: Xử lý được tất cả các trường hợp có thể xảy ra của hệ phương trình bậc nhất hai ẩn.
Giao diện thân thiện: Cho phép người dùng nhập nhiều hệ phương trình liên tiếp.
Xử lý lỗi tốt: Thông báo lỗi cho người dùng khi nhập sai dữ liệu.
20/12/2024
import numpy as np def solve_linear_equation(a1, b1, c1, a2, b2, c2): A = np.array([a1, b1] , [a2, b2]]) B = np.array([c1, c2]) try: solution = np.linalg.solve(A, B) return solution except np.linalg.LinAlgError: return "Hệ phương trình vô nghiệm hoặc vô số nghiệm" a1, b1, c1 = 2, 3, 5 a2, b2, c2 = 3, 4, 6 result = solve_linear_equation(a1, b1, c1, a2, b2, c2) if isinstance(result, str): print(result) else: print(f"Giá trị của x là: {result[0]}") print(f"Giá trị của y là: {result[1]}")
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
22/09/2025
22/09/2025
22/09/2025
17/09/2025
Top thành viên trả lời