1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo bài tập lớn môn đại số tuyến tính đề tài PHÂN TÍCH a = QR BẰNG PHÉP QUAY GIVEN

32 88 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 606,02 KB

Nội dung

III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 10 VIII Kết chạy code ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO BÀI TẬP LỚN MÔN ĐẠ SỐ TU N T NH ĐỀ TÀI PHÂN TÍCH A = QR BẰNG PHÉP QUAY GIVEN GVHD: Phan Thị Khánh Vân Nh m Lớp: L22 Danh sách thành viên: L c Tài 2114683 Đ Ngu n Thành u 2112998 Ph m Trung Ngu ên 2111880 Ho Thiên Tú 2115214 Trvơng Thão Trang 2115049 Ho Hũu Tvờng 2115239 Lê Phú Quoc 2112144 III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh VIII Kết chạy code TP HỒ CHÍ MINH, ngà tháng 12 năm 2021 9 10 III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 10 VIII Kết chạy code MỤC LỤC LỜI CẢM ƠN CHƯƠNG MỞ ĐẦU CHƯƠNG CƠ SỞ LÝ THUYẾT I Phân tích A = QR (QR Decomposition) II Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB I Tong quan ve MATLAB II Các l nh sử dụng toán 9 III Đoạn code hoàn chỉnh 10 IV Kết chạy code 10 CHƯƠNG I NG NG MIMO (Multiple In, Multiple Out) II Áp dụng phân tích A = QR để giải h phương trình tuyến tính Ax = b CHƯƠNG KẾT LU N I 11 11 13 14 Đe tài 14 II Sinh viên 14 T I LI U THAM KHẢO 15 III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 10 VIII Kết chạy code LỜI CẢM ƠN Chúng em xin chân thành cảm ơn cô Phan Thị Khánh Vân suốt thời gian tham gia lớp Đại Số Tuyến Tính Chúng em cảm thấy thân có trách nhi m, tự lập hơn, biết tự tìm hiểu thêm vấn đe cịn thắc mắc chúng em tự tin tự giải thắc mắc thân ln sẵn sàng hỗ trợ, giải đáp thắc mắc cho chúng em cần Bộ môn Đại Số Tuyến Tính mơn học hữu ích, cung cấp nhieu kiến thức kiến thực thực tiễn đời sống Tuy nhiên, vốn kiến thức chúng em nhieu hạn chế bỡ ngỡ, chưa có kinh nghi m nên chúng em cố gắng tìm hiểu hồn thành tập lớn tốt khả chúng em, chắn chúng em mắc thiếu sót Kính mong xem xét góp ý cho chúng em để chúng em hoàn thi n tốt tập lần sau Chúng em xin chân thành cảm ơn! Chúng em kính chúc hạnh phúc nhieu sức khỏe để tiếp tục giảng dạy cho sinh viên khóa tiếp theo! III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 10 VIII Kết chạy code CHƯƠNG MỞ ĐẦU Lý lựa chọn đề tài: Cô Phan Thị Khánh Vân giáo viên hướng dẫn giao cho chúng em đe tài ve phân tích A = QR phép quay Given Đây phần quan trọng chương 4, ứng dụng nhieu toán mơn h thống tín hi u MIMO Đây phần đơn giản lí để em lựa chọn đe tài Yêu cầu cũa đề tài - Nêu sớ lý thuyet phân tích A = QR bang phép quay Given - Viet chwơng trình dùng ke phân tích A = QR bang phép quay Given - Tìm úng dnng phân tích A = QR III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 10 VIII Kết chạy code CHƯƠNG CƠ SỞ LÝ THUY T I A = QR (QR Decomposition) Phân tích Ma tr¾n trnc giao (Orthogonal Matrices) − Trong đại số tuyến tính, ma trận trực giao, hay ma trận trực chuẩn, ma trận vuông thực với cột hàng vectơ trực chuẩn − Cịn biểu diễn đieu sau QTQ = QQT = I với QT chuyển vị Q I ma trận đơn vị − Đieu dẫn đến đặc điểm sau: ma trận Q trực giao chuyển vị −1 nghịch đảo nó: QT = Q −1 với Q nghịch đảo Q − Ví dụ ve ma trận trực giao ⎡1 + Biến đoi đong nhất: 0⎤ ⎢ ⎥ ⎣ ⎦ −sinθ ⎤ o + Phép quay góc θ = 30 : ⎡cosθ ⎢ ⎡ ⎤ ⎢2 ⎥ cosθ sinθ ⎥ ⎣ ⎦ ⎢1 3⎥ =⎢ ⎥ III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 10 VIII Kết chạy code ⎢ ⎣ ⎡1 ⎥ ⎦ 0⎤ ⎥ −1 + Phép đối xứng trục Ox: ⎢ ⎣ ⎦ Ma tr¾n quay: ma trận sử dụng để thực hi n phép quay khơng gian Euclide Ví dụ: Q = ⎡cosθ −sinθ ⎤ (Ma kim trận quay ngược chieu gócđong Ө) ho ⎢ sinθ cosθ ⎣ ⎥ ⎦ sinθ ⎤ cosθ Q = ⎡ −sin θ ⎣ (Ma trận quay chieu kim đong ho cos góc ⎥ Ө) θ ⎦ Ðịnh nghĩa: − Phân rã QR (QR Decomposition) phân rã ma trận A thành tích A = QR ma trận trực giao Q ma trận tam giác R Phân rã QR thường sử dụng để giải vấn đe bình phương tối thiểu tuyến tính… III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 10 VIII Kết chạy code ⎛1 1 ⎞ Ví dụ: ⎜ ⎟ A = Dùng q trình trực giao hóa Gram – Schmidt cho q trình phân tích ⎜ ⎛1 −1 ⎞ ⎛3 ⎟ 4⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ A = QR ta Q= ⎜1 ⎟ ⎜ ,R= −2 − ⎟ ⎟ ⎜ ⎜1 ⎝ II ⎟ ⎜ ⎟ ⎟ ⎠ ⎜0 ⎜ ⎟ ⎝ ⎠ ⎟ Phép quay Given phân QR (QR Decomposition by Givens Rotation) III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 10 VIII Kết chạy code Định nghĩa: phương pháp để phân tích A = QR cách làm cho phân tử có ma trận tam giác phải − Ý tưởng: sử dụng ma trận quay đơn giản 2x2 đặt dọc theo đường chéo ma trận đơn vị làm cho phần tử ma trận bẳng Ta lấy ma trận trực giao quay chieu kim đong ho ⎡ cosθ sinθ ⎤ ⎡a⎤ ⎡r ⎤ ⎢ −sinθ ⎥⎢ ⎥ cosθ b ⎢ ⎥ ⎣ ⎦⎣⎦ b a + b ,sinθ = Trong đó: r = ,cosθ = ⎣⎦ a Sử dụng phép quay Givens tốn phân tích A = QR A∈ Mm×n [☎] Tìm ma trận P1, P2 , , Pk −1, Pk (là ma trận − Cho ma trận trực giao phép quay Rn) với k ∈ để: − (P × P × × P × P ).A = R ⇒ A = (P × P × × P × P ) 1.R = QR k −1 Q = (P × P × × P × P −1 ) = (P × P × ×P k × P )T = PT × PT × k −1 ×P T k ×P T III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 10 VIII Kết chạy code k −1 k k −1 k Thực hi n tốn A∈ Mm×n [☎] Cho ma trận Bước 1: ác định phần tử am−11, am1 tính sinθ = ,cosθ = k −1 k III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh clc; clear; disp('Phep quay Givens: phan tich A = QR'); A = input('Nhap ma tran A: '); % Nhập ma trận A [m,n] = size(A); % Lvu kích cõ ma trận A Q = eye(m); % Tạo ma trận đơn vị Q kích thvớc với A R = A; % Tạo biến trung gian R i Hay ta biểu diễn phần tử dạng y'i N sau: y 'i = Rij si + ∑ Rij si + n 'i j=i+1 Trong phần tử Rii.si tín hi u mong muốn thu được, phần tử thứ tong hợp nhiễu từ anten khác ( tức tín hi u anten lân cận), phần tử n'i biểu diễn tạp âm h thống III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 10 VIII Kết chạy code Từ phương trình ta dễ dàng tách tín hi u mong muốn từ thành phần y'N, thành phần lớp cuối y'N không chịu ảnh hưởng nhiễu từ anten trước nên tách dần Sau thay vào để khử nhiễu cho thành phần lớp Và ta tách tín hi u thu anten tương ứng II Áp dụng phân tích A = QR để giãi h phvơng trình tuyen tính Ax = b Bước Phân tích ma trận A = QR với Q ma trận trực giao, R ma trận tam giác Rx = QTb Bước Đưa h Ax = b ve dạng Bước Giải h vừa tìm kết luận ⎧2x + 3y = ⎛2 3⎞ ⎜ ⎪ Ví dụ: 2x + y = Từ h phương trình ta suy ⎟ ⎜ ⎟ A = ,b = ⎪ 4x + y = ⎛1 Bước 1: Phân tích A = QR ta Q = ⎛7⎞ − ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ 0⎞ ⎛ 12 23 ⎞ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎜1 ⎜ ⎟ ⎜ ,R= ⎟ ⎜ ⎟ ⎟ III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 10 VIII Kết chạy code ⎜ ⎟ ⎜2 ⎜ 1⎟ ⎟ ⎜ 0 ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ Bước 2: Đưa ve ⎠ Rx = QTb ta phương trình giải nghi m ⎞T ⎛ ⎞ ⎛ − ⎜ ⎟ ⎜ ⎛7⎞ ⎛ ⎜ ⎟ ⎜ ⎜ ⎞ ⎟ ⎜ ⎟ ⎜ ⎟ ⎟ ⎜ ⎛ ⎟ ⎟ ⎜ ⎞ ⎜ x ⎟⎛ ⎞ = ⎜ ⎟ ⇔ ⎜ x ⎟⎛ ⎞ = ⎜ ⎟ ⎟ ⎜⎜ ⎟⎜ ⎟ y⎟ ⎜ ⎟⎜ ⎜ ⎜ ⎟ ⎟ ⎟ ⎜ ⎜ ⎟ ⎟ y ⎜ III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 10 ⎟⎜ VIII Kết chạy code ⎟ ⎜ 0 ⎟ ⎟ 1⎟⎝ ⎜ ⎜ ⎠ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎜ ⎟ ⎜ ⎟ ⎝ ⎠ ⎝ ⎠ ⎠ 22 ⎧ 12 x ⇔ 23 y + ⎧ 19 ⇔ x= = ⎪ ⎨ ⎪ −20 ⎨ ⎪ y= ⎩ y = −4 ⎩ Bước 3: Kết luận → Vậy h có cặp nghi m ( x; y) = ⎛ 19 ⎜2 ⎝ ;−4 ⎞ ⎟ ⎠ III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh 9 10 VIII Kết chạy code CHƯƠNG : K T LUẬN I Đề tài - Phương pháp sử dụng phép quay Givens để phân tích A = QR có hi u ve tốc độ q trình phân tích so với phương pháp khác (Quy trình Gram – Schmidt, Biến đoi Householder …) - Tuy nhiên, phương pháp khiến cho người tiếp cận bối rối phép quay thành lập ma trận Q II Sinh viên - Đã hiểu ve sở lý thuyết phép quay Givens vận dụng phép quay ứng dụng phép quay - Đã hiểu viết code cho thuật toán MATLAB - Tuy nhiên cịn gặp khó khăn vi c tìm thêm ứng dụng phân tích A=QR sống nói chung tốn học nói riêng III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn VII Đoạn code hồn chỉnh 9 10 VIII Kết chạy code TÀI LI U THAM KHẢO [1] Giáo Trình Đại Số Tuyến Tính – Đặng Văn Vinh – NXB Đại Học Quốc Gia TP.HCM (2020) [2] Matlab & Simulink cho kỹ sư (Tái 2021), Nguyễn Quang Hoàng, NXB Bách Khoa Hà Nội [3] Chương 2: Ma trận https://cuuduongthancong.com/dlf/680076/matlab/tran-van-chinh/chuong-2_ma-tran.pdf [4] SỬ D NG MATLAB TRONG ĐẠI SỐ TUYẾN TÍNH - Vui Nguyễn Văn https://www.academia.edu/36525293/S%E1%BB%AC_D%E1%BB%A4NG_MATLAB_TR ONG_%C4%90%E1%BA%A0I_S%E1%BB%90_TUY%E1%BA%BEN_T%C3%8DNH [5] Jim Lambers, MAT 610, Summer Session 2009-10, Lecture Notes https://www.math.usm.edu/lambers/mat610/sum10/lecture9.pdf [6] MATLAB – Fuctions (MATLAB): https://www.mathworks.com/help/matlab/referencelist.html?type=function&s_tid=CRUX_to pnav [7] Matlab Cơ Bản playlist by Hai Ta (Youtube): https://youtube.com/playlist?list=PLQAX6xoa8poAohPSmYUaENE 3jW2k0uW [8] A Givens Rotation-based QR Decomposition for MIMO Systems by Wen Fan and Amir Alimohammad - https://amir.sdsu.edu/Wen17A.pdf [9] Design and VLSI Implementation of a Reduced-Complexity Sorted QR Decomposition for High-Speed MIMO Systems by Lu Sun, Bin Wu 1, and Tianchun Ye https://www.mdpi.com/2079-9292/9/10/1657 [10] A CORDIC based QR Decomposition Technique for MIMO Detection by Shirly Edward A., Malarvizhi S - Department of Electronics and Communication Engineering, SRM University, India https://www.academia.edu/43684334/A_CORDIC_based_QR_Decomposition_Technique_fo r_MIMO_Detection [11] GABRIEL LUCA NAZAR: QR Decomposition Algorithms for MIMO Systems: Impact on Computational Effort and Hardware Implementations by Prof Dr Luigi Carro – UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL https://lume.ufrgs.br/bitstream/handle/10183/25601/000754629.pdf?sequence=1&isAllowed =y [12] Polynomial Matrix QR Decomposition and Iterative Decoding of Frequency Selective MIMO Channels by Martin Davies, Sangarapillai Lambotharan Joanne Foster and Jonathon Chambers (Loughborough University, UK); John McWhirter (Cardiff University, UK) https://core.ac.uk/download/pdf/288386917.pdf [13] Matrix Decomposition Algorithms for MIMO receivers: Flexibility vs Efficiency Tradeoffs in a Library-based Tool-Assisted SDR Development by Venkatesh Ramakrishnan, Tobias Veerkamp , Marc Adrat , Gerd Ascheid and Markus Antweiler https://www.wirelessinnovation.org/assets/Proceedings/2011Europe/2011-europe-2a- III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh VIII Kết chạy code ramakrishnan.pdf [14] Đo Án Tốt Nghi p Đại Học - Nghiên Cứu Kỹ Thuật Tối Ưu Hóa Mạng Chuyển Tiếp Mimo - Học Vi n Kỹ Thuật Quân Sự - Phạm Thị Mai Hương (2014) [15] MỤC LỤC [16] LỜI CẢM ƠN [17] CHƯƠNG MỞ ĐẦU [18] CHƯƠNG CƠ SỞ LÝ THUY T [19] Phân tích [20] ⎣ ⎦ [21] ⎡1 ⎤ [22] ⎣ ⎦ [23] ⎣ ⎦ [24] −sinθ [25] ⎣ ⎦ [26] ⎛1 1⎞ [27] ⎜1 2⎟ [28] ⎜ ⎟ ⎜ ⎟ [29] −2 ⎟ [30] ⎜ ⎟ ⎜ ⎟ [31] ⎟ ⎜ 0 ⎟ [32] ⎝ ⎠ ⎝ ⎠ [33] Phép quay Given phân QR (QR Decomposition by Givens Rotation) [34] ⎡ cosθ [35] ⎦ ⎣ ⎦ ⎣⎦ [36] ⎛ −1 1⎞ [37] ⎜ 0⎟ [38] sin = [39] = 0.8 [40] ⎜ −0.6 0.8⎟ ⎜0 0⎟ [41] sin = [42] = [43] ⎜ 0 1⎟ ⎜0 0⎟ [44] sin = [45] ⎛ ⎞ [46] ⎜ ⎟ [47] = ⎜ 2⎟ [48] ⎜ ⎟ [49] ⎜ ⎟ 9 10 III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh VIII Kết chạy code [50] ⎛ ⎞ [51] ⎜ ⎟ ⎛5 [52] = ⎜ −1 ⎟ ≈ ⎜ [53] ⎜ ⎟ ⎜ ⎟ [54] ⎜ 0 [55] ⎜ ⎟ [56] ⎛ −1 2⎞ [57] ⎜ ⎟ ⎛0 [58] = ⎜ 0.8 [59] −0.5367 0.2683⎟ [60] ⎜ ⎟ ⎜ ⎟ [61] ⎜ 0.6 [62] ⎜ ⎟ [63] ⎛ ⎞ [64] ⎜ ⎟ ⎛5 [65] ⎜ ⎟ ⎜ ⎟ [66] ⎜ 0 [67] ⎞ 2.2361 −0.4472 ⎟ ⎞ CHƯƠNG MATLAB CHƯƠNG NG ỤNG [83] [84] ⇔ [85] ⎨ [86] [87] ⎛ [88] ⎜ MIMO (Multiple In, Multiple Out) Áp dụng phân tích A = QR để giãi h phvơng trình tuyen tính Ax = b 3⎞ ⎛7⎞ ⎟ ⎜ ⎟ 10 [68] Tong quan MATLAB [69] Các l nh bãn đvợc sũ dụng toán [70] ⎜ 0⎟ [71] ⎛ ⎞ [72] ⎜ ⎟ ⎛0 [73] ⎟ ≈ ⎜ 0.8 [74] ⎜ ⎟ ⎜ ⎟ [75] ⎜ 0.6 [76] ⎜ ⎟ [77] ⎛ ⎞ [78] ⎜ ⎟ ⎛5 ⎞ [79] ⎟ ≈ ⎜ 2.2361 [80] ⎜ ⎟ ⎜ ⎟ [81] ⎜ 0 [82] III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng toán VII Đoạn code hoàn chỉnh VIII Kết chạy code [89] ⎛ − 0⎞ [90] ⎜ ⎟ ⎜ ⎟ [91] ⎜ ⎟ ⎜ ⎟ [92] ⎜ 2 1⎟ ⎜ [93] ⎝ ⎠ ⎝ ⎠ [94] ⎛ ⎞ ⎛ − [95] ⎜ ⎟ ⎜ ⎟ [96] ⎛ ⎞ [97] ⎜ ⎟ ⎜ ⎟ [98] ⎜ ⎟ ⇔ ⎜ [99] ⎜ ⎟ [100] ⎜ ⎟ ⎜ ⎟ [101] ⎜ ⎟ ⎜ ⎟ [102] ⎟ ⎝ ⎠ [103] ⎜ ⎟ [104] ⎜ ⎟ ⎜ ⎟ [105] ⇔ ⎪ [106] ⇔ [107] ⎩ [108] ⎜ ⎟ [109] CHƯƠNG : K T LUẬN [110] Đề tài [111] Sinh viên [112] TÀI LI U THAM KHẢO [113] [114] 10 ⎛ 12 23 ⎞ 0 ⎟ ... em l? ?a chọn đe tài Yêu cầu c? ?a đề tài - Nêu sớ lý thuyet phân tích A = QR bang phép quay Given - Viet chwơng trình dùng ke phân tích A = QR bang phép quay Given - Tìm úng dnng phân tích A = QR. .. ⎛ −1 ⎞ Ví dụ: Phân tích QR cho ma trận A= ⎜ m = ⇒ a3 1 = 3, a2 1 = 4 III Phép quay Given phân QR (QR Decomposition by Givens Rotation) CHƯƠNG MATLAB V Tong quan ve MATLAB VI Các l nh sử dụng tốn... thu anten tương ứng II Áp dụng phân tích A = QR để giãi h phvơng trình tuyen tính Ax = b Bước Phân tích ma trận A = QR với Q ma trận trực giao, R ma trận tam giác Rx = QTb Bước Đ? ?a h Ax = b ve

Ngày đăng: 14/08/2022, 19:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w