Viết một đoạn code tính tổng Riemann trung tâm cho hàm số fx, y trên miền hình chữ nhật R.. Viết một đoạn code tính tổng Riemann cho fx, y là dạng bảng số.. c Yêu cầu: Kiểm soát dữ liệu
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN MÔN GIẢI TÍCH 2
ĐỀ 8: TỔNG RIEMANN TRONG TÍCH PHÂN KÉP
NHÓM L11_08
GIẢNG VIÊN: ĐOÀN THỊ THANH XUÂN
TP HCM, 05-2024
Trang 2ĐỀ 8 TỔNG RIEMANN TRONG TÍCH PHÂN KÉP
1 Giới thiệu tổng Riemann của hàm số f(x, y) trên hình chữ nhật R=[a,b]×[c.d]
2 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
(a) Input: f(x, y), a, b, c, d để xác định R, m, n là số đoạn chia của [a, b] và [c,d] (b) Output: Tổng Riemann
3 Viết một đoạn code tính tổng Riemann cho f(x, y) là dạng bảng số
(a) Input: f(x, y) dạng bảng số
(b) Output: Tổng Riemann
(c) Yêu cầu: Kiểm soát dữ liệu có dùng được tổng trung tâm hay không, nếu được, output sẽ là tổng trung tâm, ngược lại, output có thể dùng cách chọn điểm trên hình chữ nhật con gần điểm (0, 0) nhất
DANH SÁCH THÀNH VIÊN
1 2312222 LÊ PHẠM THẢO NGÂN
2 2310669 NGUYỄN TẤN ĐẠT
3 2313753 NGUYỄN THÁI TUẤN
4 2313459 PHẠM THANH TÍN
5 2314041 TRẦN NGỌC NHƯ Ý
6 2310160 TRẦN VÕ HOÀNG ANH
7 2312764 VŨ ĐỖ ĐÌNH PHƯƠNG
NHẬN XÉT VÀ CHẤM ĐIỂM CỦA THẦY/CÔ
2
Trang 3MỤC LỤC
Trang 4CHƯƠNG 1 Giới thiệu tổng Riemann của hàm số f(x, y) trên
hình chữ nhật R=[a, b] x [c, d] 5
1 Khái niệm về Tổng Riemann 5
2 Các dạng về tổng Riemann 5
3 Phương pháp tính 5
CHƯƠNG 2 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 7
1 Input: f(x, y),a,b,c,d để xác định R,m,n là số đoạn chia của [a,b] và [c,d] 7
2 Output 8
CHƯƠNG 3 Viết một đoạn code tính tổng Riemann cho f(x, y) là dạng bảng số 9
1 Input: f(x, y) dạng bảng số 9
2 Output 10
3 Yêu cầu……….11
CHƯƠNG 4: Tài liệu tham khảo ……… 14
CHƯƠNG 5: TỔNG KẾT 15
CHƯƠNG 1
4
Trang 5Giới thiệu tổng Riemann của hàm số f(x, y) trên hình chữ nhật
R=[a, b] x [c, d].
1.Khái niệm về Tổng Riemann.
Được đặt tên theo sau nhà toán học người Đức, tổng Riemann chủ yếu được dùng
để tính gần đúng diện tích của phần bị giới hạn bởi đường cong trên đồ thị
Để tính tổng Riemann, ta chia nhỏ vùng cần tính diện tích thành nhiều hình dạng (hình chữ nhật, hình thang, hình parabol,…) mà chúng cùng nhau tạo thành một vùng
có hình dạng tương tự với vùng cần tính diện tích, sau đó tính diện tích mỗi vùng này
và cuối cùng ta cộng tất cả lại với nhau
2.Các dạng về tổng Riemann.
* Tổng Riemann trái: Nếu x¿i = x i−1 với mọi i, thì được gọi là quy tắc trái hoặc tổng 𝑆 Riemann trái
* Tổng Riemann phải: Nếu x i¿= x i với mọi i, thì được gọi là quy tắc phải hoặc tổng 𝑆 Riemann phải
* Tổng Riemann giữa: Nếu x i
¿
=( x¿¿i −1+ x i)/ 2¿ với mọi i, thì được gọi là quy tắc 𝑆 điểm giữa hoặc tổng Riemann giữa
3.Phương pháp tính.
Hình 1: Đồ thị mặt cong của phương trình z = f(x, y)
+Hình trên là đồ thị của một hàm số f dương, xác định trên hình chữ nhật:
R={(x , y)∈ R2
:a ≤ x ≤ b , c ≤ y ≤ d} +Gọi Ω là khối nằm dưới đồ thị của f và nằm trên hình chữ nhật R:
Ω={(x , y , z)∈ R3
: 0≤ z ≤ f(x , y , z),(x , y)∈ D}
Trang 6Hình 2: Chia miền D thành những hình chữ nhật nhỏ R ij
+Chúng ta chia miền R thành những hình chữ nhật nhỏ:
- Đoạn [a, b] thành m đoạn nhỏ [x , x ] với độ dài i-1 i Δx=(b −a)∕ m
- Đoạn [c, d] thành n đoạn nhỏ [x , x ] với độ dài y-1 y Δy=(d −c)/n
+Như vậy, đoạn m× n hình chữ nhật con có dạng:
Rij={(x , y)∈ R2
:xi−1≤ x ≤ xi, y j−1≤ y ≤ yj
Với diện tích: ΔA =Δx ⋅ Δy
+Trên mỗi ô con Rij chọn một điểm mẫu (xij¿, y ij¿) ngẫu nhiên Ta có thể xấp xỉ một phần thể tích của khối Ω nằm phía trên ô con R ij bằng thể tích cột dạng hộp có đáy R ij và chiều cao bằng f(x ij¿, y ij¿). Thể tích này bằng:
f(x ij¿, y ij¿) ΔA
Hình 3: Thể tích hình hộp chữ nhật nhỏ
Khi đó toàn bộ khối Ω được xấp xỉ bởi:
6
Trang 7V ≈∑
i=1 ∑
j=1
f(x ij¿, y¿ij) ΔA
và được gọi là tổng Riemann của f trên hình chữ nhật R
a
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 Input: f(x, y), a, b, c, d để xác định R, m, n là số đoạn chia của [a, b] và [c, d].
+CODE MATLAB
syms x y z;
z_func = input('Nhap ham f(x,y) = ');
disp('Nhap cac gia tri xac dinh mien hinh chu nhat:');
a = input('Nhap a:');
b = input('Nhap b:');
c = input('Nhap c:');
d = input('Nhap d:');
m = input('Nhap so doan chia cua [a,b]:');
n = input('Nhap so doan chia cua [c,d]:');
sum = 0;
for i=a:(b-a)/m:b
$$$$for j=c:(d-c)/n:d
$$$$$$$$sum = sum + subs(z_func, [x,y], [i,j])*(b-a)*(d-c)/m/n;
$$$$end
end
Trang 8disp('Tong riemann la:');
disp(sum);
* Ví dụ: Tính xấp xỉ thể tích của một khối nằm dưới đồ thị z= −8 2x2
− y2 và trên hình chữ nhật R={(x,y)|0≤x≤1;0≤y≤2}
Giải:
Chúng ta sẽ chia 2 đoạn (0,1),(0,2) thành 2 đoạn nhỏ
Ta có: Δx =1 0−
2 =1
2 và Δy =2−0
2 =1 ⇒ΔA=1
2⋅ 1=1 2
Ta lại có: x =0, x =0 1
1
2, x =1, y =0, y =1, y2 0 1 2=2
Suy ra: V=∑
i=1
2
.∑
j=1
2
f(xⅈj
¿
; y ij¿) ΔA = ΔA((f(x11¿, y11¿)+f(x12¿, y12¿)+ f(x21¿ , y21¿)+ f(x22¿, y22¿))
=12⋅(f(1
2, 1)+ f(1
2,2)+f(1,1)+ f(1,2))
=12⋅(13
2+7
2+5+2)=17
2
*
Thử lại bằng Matlab :
8
Trang 9CHƯƠNG 3 Viết một đoạn code tính tổng Riemann cho f(x, y) là dạng bảng số.
1 Input: f(x, y) dạng bảng số.
syms x y z;
z_func = input('Nhap ham f(x,y) = ');
$
disp('Nhap cac gia tri xac dinh mien hinh chu nhat:');
a = input('Nhap a:');
b = input('Nhap b:');
c = input('Nhap c:');
d = input('Nhap d:');
m = input('Nhap so doan chia cua [a,b]:');
n = input('Nhap so doan chia cua [c,d]:');
$
dx = (b - a) / m;
dy = (d - c) / n;
$
data = [];
$
for i = 1:m
$$$$for j = 1:n
$$$$$
$$$$$$$$x_val = a + (i - 1) * dx;
$$$$$$$$y_val = c + (j - 1) * dy;
$$$$$$$$
$$$$$$$$f_val = double(subs(z_func, [x, y], [x_val, y_val]));
$$$$$$$$
$$$$$$$$area = dx * dy;
$$$$$$$$
$$$$$$$$data = [data; x_val, y_val, f_val, area];
$$$$end
end
$
table = array2table(data, 'VariableNames', {'x', 'y', 'f', 'area'});
disp(table);
2 Output
% Tính tổ3ng Riemann
riemann_sum = sum(data(:, 3) * data(:, 4));
Trang 10disp('Tong Riemann la:');
disp(riemann_sum);
*Ví dụ:
Giả sử chúng ta muốn tính tích phân kép của hàm f(x, y) = x² + y trên miền hình 2
chữ nhật R=[0, 2] x [0, 2] trong mặt phẳng Oxy
Chúng ta sẽ chia miền R thành các hình chữ nhật con nhỏ hơn Chẳng hạn, chúng
ta có thể chia miền này thành 4 hình chữ nhật con bằng cách lấy m = 2 và n = 2 Kích thước của mỗi hình chữ nhật con là Δx=2 0−
2 =1 và Δy=2 0−
2 =1 Tiếp theo, chúng ta chọn điểm mẫu trong mỗi hình chữ nhật con và tính giá trị của hàm f (x, y) = x² + y² tại điểm đó Chẳng hạn, nếu chúng ta chọn góc trên bên trái của mỗi hình chữ nhật con là điểm mẫu, thì các điểm mẫu và giá trị tương ứng là:
1 (0,0) → f(0, 0) = 0 + 0 = 02 2
2 (0,1) → f(0, 1) = 0 + 1 = 12 2
3 (1,0) → f(1, 0) = 1 + 0 = 12 2
4 (1,1) → f(1, 1) = 1 + 1 = 22 2
Sau đó, chúng ta tính tổng các giá trị này và nhân với diện tích của từng hình chữ nhật con:
Tổng Riemann = (0×1×1) + (1×1×1) + (1×1×1) + (2×1×1)
= 0+1+1+2
= 4
*Thử lại bằng Matlab:
10
Trang 113 Yêu cầu: Kiểm soát dữ liệu có dùng được tổng trung tâm hay không, nếu được, output sẽ là tổng trung tâm, ngược lại, output
có thể dùng cách chọn điểm trên hình chữ nhật con gần điểm (0, 0) nhất.
* CODE MATLAB:
syms x y z;
% Nhập hàm f(x, y)
z_func_str = input('Nhap ham f(x,y) = ', 's');
z_func = str2sym(z_func_str);
disp('Nhap cac gia tri xac dinh mien hinh chu nhat:');
a = input('Nhap a:');
b = input('Nhap b:');
c = input('Nhap c:');
d = input('Nhap d:');
m = input('Nhap so doan chia cua [a,b]:');
n = input('Nhap so doan chia cua [c,d]:');
% Tính kích thước các bước
dx = (b - a) / m;
dy = (d - c) / n;
data = [];
% Kiề3m tra xem có thề3 sư3 dụng tổ3ng trung tâm khổng
use_center = m > 1 && n > 1;
for i = 1:m
$$$$for j = 1:n
$$$$$$$$if use_center
$$$$$$$$$$$$x_val = a + (i - 0.5) * dx;
% Tính trung tâm cu3a mổKi ổ
$$$$$$$$$$$$y_val = c + (j - 0.5) * dy;
$$$$$$$$else
Trang 12% Chọn điề3m trền hình chữ nhật con gâ>n điề3m (0,0) nhâNt
$$$$$$$$$$$$x_val = a + (i - 1) * dx;
$$$$$$$$$$$$y_val = c + (j - 1) * dy;
$$$$$$$$end
$$$$$$$$
$$$$$$$$f_val = double(subs(z_func, [x, y], [x_val, y_val]));
$$$$$$$$
$$$$$$$$area = dx * dy;
$$$$$$$$
$$$$$$$$data = [data; x_val, y_val, f_val, area];
$$$$end
end
table = array2table(data, 'VariableNames', {'x', 'y',
'f', 'area'});
disp(table);
total_riemann_sum = sum(data(:, 3) * data(:, 4)); disp('Tong Riemann la:');
disp(total_riemann_sum);
* Ví dụ:
Ta có:
x = a + iΔx = 0 + i = ii
y = c + jΔy = 0 + j = jj
Điểm mẫu: (x j
¿
; y ij¿) = (x i−1 +x i
2 ; y j−1 + y j
2 ) =(ⅈ−1
2; j−1
2)
Suy ra: (x11¿; y11¿) = (1
2;1
2), (x12¿; y12¿) = (1
2;3
2), (x21¿; y21¿) = (3
2;1
2), (x22¿; y22¿) = (3
2;3
2)
Suy ra: V=∑
i=1
2
.∑
j=1
2
f(xⅈj
¿
; y ij¿).ΔxΔy = ((f(x11¿ , y11¿)+f(x12¿, y12¿)+ f(x21¿, y21¿)+ f(x22¿, y22¿ )).ΔxΔy
12
Trang 13=(f(1
2;1
2)+f(1
2;3
2)+f(3
2;1
2)+f(3
2;3
2) ) 1 = (1
2+ 5
2+5
2 +9
2) 1 = 10
*
Thử lại bằng Matlab :
Trang 14CHƯƠNG 4: Tài liệu tham khảo
[1]
https://phamdinhkhanh.github.io/deepai-book/ch_donation/fubini_and_riemann.ht ml
[2] 14.1, Soo T Tan - Multivariable Calculus
[3] Ứng dụng tổng Riemann để xấp xỉ tích phân bội - Kênh: Epsilon với Toán Thường Thức (https://www.youtube.com/watch?v=EHwGVuQUrDY&t=1110s)
14
Trang 15CHƯƠNG 5: TỔNG KẾT
¿ Những điều đạt được qua đề tài này:
- Hoàn thành bài báo cáo gồm các nội dung đề tài yêu cầu đúng thời hạn, ngoài ra còn
có thêm sản phẩm là phần code bằng Matlab và Powerpoint thuyết trình góp phần làm
rõ hơn nội dung nhóm muốn truyền đạt
- Hiếu được rõ hơn cơ sở lý thuyết của tổng riemann trong tích phân kép, thành thạo nhiều dạng bài tập của phần này
Về bài học:
- Tiếp thu và củng cổ kiến thức về tổng rieman trong tích phân kép
- Trau dồi kĩ năng học tập và làm việc nhóm, kĩ năng phân chia công việc và phân bổ thời gian để hoàn thành đúng tiến độ của công việc chung
- Trau dồi, nâng cao kĩ năng làm Word, Powerpoint
- Nâng cao khả năng code Matlab
¿ Những điều chưa đạt được qua đề tài này:
- Các thành viên chưa thật sự hiểu ý nhau, làm việc nhóm còn tồn tại những khuyết điểm cần được khắc phục
Link video:
https://drive.google.com/drive/folders/1am97FfUTAUR 7JOTG4AT905 F-P4U5Gr?usp=sharing