Câu hỏi
Bài 2
Đề bài: Nhập hệ số a, b của hàm trung phuong f(x) = ax^4 + bx^2 + c.
Khao sat: tính đối xứng (hàm chan), cực trị, bien thien.
Tìm GTLN, GTNN trên đoạn [-n, n].
Ví dụ: f(x) = x^4 - 8x^2 + 7 trên [-3, 3]
Kết quả:
f(-x) = f(x) => Ham CHAN (đối xứng qua truc tung)
f'(x) = 4x^3 - 16x = 4x(x^2 - 4) = 0 => x = 0, x = +-2
f(0) = 7 (cuc DAI)
f(+-2) = -9 (cuc TIEU)
Tren [-3, 3]: f(+-3) = 81-72+7 = 16 => GTLN = 16, GTNN = -9
Câu trả lời
a = float(input("He so a (bac 4): "))
b = float(input("He so b (bac 2): "))
c = float(input("He so c (hang so): "))
n = float(input("Doan [-n, n], nhap n: "))
def f(x):
return a*x**4 + b*x**2 + c
# Kiem tra ham chan
print("\nKiem tra tinh doi xung: f(-x) = f(x)?")
x_test = 2.5
print(f" f({x_test}) = {f(x_test)}, f({-x_test}) = {f(-x_test)}")
print(f" => Ham {'CHAN (doi xung Oy)' if f(x_test)==f(-x_test) else 'KHONG CHAN'}")
# Cuc tri: f'(x) = 4ax^3 + 2bx = 2x(2ax^2 + b) = 0
# x = 0 hoac 2ax^2 + b = 0
import math
diem_ct = [0]
if a != 0:
gia_tri = -b / (2*a)
if gia_tri > 0:
diem_ct.append(math.sqrt(gia_tri))
diem_ct.append(-math.sqrt(gia_tri))
print(f"\nCac diem cuc tri:")
for x0 in sorted(diem_ct):
y0 = f(x0)
f_dd2 = 12*a*x0**2 + 2*b
loai = "Cuc DAI" if f_dd2 < 0 else ("Cuc TIEU" if f_dd2 > 0 else "Diem uon")
print(f" x = {round(x0,4)}, f(x) = {round(y0,4)} => {loai}")
# GTLN GTNN tren [-n, n]
diem_xet = sorted(diem_ct + [-n, n])
diem_xet = [x for x in diem_xet if -n <= x <= n]
gia_tri = {round(x,6): round(f(x),6) for x in diem_xet}
gtln = max(gia_tri.values())
gtnn = min(gia_tri.values())
print(f"\nTren [{-n}, {n}]:")
for x, y in sorted(gia_tri.items()):
print(f" f({x}) = {y}")
print(f"GTLN = {gtln}, GTNN = {gtnn}")