Câu hỏi
Bài 1
Đề bài: Nhập hệ số a, b, c, d của hàm bậc ba f(x) = ax^3 + bx^2 + cx + d.
Tính đạo hàm f'(x) = 3ax^2 + 2bx + c.
Tìm cực đại, cực tiểu (nghiệm của f'(x) = 0).
Xác định khoảng đồng biến, nghịch biến.
Tìm điểm uon (f''(x) = 0).
Ví dụ: f(x) = x^3 - 3x + 2
Kết quả:
f'(x) = 3x^2 - 3 = 0 => x = -1 và x = 1
f(-1) = 4 (cuc DAI, vi f'' = -6 < 0)
f(1) = 0 (cuc TIEU, vi f'' = 6 > 0)
Dong bien: (-inf, -1) và (1, +inf)
Nghich bien: (-1, 1)
Diem uon: f''(x) = 6x = 0 => x = 0, f(0) = 2
Câu trả lời
import math
a = float(input("He so a (bac 3): "))
b = float(input("He so b (bac 2): "))
c = float(input("He so c (bac 1): "))
d = float(input("He so d (hang so): "))
def f(x):
return a*x**3 + b*x**2 + c*x + d
def f_dd(x): # dao ham cap 1
return 3*a*x**2 + 2*b*x + c
def f_dd2(x): # dao ham cap 2
return 6*a*x + 2*b
# Tim cuc tri: giai 3ax^2 + 2bx + c = 0
A2 = 3*a
B2 = 2*b
C2 = c
delta = B2**2 - 4*A2*C2
print(f"\nf'(x) = {3*a}x^2 + {2*b}x + {c}")
if abs(A2) < 1e-12:
print("a = 0, day khong phai ham bac 3")
elif delta < 0:
print("f'(x) > 0 voi moi x => Ham dong bien tren toan truc so, khong co cuc tri")
elif delta == 0:
x0 = -B2 / (2*A2)
print(f"f'(x) = 0 co nghiem kep x = {round(x0,4)} - diem uon theo goc")
else:
x1 = (-B2 - math.sqrt(delta)) / (2*A2)
x2 = (-B2 + math.sqrt(delta)) / (2*A2)
if x1 > x2:
x1, x2 = x2, x1
y1 = f(x1)
y2 = f(x2)
dd2_x1 = f_dd2(x1)
dd2_x2 = f_dd2(x2)
print(f"\nNghiem f'(x) = 0: x1 = {round(x1,4)}, x2 = {round(x2,4)}")
print(f"f({round(x1,4)}) = {round(y1,4)} => {'Cuc DAI' if dd2_x1 < 0 else 'Cuc TIEU'} (f'' = {round(dd2_x1,4)})")
print(f"f({round(x2,4)}) = {round(y2,4)} => {'Cuc DAI' if dd2_x2 < 0 else 'Cuc TIEU'} (f'' = {round(dd2_x2,4)})")
print(f"\nDong bien: (-inf, {round(x1,4)}) va ({round(x2,4)}, +inf)")
print(f"Nghich bien: ({round(x1,4)}, {round(x2,4)})")
# Diem uon
x_uon = -b / (3*a)
y_uon = f(x_uon)
print(f"\nDiem uon: x = {round(x_uon,4)}, f(x) = {round(y_uon,4)}")
print(f"Toa do diem uon: ({round(x_uon,4)}, {round(y_uon,4)})")