QR分解 計算機

數字格式
解決方案評論
無描述(僅回答)

a

b

c

d

x

y

z

clear

i

ab
x2
xn

Randomize

313131313135151515151583137
2
2510
=求解

  如何通過吉文斯旋轉計算 QR 分解

應用一系列 2×2 平面旋轉逐次使次對角線項為零。每個吉文斯旋轉由它作用的兩個條目決定。旋轉的累積乘積是 Q,旋轉矩陣是 R。

  吉文斯旋轉 — 工作示例 (3×3)

寫出初始矩陣
A
A
=
1
1
0
1
0
1
0
1
1
QR
分解是矩陣
A
的表示形式:
A
=
Q
*
R
矩陣
Q
是正交矩陣;
矩陣
R
是上三角矩陣;
我們可以使用吉文斯旋轉使得矩陣
A
主對角線以下的所有元素都為零;
這個方法是迭代的,每次迭代我們將把一個元素轉為零;
在最後一次迭代中,當主對角線以下的所有元素都被轉為零時,我們將得到矩陣
R
;
在每次迭代中計算矩陣
R
時,我們將計算矩陣
G
以將主對角線以下的元素轉為零;
我們可以通過乘積所有轉置的矩陣
G
來計算矩陣
Q
;
我們將從上到下、從左到右將元素設為零;
在每次迭代中,我們需要定義以下變量:
a
是矩陣 Aₖ₋₁ 的元素,在與我們要將其轉為零的元素相同的列上的主對角線上
a
=
a
0
k - 1
0
i,i
;
b
是我們要將矩陣 Aₖ₋₁ 的元素轉為零的元素
b
=
a
0
k - 1
0
j,i
;
// 其中
j
是我們要將一個元素轉為零的 排 中的編號
i
是我們要將一個元素轉為零的 柱子 中的編號
k
是迭代的編號
Aₖ₋₁
是前一次迭代中計算的矩陣
接下來,我們需要計算以下值:
r
=
a
2
0
+
b
2
0
;
c
=
a
r
;
s
= -
b
r
;
現在我們可以構建矩陣
G
:
1)
矩陣 G 的基礎是大小為 n 乘 n 的單位矩陣
// 其中
n
是矩陣 A 的行數
2)
索引 [i,i] 下的元素等於 c
g
0
i,i
=
c
;
3)
索引 [j,j] 下的元素等於 c
g
0
j,j
=
c
;
4)
索引 [j,i] 下的元素等於 s
g
0
j,i
=
s
;
5)
索引 [i,j] 下的元素等於 -s
g
0
i,j
=
-s
;
在構建完矩陣
G
後,我們可以將其左乘矩陣
A
0
k - 1
,這將得到矩陣
A
0
k
;
在這一步中,我們將將索引
j,i
下的元素設為零;
我們還將矩陣
Q
0
k - 1
左乘矩陣
G
T
0
,得到矩陣
Q
0
k
;
2
迭代 1
在第一次迭代時,矩陣
A
0
0
等於原始矩陣
A
A
0
0
=
1
1
0
1
0
1
0
1
1
寫入初始矩陣
Q
0
0
,它等於單位矩陣:
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
;
矩陣
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
矩陣
G
T
0
G
T
0
=
71
100
71
100
0
-
71
100
71
100
0
0
0
1
矩陣
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
迭代 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
;
矩陣
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
矩陣
G
T
0
G
T
0
=
1
0
0
0
-
29
50
41
50
0
-
41
50
-
29
50
矩陣
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
矩陣 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
大小3×3方法吉文斯旋轉

  計算方法

  參考來源