Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

II.

Viết một đoạn code tính tổng Riemann trung tâm cho hàm số f(x, y) trên miền
hình chữ nhật R.
1/ Bài toán thực tế và lời giải tay
Tháp Dương Long là cụm tháp lớn nhất trong chuỗi tháp Chăm ở Bình Định. Một thợ thủ
công đã mô phỏng theo hình dáng của tháp để làm mô hình. Biết mô hình tháp có hình

dạng được giới hạn trên bởi mặt bậc hai , giới hạn dưới
bởi hình vuông: R=[0,16]x[0,16] (cm) và giới hạn xung quanh bởi những đường thẳng
song song Oz, tựa trên biên R. Ước lượng thể tích của mô hình bằng tổng Riemann trung
tâm với m=4 và n=4 để người thợ có thể ước lượng được chi phí vật liệu.

Cụm tháp Dương Long

Giải:
Ta có:
16−0 16−0
∆ x= =4 ∆ y= =4
4 4

 ∆ A=∆ x ∆ y=4∗4=16
¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿
Và (x 11 , y 11 )=(2 , 2), (x 12 , y 12)=(2 , 6), (x 13 , y 13)=(2 , 10), (x 14 , y 14 )=(2 ,14 ), (x 21 , y 21)=(6 , 2),
¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿
(x 22 , y 22)=(6 , 6), (x 23 , y 23)=(6 ,10), (x 24 , y 24 )=(6 , 14), (x 31 , y 31)=(10 , 2) , (x 32 , y 32)=(10 , 6),
¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿
(x 33 , y 33)=(10 , 10), (x 34 , y 34 )=(10 ,14 ), (x 41 , y 41)=(14 , 2) , (x 42 , y 42)=(14 , 6),
¿ ¿ ¿ ¿
(x 43 , y 43)=(14 , 10), (x 44 , y 44)=(14 ,14 ).

Ta được:
4 4

∑ ∑ f ( x ¿ij , y ¿ij ) ∆ A
i=1 j=1

¿ ( f ( x 11 , y 11 ) + f ( x 12 , y 12 ) + f ( x13 , y 13) + f ( x 14 , y 14 ) + f ( x 21 , y 21 ) +f ( x 22 , y 22 ) + f ( x23 , y 23) + f ( x 24 , y 24 ) + f ( x 31 , y 31 ) +f ( x 32 ,


¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿

¿ ( f (2 , 2 ) + f ( 2 , 6 ) + f ( 2 ,10 ) + f ( 2 ,14 ) +f ( 6 , 2 ) + f ( 6 ,6 )+ f ( 6 , 10 ) + f ( 6 ,14 ) +f ( 10 , 2 ) +f ( 10 , 6 ) + f ( 10 ,10 )+ f ( 10 ,14 ) +


¿ ( 643 + 803 + 803 + 643 + 803 +32+32+ 803 + 803 +32+32+ 803 + 643 + 803 + 803 + 643 )∗16=6826,6667 (cm )
3

Cách tính chính xác:


2 2
( x−8) ( y−8)
∬ f (x , y )dxdy =∬ ( 100
3

6
¿ ¿−
6
)dxdy=6712,8889(cm3 )¿ ¿

Nhận xét: Có sự chênh lệch kết quả giữa cách sử dụng tổng Riemann trung tâm và cách
tính tích phân kép chính xác
2/ Đoạn code Python tính tổng Riemann
a) Code
import matplotlib.pyplot as plt

def f(x, y):


return 100/3 - (x - 8)**2/6 - (y - 8)**2/6

def riemann_sum(m, n):


a = 0
b = 16
c = 0
d = 16

dx = (b - a) / m
dy = (d - c) / n

volume = 0

x_points = []
y_points = []

for i in range(1, m+1):


for j in range(1, n+1):
xi = a + (i - 0.5) * dx
yj = c + (j - 0.5) * dy
volume += f(xi, yj)
x_points.append(xi)
y_points.append(yj)

plt.figure(figsize=(6, 6))
plt.scatter(x_points, y_points, color='red', label='Điểm (xi, yj)')
plt.scatter(0, 0, color='blue', label='Gốc tọa độ')
plt.xlabel('Trục x')
plt.ylabel('Trục y')
plt.title('Đồ thị các điểm (xi, yj)')
plt.legend()
plt.grid(True)
plt.ylim(0, 16)
plt.xlim(0, 16)
plt.show()

return volume * dx * dy
m = int(input("Nhập số lượng đoạn chia theo trục x (m): "))
n = int(input("Nhập số lượng đoạn chia theo trục y (n): "))

estimated_volume = riemann_sum(m, n)

print("Thể tích ước lượng của mô hình tháp là:", estimated_volume)


b) Kết quả

Nhận xét:
 Càng tăng đoạn chia m, n thì giá trị nhận được sẽ càng gần với giá trị tính chính
xác bằng tích phân kép.

You might also like