II/ Cơ sở lý thuyết - Ma trận trực giao: là một ma trận vuông, có tính chất ma trận chuyển vị của nó chính bằng ma trận nghịch đảo:
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NĂM HỌC 2022 – 2023
BÁO CÁO BÀI TẬP LỚN MÔN: ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI 05:
PHÂN TÍCH A=QR BẰNG PHÉP QUAY GIVEN
GIẢNG VIÊN HƯỚNG DẪN: NGUYỄN XUÂN MỸ
LỚP: L13 NHÓM: 05 Thành phố Hồ Chí Minh, ngày 7 tháng 12 năm 2022
Trang 3DANH SÁCH THÀNH VIÊN NHÓM 05
công,
Chương 2
chỉnh sửa bài tập
Trang 4LỜI CẢM ƠN Chúng em muốn gửi một lời cảm ơn chân thành đến cô Nguyễn Xuân Mỹ
Trong thời gian học tập và làm việc cùng nhau, chúng em thực sự cảm
nhận được sự tâm huyết của cô trong từng bài giảng Nhờ sự hướng dẫn và
giảng dạy tận tâm của cô, chúng em đã thu thập được lượng kiến thức vững
chắc về môn học Đại số tuyến tính Một lần nữa chúng em xin chân thành
cảm ơn cô,chúng em chúc cô nhiều sức khỏe và thành công!
Trang 5MỤC LỤC
DANH SÁCH THÀNH VIÊN NHÓM 05
LỜI CẢM ƠN
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1
I/ Giới thiệu 1
II/ Cơ sở lý thuyết 1
III/ Ứng dụng giải bài toán 1
IV/ Các bước giải 2
V/ Ví dụ 2
CHƯƠNG 2: VIẾT CHƯƠNG TRÌNH 4
I/ Thuật toán 4
II/ Dòng lệnh 5
III/ Giải thích các dòng lệnh 6
IV/ Một số ví dụ 7
CHƯƠNG 3: ỨNG DỤNG 7
I.Tìm định thức của ma trận A 8
II.Giải phương trình tuyến tính AX=B 8
III Tìm trị riêng bằng phương pháp QR 9
IV.Ứng dụng trong xây dựng lược đồ thủy vân 9
V.Phân tích QR trong khoa học máy 9
CHƯƠNG 4: KẾT LUẬN 11
TÀI LIỆU THAM KHẢO 11
Trang 6CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
I/ Giới thiệu
Cho A là 1 ma trận kích thước m×n, khi nhân tử hóa QR của ma trận A (A=QR), với
Q là ma trận đơn vị kích thước m×n, và R là ma trận tam giác trên kích thước m×n
Ta có 3 phương pháp để hoàn thành phép phân tích này:
+ Phép quay Givens
+ Biến đổi Household
+ Phương pháp Gram-Schmidt
Ở đây, chúng ta sẽ phân tích về phép quay Givens
II/ Cơ sở lý thuyết
- Ma trận trực giao: là một ma trận vuông, có tính chất ma trận chuyển vị của nó chính bằng ma trận nghịch đảo: 𝐺 𝑇= 𝐺−1
- Chúng ta có thể thấy cách các hàng của ma trận được phân tích thành dạng ma
trận tam giác với phép phân tích PA=LU
- Để phân tích A= QR, chúng ta có thể sử dụng cách tiếp cận tương tự, trong đó, các
phép toán biến đổi hàng được áp dụng cho ma trận A để biến đổi ma trận A về ma trận tam giác trên, nếu 𝑄1và 𝑄2 là ma trận trực giao Khi đó, 𝑄1 𝑄2 cũng là một
ma trận trực giao
Ví dụ về ma trận trực giao: (1 0 00 1 0
0 0 1
), ( 1 0
0 1 ), (
−1 0
0 1 ),…
- Chúng ta sẽ sử dụng ma trận trực giao để phân tích A=QR, vì ma trận trực giao có
nghịch đảo bằng chính ma trận chuyển vị
Phép quay Givens: Cho ma trận 𝐴𝑚.𝑛, chúng ta sẽ tìm các ma trận trực giao 𝐺1,
𝐺2, 𝐺3, … 𝐺𝑛
Sao cho: (𝐺1× 𝐺2×𝐺3×…𝐺𝑛) ×A=R
Nhân bên trái của 2 vế cho ( 𝐺1× 𝐺2 ×𝐺3× …𝐺𝑛 )−1, ta được:
( 𝐺1× 𝐺2 ×𝐺3× …𝐺𝑛 )−1×(𝐺1× 𝐺2 ×𝐺3×…𝐺𝑛) ×A = ( 𝐺1× 𝐺2 ×𝐺3×
…𝐺𝑛 )−1×R
A = ( 𝐺1× 𝐺2 ×𝐺3× …𝐺𝑛 )−1×R
Đặt 𝑄 = ( 𝐺1× 𝐺2 ×𝐺3 × …𝐺𝑛 )−1= ( 𝐺1× 𝐺2 ×𝐺3× …𝐺𝑛 )𝑇 (Do G là các
ma trận trực giao nên 𝐺 𝑇= 𝐺−1)
=>Ta được: A= QR với 𝑸 = ( 𝑮𝟏× 𝑮𝟐 ×𝑮𝟑× …𝑮𝒏 )−𝟏= ( 𝑮𝟏× 𝑮𝟐 ×𝑮𝟑×
…𝑮𝒏 )𝑻
và R = (𝑮𝟏× 𝑮𝟐×𝑮𝟑×…𝑮𝒏)×A
III/ Ứng dụng giải bài toán:
Sử dụng một ma trận tam giác quay đơn giản 2x2 đặt dọc theo đường chéo chính của một ma trận đơn vị và làm cho một phần tử của ma trận bằng 0 Ta lấy ma trận trực giao của quay cùng chiều kim đồng hồ, mục đích để biến số y về 0 và biến ma trận thành ma trận tam giác trên
Ma trận G = [𝑐𝑠 −𝑠 𝑐] gọi là ma trận quay
[𝑐𝑠 −𝑠 𝑐] [𝑥𝑦] = [𝑟0]
Trang 7c và s được xác định theo công thức: 𝑐 = 𝑐𝑜𝑠𝜃 =𝑥
𝑟 , 𝑠 = 𝑠𝑖𝑛𝜃 = −𝑦
𝑟 , r= √𝑎2+ 𝑏2
IV/ Các bước giải :
- Bước 1: Chọn phần tử để đưa phần tử đó về 0
- Bước 2: Rút cột chứa phần tử đã chọn ở bước 1, ta được ma trận P Tìm các giá
trị x, y và r
- Bước 3: Viết ma trận quay 𝐺1
- Bước 4: Thực hiện phép nhân 2 ma trận 𝐺1 𝐴
- Bước 5: Từ ma trận 𝐺1 𝐴, tiếp tục bước 1 cho đến khi tích các ma
trận 𝐺3 𝐺2 𝐺1… 𝐺𝑛 𝐴 tạo thành ma trận tam giác
- Bước 6: Viết kết quả Q và R với công thức đã chứng minh ở mục II
V/ Ví dụ:
Đề bài: Phân tích A=QR bằng phép quay Givens với A=
(
√3
4
√3 4
−3 4
√3 4
5 4
−1
2
1
Bước 1: Chọn phần tử để biến đổi phần tử đó về 0, ta chọn phần tử ở hàng 2 cột
1: 𝑎2.1=−3
4, tức phần tử y
Bước 2: Rút cột đầu tiên của ma trận ra, ta được ma trận 𝑃1
𝑃2.1=
(
√3 4
−𝟑 4
−1
= (
𝑥 𝑦
−1 2
), ta suy ra được x = √3
4, y = −3
4 => r = √3
2 => c = 1
2, s = √3 2
Bước 3: Viết ma trận quay 𝐺1= (
)
Bước 4: 𝐺1 𝐴 =
(
1
√3
0 0 1
)
(
√3
4
√3 4
−3
4
√3 4
5 4
−1
2
1
= (
√3
2
−1
2
1
Lúc này, phần tử 𝑎2.1 của ma trận đã bằng 0
Bước 5: Tiếp tục như bước 1, xem ma trận 𝐺1 𝐴 như là 1 ma trận bình thường
Trang 8𝐺1 𝐴 =
(
√3
1
√3 2
−1
√3 2
1
2 ) Chọn phần tử để biến đổi phần tử đó về 0, ta chọn phần tử ở hàng 3 cột
1: 𝑎3.1=−1
2, tức phần tử y
Rút cột 1: 𝑃3.1=(
√3 2 0
−𝟏 𝟐 ) = (
𝑥 0 y
), ta suy ra được x = √3
2, y = −1
2 => r = 1 => c
=√3
2, s = 1
2
Viết ma trận quay 𝐺2= (
)
𝐺2 𝐺1 𝐴 = (
)
(
√3
2
−1
2
1
= ( 10 00 −11
)
Tiếp tục như bước 1, xem ma trận 𝐺2 𝐺1 𝐴 như là 1 ma trận bình thường
𝐺2 𝐺1 𝐴 = (
)
Chọn phần tử để biến đổi phần tử đó về 0, ta chọn phần tử ở hàng 3 cột 2:
𝑎3.2=−1, tức phần tử y
Rút cột 2: 𝑃3.2=(
0 0
−1 ) = (
0 x y ), ta suy ra được x = 0, y = −1 => r = 1 => c =0,
s = 1
Viết ma trận quay 𝐺3= (
)
𝐺3 𝐺2 𝐺1 𝐴 = (
) (
) = (
1 0 −1
)
Bước 6: Tìm Q, R (chứng minh ở mục II)
Với Q= ( 𝐺1× 𝐺2 ×𝐺3× …𝐺𝑛 )−1
Và 𝑅 = 𝐺3 𝐺2 𝐺1 𝐴
Trang 9Ta có (𝐺3 𝐺2 𝐺1 𝐴) (𝐴 )−1= 𝐺3 𝐺2 𝐺1
𝐺3 𝐺2 𝐺1= (
) (
√3
4
√3 4
−3 4
√3 4
5 4
−1
2
1
−1
=
(
√3
3
1 2
−1 4
√3
√3 2
√3 2
1
Q= ( 𝐺1× 𝐺2 ×𝐺3× …𝐺𝑛 )−1 =
(
√3
4
√3 2
−3 4
√3 4
1 2
−1
𝑅 = 𝐺3 𝐺2 𝐺1 𝐴= (
)
A=QR=
(
√3
4
√3 2
−3 4
√3 4
1 2
−1
(
)
CHƯƠNG 2: VIẾT CHƯƠNG TRÌNH
I/ Thuật toán
Dựa trên cơ sở lý thuyết, ta có thể phân tích 1 ma trận A thành tích của 2 ma trận Q và
R theo các bước:
Trang 10- Bước 1: Nhập ma trận A (có kích cỡ m*n) vào chương trình
- Bước 2: Chạy chương trình tính toán thành 1 vòng lặp theo thứ tự từ trên xuống dưới,
từ trái qua phải:
+ Từ hàng thứ 2 đến hàng thứ m
+ Từ cột thứ 1 đến cột thứ n-1
+ Trường hợp số cột nhỏ hơn số hàng từ 2 đơn vị trở lên, ta sẽ cho chương trình chạy từ cột thứ
1 đến cột thứ n
(
𝑎11 𝑎12 𝑎13 … … … 𝑎1𝑛
𝑎21 𝑎22 𝑎23 … … … 𝑎2𝑛
𝑎31 𝑎32 𝑎33 … … … 𝑎3𝑛
… … … … 𝑎𝑚1 𝑎𝑚2 𝑎𝑚3 … … 𝑎𝑚𝑛
)
- Bước 3: Tìm ma trận P
+ Gán P là 1 ma trận đơn vị cấp m; Q =1
+ Theo thứ tự của vòng lặp, ta xét tại vị trí đó xem phần tử có bằng 0 hay chưa, nếu chưa thì tạo
1 ma trận P để tích P*A thành 1 ma trận mà phần tử tại đó bằng 0 Lúc này, P là
1 ma trận vuông bậc m, được tạo bằng cách tay 4 phần tử cos(a); sin(a); -sin(a); cos(a) vào 4 vị trí thích hợp của ma trận đơn vị P lúc đầu
+ R=P*A; Q=P*Q
- Bước 4: Xuất kết quả ra màn hình: Q=Q^(-1); R=R
II/ Dòng lệnh
Trang 11III/ Giải thích các dòng lệnh:
- clear: xóa tất cả các biến
- clc: xóa Command Window
- disp(‘…’): hiển thị chuỗi
- t = input (‘…’): nhập giá trị t
- rank(a): hạng ma trận của a
- b = a’: ma trận chuyển vị của a là ma trận b
Trang 12- size(a,1): số dòng của ma trận a
- size(a,2): số cột của ma trận a
- eye(n): tạo ma trận đơn vị, vuông cấp n
- if…: câu lệnh điều kiện
- for…: câu vòng lặp
- sqrt(x): căn bậc 2 của giá trị x
- inv(a): ma trận nghịch đảo của ma trận a
IV/ Một số ví dụ:
CHƯƠNG 3: ỨNG DỤNG
Trang 13I.Tìm định thức của ma trận A:
Ta có:
A=QR => det(A) = det(Q).det(R)
- Trước tiên, ta phân tích A=QR với: Q là ma trận trực giao; R là ma trận tam giác trên, khi đó det(A)= ± det(R), ở đây có 2 trường hợp:
+ det(A) mang dấu (+) khi các vector của Q theo thứ tự tạo thành một tam diện thuận + det(A) mang dấu (-) khi các vector của Q theo thứ tự không tạo thành một tam diện thuận
- Do R là một ma trận tam giác trên,
=> det(R) = 𝑡í𝑐ℎ 𝑐á𝑐 𝑝ℎầ𝑛 𝑡ử 𝑡𝑟ê𝑛 đườ𝑛𝑔 𝑐ℎé𝑜 𝑐ℎí𝑛ℎ
Ví dụ: tính det của A=
(
√3
4
√3 4
−3 4
√3 4
5 4
−1
2
1
, như ở chương II, ta đã phân tích được ma
trận A=QR:
A=QR=
(
√3
4
√3 2
−3
4
√3 4
1 2
−1
(
)
Ta tấy phần Q là một tam diện thuận nên det(A) sẽ mang giá trị dương, lúc này:
det(A) = det(R)= 𝑡í𝑐ℎ 𝑐á𝑐 𝑝ℎầ𝑛 𝑡ử 𝑡𝑟ê𝑛 đườ𝑛𝑔 𝑐ℎé𝑜 𝑐ℎí𝑛ℎ 𝑐ủ𝑎 𝑅=1×1×1=1
II.Giải phương trình tuyến tính AX=B:
- Phân tích A=QR, với Q là ma trận trực giao và R là ma trận tam giác trên
- Ta tìm X bằng cách dùng phương pháp khử Gauss Lúc này, nếu ta biết được các ma trận Q và R thì việc tính toán sẽ trở nên đơn giản hơn, do ma trận R đã là ma trận tam giác trên, đồng thời cũng đã là ma trận bậc thang
Ví dụ: Tìm ma trận X = ( 𝑥1, 𝑥2, 𝑥3 )𝑇 của hệ phương trình AX=B, với
A=
(
√3
4
√3 4
−3
4
√3
4
5 4
−1
2
1
,
B = (
√3
4
1
2
0
)
Ta đã phân tích được A=QR (như ví dụ trên)
AX=B
Nhân bên trái 2 vế cho ma trận Q:
QRX=QRB
Nhân bên trái 2 vế cho ma trận 𝑄−1
Trang 14 𝑄−1.(QRX)=𝑄−1.(QRB)
RX=RB
( 1 00 1 −10
) ( 𝑥1, 𝑥2, 𝑥3 )𝑇= (
) (
√3 4 1 2 0 ) = (
√3 2 1 2 0 ) , ở bước này, ta thấy việc tính toán tích 2 ma trận R.B trở nên đơn giản hơn do R đã là 1 ma trận tam
giác trên Từ đây, ta lập hệ phương trình:
{
𝑥1 − 𝑥3 = √3
2
𝑥2 = 1
2
𝑥3 = 0
{
𝑥1 =√3
2
𝑥2 = 1 2
𝑥3 = 0
=> X =
( √3
2 ,1
2, 0 )
𝑇
III Tìm trị riêng bằng phương pháp QR:
-Cho ma trận có trị riêng λ1, λ2, λ3,… λn với|λ1| > |λ2| >…> | λn| thì:
tốc độ hội tụ: b j(i
++11) → 0 phụ thuộc vào |λj+1/ λj|
- Mà tốc độ hội tụ b j(i++11) → 0 ảnh hưởng đến tốc độ hội tụ aj(i+1) → λj
=> Sự hội tụ sẽ chậm lại nếu |λj+1/ λj| ~ 1
-Trong ma trận A(i)-sI, tốc độ hội tụ của b j(i++11) -> 0 phụ thuộc vào |( λj+1-s)/( λj-s)|
=> Muốn cải thiện tốc độ hội tụ, ta sẽ chọn s ~ λj+1 Nhưng không được ~ λj
- Tìm trị riêng ma trận 2x2 để tính s: an-1(i) bn(i)
bn(i) an(i)
-Chọn s là trị riêng gần an(i) nhất
=> bn(i+1) hội tụ về 0, an(i+1) hội tụ về λn
=> Trị riêng của ma trận A: λn = an(i+1) + s
IV.Ứng dụng trong xây dựng lược đồ thủy vân:
Hiện nay, tình trạng sao chép, sử dụng trái phép dữ liệu số có chiều hướng gia tăng, một trong những phương pháp hiệu quả để bảo vệ các dữ liệu này là lược đồ thủy vân Giải pháp này là chuyển đổi các thông tin quan trọng thành dạng kỹ thuật số Các kĩ thuật giấu tin trong ảnh trên lược đồ thủy vân có phần ứng dụng phép biến đổi A=QR
V.Phân tích QR trong khoa học máy
- Chúng ta đã biết đến các phần mềm, ứng dụng, AI có thể xóa, tách một vật thể khỏi hình ảnh, hay thậm chí là cả 1 đoạn phim Kĩ thuật này đã sử dụng phép phân tích QR
Ví dụ, nếu muốn tách riêng hình ảnh của một người từ một tấm ảnh, ta sẽ chuyển tấm ảnh đó thành dạng vecto 1D và tạo ma trận các vecto tương ứng với mỗi vật thể Sau đó
ta sẽ chạy một giá trị phân tích cho tấm ảnh ở dạng 1D Sự phân tích này cho phép tách các vật thể mong muốn khỏi nền của bức ảnh, thu được một tấm ảnh chỉ có vật thể cần tách Tương tự với cách này, khi muốn tách vật thể từ một đoạn phim, ta chỉ cần chia đoạn phim đó thành nhiều khung hình(ảnh) khác nhau và tách vật thể ra trong từng tấm ảnh.
Trang 15VI Ứng dụng của phân tích QR qua công nghệ Wifi MIMO
Khi sử dụng mạng Wifi, nếu như có nhiều thiết bị kết nối cùng lúc với 1 Wifi thì
tốc độ truyền tải dữ liệu của wifi sẽ giảm xuống
MIMO (Multiple In, Multiple Out) là phương pháp sử dụng nhiều ăng-ten để gửi
và nhận tín hiệu qua kết nối không dây Để các thiết bị điện tử dễ dàng thu nhận sóng Wifi và tận dụng hết công suất của Router Wifi
MIMO tận dụng bản chất không dội lại của sóng khi chúng "va chạm" với các chướng ngại vật trên đường truyền, cho phép chúng đi theo nhiều đường khác nhau đến bộ thu tín hiệu
- Sử dụng bộ định tuyến chỉ có thể giao tiếp với 1 thiết bị tại một thời điểm, điều này sẽ khiến thiết bị được kết nối cũng phải chờ để gửi và nhận dữ liệu (SU-MINO)
- Bộ định tuyến cho phép các bộ định tuyến chia nhỏ các gói riêng lẻ và gửi chúng đến nhiều thiết bị cùng một lúc Do đó, tốc độ truyền tải sẽ chậm hơn
Để cải thiện tình hình, một tiêu chuẩn công nghệ mới (MU-MINO) đã ra đời giúp giảm thời gian chờ đợi tối ưu
⟹ Nếu SU-MIMO là một người chia bài thì MU-MIMO là một người chia có
4 đôi tay, mỗi đôi tay sẽ làm việc với một người chơi.
Giải thích thêm:
Trang 16Dựa trên phương pháp nhân tố QR của ma trận kênh truyền hình H, công nghệ MIMO được tạo nên Theo phương pháp này, bất kỳ ma trận kênh truyền hình nào cũng có thể phân tích được thành H=QR
CHƯƠNG 4: KẾT LUẬN
-MATLAB tích hợp được việc tính toán, đưa ra kết quả, cho phép lập trình, giao diện làm việc thuận tiện cho người sử dụng, cho phép phát triển, giao tiếp với các phần mềm khác như C++,Fortran, cho phép mô phỏng các mô hình thực tế trong khi việc vẽ bằng tay tốn nhiều thời gian
-Như vậy, ta đã đi từ những vấn đề chung đến bài toán riêng khá phức tạp đòi hỏi nhiều công việc tính toán với người giải quyết bài toán Tuy nhiên, với sự hỗ trợ của công cụ MATLAB,việc giải quyết, khảo sát bài toán trở nên dễ dàng, sinh động và trực quan hơn
12 Sử dụng phép quay Givens là một cách để phân tích ma trận A thành QR, việc phân tích A=QR giúp ta dễ dàng, thuận tiện hơn trong việc tính toán: tìm định thức, giải
phương trình tuyến tính, tìm trị riêng,
TÀI LIỆU THAM KHẢO
[1] J Lambers, "Course Hero," 10 2009 [Online] Available:
https://www.coursehero.com/file/14354162/Lambers2010-The-QR-Factorization/
[Accessed 16 4 2022]
[2] W Fan and A Amir, "Givens rotation-based QR decomposition for MIMO systems," IET Communications, 2017
[3] L Beilina, E Karchevskii and M Karchevskii, Numerical Linear Algebra: Theory and Applications, Berlin: Springer, 2017
[4] M T Romero, E Rubio and E H Rubio, "Parallel QR Factorization using Givens Rotations in MPI-CUDA for Multi-GPU," Cinvestav-IPN, SEPI-ESCOM, Mexico city,
2020
[5] M T Heath, "Parallel Numerical Algorithms Chapter 11 – QR Factorization"