Bài 14
Đề bài: Tính diện tích giua 2 đường cong y = f(x) và y = g(x).
S = ∫(a đến b) |f(x) - g(x)| dx.
Tìm giao điểm của 2 đường cong truoc.
Ví dụ: y = x^2 và y = x + 2
Kết quả:
Giao điểm: x^2 = x + 2 => x = -1 và x = 2
S = ∫(-1 đến 2) (x+2 - x^2) dx = [x^2/2 + 2x - x^3/3](-1 đến 2) = 4.5
Đă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
print("f(x) = ax^2 + bx + c va g(x) = dx + e")
a_hs = float(input("He so a: "))
b_hs = float(input("He so b: "))
c_hs = float(input("He so c: "))
d_hs = float(input("He so d (bac 1 cua g): "))
e_hs = float(input("He so e (hang so cua g): "))
def f(x):
return a_hs*x**2 + b_hs*x + c_hs
def g(x):
return d_hs*x + e_hs
# Tim giao diem: f(x) = g(x)
# ax^2 + (b-d)x + (c-e) = 0
A2 = a_hs
B2 = b_hs - d_hs
C2 = c_hs - e_hs
delta = B2**2 - 4*A2*C2
if delta < 0:
print("2 duong cong khong giao nhau")
else:
x1 = (-B2 - math.sqrt(delta)) / (2*A2)
x2 = (-B2 + math.sqrt(delta)) / (2*A2)
if x1 > x2:
x1, x2 = x2, x1
print(f"\nGiao diem tai x = {round(x1,4)} va x = {round(x2,4)}")
so_chia = 10000
h_step = (x2 - x1) / so_chia
dien_tich = 0
for i in range(so_chia):
x_mid = x1 + (i + 0.5) * h_step
dien_tich += abs(f(x_mid) - g(x_mid)) * h_step
print(f"Dien tich giua 2 duong cong = {round(dien_tich, 6)}")
# Ly thuyet
def F_tru_G(x):
return a_hs*x**3/3 + (b_hs-d_hs)*x**2/2 + (c_hs-e_hs)*x
lt = abs(F_tru_G(x2) - F_tru_G(x1))
print(f"Gia tri ly thuyet: {round(lt, 6)}")