Professional Documents
Culture Documents
201 - BTL ĐSTT
201 - BTL ĐSTT
KHOA ĐIỆN-ĐIỆN TỬ
MỤC LỤC
Phân rã QR (hay còn gọi là phân tích QR) của một ma trận là quá trình
phân tích một ma trận thành ma trận trực giao và ma trận tam giác. Phân tích QR
của một ma trận thực A là phân tích A dưới dạng A=QR, trong đó Q là ma trận
trực giao (tức là 𝑄𝑇 . 𝑄 = 𝐼) và R là ma trận tam giác trên. Nếu A khả nghịch thì
phép phân tích QR này là duy nhất.
1.2 Phép biến đổi Householder
*Công thức tìm hình chiếu của vecto v lên không gian con F:
prF(v) = FTX = FT (FMFT)-1 FMv
Vecto v được phân tích thành v = a +b , với a là hình chiếu vuông góc
của v lên F, b là hình chiếu vuông góc của v lên F
𝑢𝑢𝑇
(1) b= v
𝑢𝑇 𝑢
𝑢𝑢𝑇
v=a+ v
𝑢𝑇 𝑢
𝑢𝑢𝑇
a=(I- )v
𝑢𝑇 𝑢
𝑢𝑢𝑇
I- là phép chiếu vuông góc của một vecto lên không gian con F.
𝑢𝑇 𝑢
4
F E M
O H
𝑢𝑢𝑇
=(I-2 )v
𝑢𝑇 𝑢
𝑢𝑢𝑇
(I-2 ) là phép đối xứng qua F phép biến đổi này được gọi là
𝑢𝑇 𝑢
phép biến đổi Householder.
1.3 Phân tích A= QR bằng phép biến đổi Householder
Một trong những ứng dụng chính của phép biến đổi Householder là
dùng để phân tích ma trận A thành A = QR
Ma trận P1 tương ứng với phép biến đổi trực giao nên nó bảo toàn độ dài
của vecto.
Vậy độ dài của P1A*1 bằng với độ dài của A*1
Do đó ta chọn P1A*1=||A*1||e1
Đặt vecto ⃗⃗⃗⃗⃗⃗
𝑂𝑀 = A*1 , ⃗⃗⃗⃗⃗⃗
𝑂𝑁 = ||A*1||e1
Khi đó ⃗⃗⃗⃗⃗⃗
𝑂𝑀 = ⃗⃗⃗⃗⃗⃗ ⃗⃗⃗⃗⃗⃗⃗
𝑂𝑁 + 𝑁𝑀
⃗⃗⃗⃗⃗⃗⃗ = ⃗⃗⃗⃗⃗⃗
𝑁𝑀 𝑂𝑀-𝑂𝑁 ⃗⃗⃗⃗⃗⃗
Bước 2: Ta tạm gọi các ma trận 𝐻𝑖 là các ma trận Householder. Tìm các
ma trận Householder bằng phép biến đổi Householder, ta lấy ra cột đầu tiên của
ma trận R để tính toán. Gọi cột đầu tiên của ma trận R là 𝑎1 . Ta có :
𝑎
𝑎1 = (𝑏 ) ⟹ ‖𝑎1 ‖ = √𝑎2 + 𝑏 2 + 𝑐 2 ⟹ 𝑢1 = 𝑎1 + 𝑠𝑖𝑔𝑛(𝑎)‖𝑎1 ‖𝑒1
𝑐
𝑎 + ‖𝑎1 ‖
⟹ 𝑢1 = ( 𝑏 )
𝑐
𝑢1 .𝑢1𝑇
Lại có : 𝐻1 = 𝐼 − 2. .
𝑢1𝑇 .𝑢1
𝑎 + ‖𝑎1 ‖
Mà 𝑢1𝑇 . 𝑢1 = (𝑎 + ‖𝑎1 ‖ 𝑏 𝑐). ( 𝑏 ) = (𝑎 + ‖𝑎1 ‖)2 + 𝑏 2 +
𝑐
𝑐2
⟹ 𝑢1𝑇 . 𝑢1 = ‖𝑢1 ‖2
𝑢
⟹ 𝐻1 = 𝐼 − 2. 𝑣1 . 𝑣1𝑇 với 𝑣1 = ‖𝑢1‖
1
function H = householder(x,k)
n = length(x); % Tìm số hàng của vector X
y = sum(x(k+1:n).^2);
g = sqrt(x(k)^2+y); %||x||
W = sqrt((x(k)+g)^2+y);%||u||
v = zeros(n,1); % Tao ma tran 0 (n x 1)
v(k) = (x(k) + g)/W; % v = u/||u||
v(k+1:n) = x(k + 1:n)/W;
H = eye(n) -2*v*v';% H = I - 2v*v'
Kết quả chạy
8
hoặc nếu chỉ khi bit thứ hai là 1, nhưng sẽ là 0 nếu cả hai là 0 hoặc cả hai là 1. Ở đây ta
thực hiện phép so sánh hai bit, kết quả là 1 nếu hai bit khác nhau và là 0 nếu hai bit giống
nhau.)
Sau khi thực hiện nhúng wi vào R i (1,1) ta nhận được R i ′(1,1) chỉ khác
R i ở vị trí (1,1). Nếu chọn phần tử khác để nhúng, ví dụ R i (1, k) thì
R i ′ khác R i tại vị trí (1, k)
Bước 4: Tính Ii ′ = Q i x R i ′ ảnh I′ tạo từ các khối Ii ′ là ảnh chứa dấu thủy
vân W.
3.5. Thuật toán kiểm tra dấu thủy vân
Cho 𝐼 ∗ là một phiên bản của 𝐼 ′ với hệ số lượng tử 𝑞, thuật toán dưới đây
sẽ kiểm tra sự tồn tại của dấu thủy vân trong ảnh 𝐼 ∗ để kết luận sự giống nhau
giữa 𝐼 ∗ và 𝐼 ′
Bước 1: Chia ảnh 𝐼 ∗ thành 𝑡 khối như nhau, kí hiệu là 𝐼𝑖∗ , 𝑖 = 1,2,…, 𝑡
Bước 2: Áp dụng phân tích QR cho từng khối 𝐼 ∗
𝐼 ∗ = 𝑄𝑖∗ x 𝑅𝑖∗
Bước 3: Xác định bit 𝑤𝑖∗ từ 𝑅𝑖∗ (1,1) như sau:
𝑞
𝑅𝑖∗ (1,1) +
𝑘𝑖∗ =[ 2
]
𝑞
[1] Cơ sở lý thuyết: Giáo trình Đại số tuyến tính của thầy Đặng Văn Vinh,
Chương 4 trang 161-168