Câu hỏi
Bài 8
Đề bài: Giải phương trình lôgarit dang log_a(f(x)) = b.
Kiểm tra điều kiện xác định f(x) > 0.
Ví dụ: log_2(x^2 - 3x + 2) = 1.
Ví dụ: log_2(x^2 - 3x + 2) = 1
Kết quả:
x^2 - 3x + 2 = 2^1 = 2
x^2 - 3x = 0 => x(x-3) = 0
x = 0: f(0) = 0 + 2 - 0 = 2 > 0 => Kiểm tra OK, nhung log_2(2) = 1 OK
x = 3: f(3) = 9 - 9 + 2 = 2 > 0 => OK
Tap nghiệm: {0, 3}
Câu trả lời
import math
print("Giai log_a(ax^2 + bx + c) = k")
a_log = float(input("Co so a cua logarit (a>0, a!=1): "))
k = float(input("Ve phai k: "))
# f(x) = Ax^2 + Bx + C
A = float(input("He so A trong f(x) = Ax^2 + Bx + C: "))
B = float(input("He so B: "))
C = float(input("He so C: "))
# log_a(f(x)) = k => f(x) = a^k
gia_tri_yen_cau = a_log**k
print(f"\nf(x) = {a_log}^{k} = {gia_tri_yen_cau}")
# Giai Ax^2 + Bx + C = gia_tri_yen_cau
A2 = A
B2 = B
C2 = C - gia_tri_yen_cau
delta = B2**2 - 4*A2*C2 if A2 != 0 else None
nghiem = []
if A2 == 0:
if B2 != 0:
x = -C2 / B2
nghiem.append(x)
else:
if delta > 0:
x1 = (-B2 - math.sqrt(delta)) / (2*A2)
x2 = (-B2 + math.sqrt(delta)) / (2*A2)
nghiem = [x1, x2]
elif delta == 0:
nghiem = [-B2 / (2*A2)]
print("\nKiem tra dieu kien xac dinh f(x) > 0:")
hop_le = []
for x in nghiem:
fx = A*x**2 + B*x + C
if fx > 1e-12:
hop_le.append(round(x, 6))
print(f" x = {round(x,4)}: f(x) = {round(fx,4)} > 0 => NHAN")
else:
print(f" x = {round(x,4)}: f(x) = {round(fx,4)} <= 0 => LOAI")
print(f"Tap nghiem: {hop_le if hop_le else 'Rong'}")