Bài 10 - Phương trình chua can
Đề bài: Giải phương trình can(ax + b) = cx + d.
Kiểm tra điều kiện xác định và loại nghiệm ngoai lai.
Ví dụ: can(2x + 3) = x
Kết quả:
DKXD: 2x + 3 >= 0 => x >= -1.5
Binh phuong 2 ve: 2x + 3 = x^2
x^2 - 2x - 3 = 0 => x = 3 (nhận) hoặc x = -1 (loại)
Đăng nhập để giáo viên có thể giao bài và nhận bài nộp của bạn.
Câu trả lời
import math
a = float(input("He so a (ax + b duoi dau can): "))
b = float(input("He so b: "))
c = float(input("He so c (cx + d ve phai): "))
d = float(input("He so d: "))
# Binh phuong 2 ve: ax+b = (cx+d)^2 = c^2*x^2 + 2cdx + d^2
# c^2*x^2 + (2cd - a)*x + (d^2 - b) = 0
A = c**2
B = 2*c*d - a
C = d**2 - b
nghiem = []
if A == 0:
if B != 0:
x = -C / B
nghiem.append(x)
else:
delta = B**2 - 4*A*C
if delta >= 0:
x1 = (-B + math.sqrt(delta)) / (2*A)
x2 = (-B - math.sqrt(delta)) / (2*A)
nghiem = [x1, x2]
# Kiem tra nghiem
print("Ket qua kiem tra nghiem:")
hop_le = []
for x in nghiem:
bieu_thuc_can = a * x + b
ve_phai = c * x + d
if bieu_thuc_can >= 0 and ve_phai >= 0:
hop_le.append(x)
print(f" x = {round(x,4)} => NHAN (can({round(bieu_thuc_can,4)}) = {round(math.sqrt(bieu_thuc_can),4)}, VP = {round(ve_phai,4)})")
else:
print(f" x = {round(x,4)} => LOAI (dieu kien khong thoa)")
if not hop_le:
print("Phuong trinh vo nghiem")