Phân tích QR Máy tính

Định dạng số
Bình luận giải pháp
Không có mô tả (chỉ hiển thị kết quả)

a

b

c

d

x

y

z

clear

i

ab
x2
xn

Randomize

313131313135151515151583137
2
2510
=Giải

  Cách tính phân tích QR bằng phép quay Givens

Áp dụng chuỗi phép quay phẳng 2×2 để xóa các phần tử dưới đường chéo lần lượt. Mỗi phép quay Givens được xác định bởi hai phần tử nó tác động. Tích tích lũy của phép quay là Q, ma trận quay là R.

  Ví dụ phép quay Givens — (3×3)

Viết ma trận ban đầu
A
:
A
=
1
1
0
1
0
1
0
1
1
Phân rã
QR
là một biểu diễn của ma trận
A
dưới dạng:
A
=
Q
*
R
;
Ma trận
Q
là một ma trận trực góc;
Ma trận
R
là một ma trận tam giác trên;
Chúng ta có thể sử dụng phép quay Givens để làm cho tất cả các phần tử dưới đường chéo chính của ma trận
A
bằng 0;
Phương pháp này là lặp và trong một lần lặp, chúng ta sẽ chuyển đổi một phần tử thành 0;
Ở lần lặp cuối cùng, khi tất cả các phần tử dưới đường chéo chính được chuyển thành 0, chúng ta sẽ có được ma trận
R
;
Trong quá trình tính toán ma trận
R
tại mỗi lần lặp, chúng ta sẽ tính toán ma trận
G
để chuyển các phần tử dưới đường chéo chính thành 0;
Chúng ta có thể tính toán ma trận
Q
bằng cách nhân tất cả các ma trận chuyển vị
G
;
Chúng ta sẽ đặt các phần tử thành 0 theo thứ tự từ trên xuống dưới từ trái sang phải;
Tại mỗi lần lặp, chúng ta cần xác định các biến sau:
a
là phần tử của ma trận Aₖ₋₁, nằm trên đường chéo chính trong cùng cột với phần tử mà chúng ta muốn chuyển thành 0
a
=
a
0
k - 1
0
i,i
;
b
là phần tử của ma trận Aₖ₋₁ mà chúng ta muốn chuyển thành 0
b
=
a
0
k - 1
0
j,i
;
// trong đó
j
là số thứ tự của dòng dòng trong đó có phần tử mà chúng ta muốn chuyển thành 0
i
là số thứ tự của dòng cột trong đó có phần tử mà chúng ta muốn chuyển thành 0
k
là số lần lặp
Aₖ₋₁
là ma trận được tính toán ở lần lặp trước
Tiếp theo, chúng ta cần tính toán các giá trị sau:
r
=
a
2
0
+
b
2
0
;
c
=
a
r
;
s
= -
b
r
;
Bây giờ chúng ta có thể xây dựng ma trận
G
:
1)
Ma trận G có cơ sở là ma trận đơn vị kích thước n x n
// trong đó
n
Là số lượng hàng của ma trận A
2)
Phần tử dưới chỉ số [i,i] bằng c
g
0
i,i
=
c
;
3)
Phần tử dưới chỉ số [j,j] bằng c
g
0
j,j
=
c
;
4)
Phần tử dưới chỉ số [j,i] bằng s
g
0
j,i
=
s
;
5)
Phần tử dưới chỉ số [i,j] bằng -s
g
0
i,j
=
-s
;
Sau khi xây dựng ma trận
G
, chúng ta có thể nhân nó với ma trận
A
0
k - 1
từ bên trái, và chúng ta sẽ có được ma trận
A
0
k
;
Trong bước này, chúng ta sẽ đặt phần tử dưới chỉ số
j,i
thành 0;
Chúng ta cũng sẽ nhân ma trận
Q
0
k - 1
với ma trận
G
T
0
và có được ma trận
Q
0
k
;
2
Lặp lại lần 1
Ở lần lặp đầu tiên, ma trận
A
0
0
bằng với ma trận ban đầu
A
:
A
0
0
=
1
1
0
1
0
1
0
1
1
Viết ma trận ban đầu
Q
0
0
, bằng với ma trận đơn vị:
Q
0
0
=
1
0
0
0
1
0
0
0
1
i
=
1
;
j
=
2
;
a
=
a
0
k - 1
0
i,i
=
a
0
0
0
1,1
=
1
;
b
=
a
0
k - 1
0
j,i
=
a
0
0
0
2,1
=
1
;
r
=
a
2
0
+
b
2
0
=
1
2
0
+
1
2
0
=
1
41
100
;
c
=
a
r
=
1
1
41
100
=
71
100
;
s
= -
b
r
= -
1
1
41
100
=
-
71
100
;
G
=
c
s
0
-s
c
0
0
0
1
=
71
100
-
71
100
0
71
100
71
100
0
0
0
1
;
Ma trận
A
0
1
A
0
1
=
G
0
·
A
0
0
=
71
100
-
71
100
0
71
100
71
100
0
0
0
1
·
1
1
0
1
0
1
0
1
1
=
1
41
100
0
0
71
100
-
71
100
1
71
100
71
100
1
Ma trận
G
T
0
G
T
0
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
Ma trận
Q
0
1
Q
0
1
=
Q
0
0
·
G
T
0
=
1
0
0
0
1
0
0
0
1
·
71
100
71
100
0
-
71
100
71
100
0
0
0
1
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
3
Lặp lại lần 2
i
=
2
;
j
=
3
;
a
=
a
0
k - 1
0
i,i
=
a
0
1
0
2,2
=
-
71
100
;
b
=
a
0
k - 1
0
j,i
=
a
0
1
0
3,2
=
1
;
r
=
a
2
0
+
b
2
0
=
-
71
100
2
0
+
1
2
0
=
1
11
50
;
c
=
a
r
=
-
71
100
1
11
50
=
-
29
50
;
s
= -
b
r
= -
1
1
11
50
=
-
41
50
;
G
=
1
0
0
0
c
s
0
-s
c
=
1
0
0
0
-
29
50
-
41
50
0
41
50
-
29
50
;
Ma trận
A
0
2
A
0
2
=
G
0
·
A
0
1
=
1
0
0
0
-
29
50
-
41
50
0
41
50
-
29
50
·
1
41
100
0
0
71
100
-
71
100
1
71
100
71
100
1
=
1
41
100
0
0
71
100
1
11
50
0
71
100
41
100
-1
3
20
Ma trận
G
T
0
G
T
0
=
1
0
0
0
-
29
50
41
50
0
-
41
50
-
29
50
Ma trận
Q
0
2
Q
0
2
=
Q
0
1
·
G
T
0
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
·
1
0
0
0
-
29
50
41
50
0
-
41
50
-
29
50
=
71
100
71
100
0
41
100
-
41
100
41
50
29
50
-
29
50
-
29
50
4
Ma trận Q, R
Q
=
Q
0
2
=
71
100
71
100
0
41
100
-
41
100
41
50
29
50
-
29
50
-
29
50
R
=
A
0
2
=
1
41
100
0
0
71
100
1
11
50
0
71
100
41
100
-1
3
20
Answer
A = Q · R
Q
=
71
100
71
100
0
41
100
-
41
100
41
50
29
50
-
29
50
-
29
50
R
=
1
41
100
0
0
71
100
1
11
50
0
71
100
41
100
-1
3
20
Kích thước3×3Phương phápXoay Givens

  Phương pháp tính toán

  Nguồn