矩阵分解之Givens变换与Householder变换(PPT文档)

合集下载

Householder变换与矩阵的正交分解

Householder变换与矩阵的正交分解
• 001
Householder变换的实例
01
```
02
变换过程
03
```
Householder变换的实例
01
123
02
456
03
789
Householder变换的实例
``` 第一行减去2倍的第二行
Householder变换的实例
``` 1 -2 -3
456
Householder变换的实例
• 7-16 -9
Householder变换的实例
```
第二行减去2倍的第一行
VS
Householder变换的实例
01 ``` 02 1 -2 -3 03 0 1 0
Householder变换的实例
Householder变换的实例
```
第三行减去4倍的第二行
Householder变换的实例
未来研究方向与展望
随着科学技术的不断发展,矩阵的正交分解和Householder变换的应用场景将更加广 泛,需要进一步深入研究其理论和应用。
目前,对于大规模稀疏矩阵的正交分解和并行计算的研究还比较少,未来可以加强这方 面的研究,以提高计算效率和精度。
随着深度学习和人工智能的兴起,矩阵的正交分解和Householder变换在神经网络、 自编码器等领域的应用前景值得期待。
0.562847086929545 -0.378755864794983 -0.688379494594977
03
0.378755864794983 -0.562847086929545 -0.386377262123644
正交分解的实例
0.688379494594977 -0.386377262123644 0.591631132832155

矩阵理论_课件_11

矩阵理论_课件_11
2
,且 αxHz 为实数.
α 满足两个特征
证明: 当 x=0时,任取单位向量u,则
H ( E 2uu H )0 0 0 z Hx
当 x= αz ≠ 0 时,取单位向量u满足 uHx=0,则有
Hx ( E 2uu H ) x x 2u(u H x ) x = z
5 2 , s1 计算T13. 取 c1 ,则 3 3
5 3 T13 0 2 3
T T T x x e 3(1, 0, 0) 使得 13 12 . 2 1
0 1 0
2 3 0
5 3

6.2.3 矩阵的QR分解
定义:设 A Cnn . 如果存在n阶酉矩阵Q和n阶上三角 矩阵R,使得
1 1 c s p行 1 Tpq 1 s c q行 1 1
p 列
q 列
T n x ( , , , ) C 定理:对任意 定理 对任意 , 1 1 n
解(1):取 x
2
(2). x (2i, i, 2)T .
3 ,计算
2 1 x e1 1 1 u 2 1 x e1 2 12 3 2 1 1 2 2 1 H 于是 H E 2uu 2 1 2 , 使得 Hx=3e1. 3 2 2 1
( x z) ( x z) x x x z z x z z
H H H H H
2
x x ( x z ) z x x
H H H H
2 2
2
实数的共轭转置为本身

householder和givens变换

householder和givens变换

定理 设 u 是C一n 个单位向量,则对于任意的 x Cn
存在Householder矩阵H,使得Hx au其中 a x 2为,ax实Hu数。
证明 当x=0时,任取单位向量 C n
则 H()(x) I 2 H 0 0
当 x au时,0取单位向量 使 C n H x 0

H ()(x) I 2 H x x 2( H x) x au
Householder变换
Householder变换又称为反射变换或镜像变换,有
明显的几何意义。在R3 中,给定一个向量,令表示
关于平面(以 为法向量)的反射变换所得像,如
图所示,
记 R3
H () I 2 T
则 H ()
O
+
即:该变换将向量 变成了以 为法向量的平
面的对称向量 。
使得 Hx ae1
,其中
a
x 2
上述结论表明,可以利用Householder变换将任意向量 Rn
化为与第一自然基向量 e平1 行的向量(共线)。
例2 用Householder变换将向量x 2i, i, 2T
化为与 e1 1, 平0, 行0T的向量。
解 由于
x 3 2
x H e1 2i
从上图中我们可以看出旋转变换并不改变向量的模,所 以它是正交变换,从而T是正交矩阵,且
2020/10/16
2(xH x au H x) 2(x au)H x
所以
H ()x x 2 (x au)H x (x au) au
(x au)H (x au)
推论1 对于任意的 x ,Cn存在Householder矩阵H,使 得 Hx ae1 其中 a x 2 ,为ax实H e数1 。

第六节 HOUSEHOLDER变换与矩阵的正交分解

第六节 HOUSEHOLDER变换与矩阵的正交分解

数值分析
数值分析
对第二种情形的H
阵,还可进行降维处理。
k
Hk阵对向量x的前k 1个分量的作用就如同是一个 (k 1)阶的单位阵的作用。 x Rn
x
x(1)
x
(
2
)
x(1) x(2)
( x1 , x2 ,L , xk 1 )T Rk 1 ( xk , xk 1 ,L , xn )T Rnk 1
K 3
取K 3 于是y Ke3 (0, 0, 3, 0)T ,
U x y (2, 0, 5,1)T
11 0 10 2
H
UU T I2 U 2
1
0
15 10
1 0
0 10
0
5
2
2
0
5
14
数值分析
数值分析
2. 构造H阵,将向量x ( x1 ,L , xk , xk1 ,L , xn )T 的 后面n k个分量约化为零(1 k n)。
数值分析
第六节 Householder变换与矩阵的正交分解
一、初等反射阵(Householder变换阵)
定义 设非零向量W Rn ,W (w1, w2 ,L , wn )T , 且满足条件 W 1,形如
2
H E(W ,W , 2) I 2WW T
的n阶方阵称为初等反射阵, 或称为Householder
H (2) k
x(2)
H
(2 k
)
x(2)
数值分析
数值分析
例:已知向量x (2, 2,1)T , 试构造初等反射阵 使y Hx最后一个元素为零。
解 k 2, 构造H2
1
2 sign( x2 )( x22 x32 )2 5

矩阵论课件 4.2

矩阵论课件  4.2

z R , 则存在有限个Givens矩阵的乘积T,使
得 Tx x z.
证 对于向量x ,存在
(1)
T
(1)
T T
(1) (1) 1n 1,n 1
T
(1) 12
使得 T x x e1; 对于向量z ,存在
T
所以
T T
( 2)
T T
( 2) ( 2) 1n 1,n 1
T
( 2) 12
例4.5 设 x (1,2,2)T , 用Householder变换化 x为与 e1 同方向的向量.
x 3, x x e1 2(1,1,1) . 解 计算 1 T 取 u (1,1,1) , 构造Householder 矩阵 3
T
1 1 1 2 2 2 1 H 1 1 1 1 1 2 1 2 3 3 1 1 2 2 1
为Givens矩阵(初等旋转矩阵),亦可记作
Tij Tij (c, s)
由Givens矩阵确定的变换称为
Givens变换(初等旋转变换).
性质1
1 ij
Givens矩阵是正交矩阵,且有
T ij
T (c, s) T (c, s)
性质2 设
T
Tij (c, s), det Tij (c, s) 1
T
x (1 , 2 ,, n ) , y Tij x 1 ,2 ,,n
则有
i ci s j , j si c j ,k k (k i, j )
当 0 时,选取
2 i 2 j
c
则有

2 i
i

3-2 Householder变换

3-2 Householder变换

§2 Householder 变换镜像变换(Householder 变换)是把矩阵进行正交三角分解的有效方法。

一、Householder 变换及其性质考虑一向量x 分解为两个正交的分向量。

如下图所示,假定除了向量x 外还有另一已知向量v .现在,先将x 投影到v ,产生投影x P v .然后将x 投影到与v 垂直的超平面⊥v 上,产生另外一个投影x P v ⊥.投影x P v ⊥称为向量x 到向量v 的正交投影.于是,这两个投影就构成了以x 为对角线的矩形的两个边.根据向量加法规则, x 可以表示这两个投影的向量之和(合成向量),即x P x P x v v ⊥+= (1)向量x 的这一分解形式称为正交分解.在上述二维的例子中, ⊥v 是一直线,而x P v ⊥为一向量.在更高维的情况下,⊥v 变成一多维目标(超平面),而x P v ⊥仍然为包含在⊥v 内部的一向量.正交分解式(1)中的矩阵'),(1v v v v P v -= (2) '),(1v v v v I P I P v v -⊥-=-= (3)分别称为向量v 的投影矩阵和正交投影矩阵.如果我们不是像图3.1那样构造两个投影x P v 与x P v ⊥之和,而是构造二者之差,就会得到一个新向量x H v 如图3.2所示.图中,)1,2(),4,2(==v x ,因此)512,56(),58,516(-=--=-⊥x P x P v v ,于是, ).54,522(-=-=⊥x P x P x H v v v 矩阵v v I v v vv I v v v v I P P H v v v /,'2),/('2'),(21=-=-=-=-=-⊥ϖϖϖ (4)称为向量v 的Householder(变换)矩阵,而向量),(),(2),/('2)(v v x v vx v v x vv x x P x P x P P x H v v v v v -=-=-=-=⊥⊥ (5) 称为向量x 相对于向量⊥v 的Householder 镜像变换.这样设计的算法即节省了n n ⨯个存储单元,而且同样达到求解求逆的目的,这种改进的G-J 消去变换也称为紧凑或原地求逆变换.定义6.1 设0,)(≠=⨯ij m n ij a a A ,定义一个新的矩阵m n ij b ⨯=)(B ,其中j l i k a a a a b ij kj il kl kl ≠≠-=, ./ )1( i k a a b ij kj kj ≠-= ./ )2( j l a a b ij il il ≠= ./ )3(/1 )4(ij ij a b =按这个规则A 变成n ij ij ij I G A G A T -+=定义6.2 称)(A T ij 是对称矩阵A 施行以),(j i 为主元的消去变换,如果: ① 对A 作J G -消去变换,使其第j 列j a 变成i e ,即i j ij e a G =; ② 记i i ij g e G =,用i g 替代i ij A G 的第j 列i e . 由等价的定义,当A 为n 阶方阵时易得出n ij ij ij I G A G A T -+=消去变换ij T 的基本性质 性质1 反身性:A A T T ij ij =;设),(),()2()1()2()1()1(ij ij ij ij a A T A a A T A ≡=≡=,由(6.3)式可直接验证:m),1,2,j n;,1,2,(i )2( ===ij ij a a性质2 可交换性:当l j k i ≠≠,时,A T T A T T ij kl kl ij =; 由(6.3)式可直接验证两边元素对应相等.性质3 若)(为对称阵A A A =',记)(αβb A T B kk ≡=,则⎪⎩⎪⎨⎧≠≠=≠-=k k b b kb b k k βαββααβββ,, , 对对称阵A 施行),(k k 消去变换后,得矩阵B .B 除第k 行k 列相差一个符号后,其余仍保持对称性,也称B 为绝对对称阵.性质4 行列置换与消去变换的次序变化关系:设A 为m n ⨯阵,ip P 为i 行和p 行交换的行置换阵,jq Q 为j 列和q 列交换的列置换阵,则①jq iq jq ij Q A T AQ T )()(=; ②)()(A T P A P T pj ip ip ij =; ③jq pq ip jq ip ij Q A T P AQ P T )()(=.证明 ①和②由(6.3)式及行列置换的定义可直接验证.下面利用①和②来证明③:jq pq ip jq pj ip jq ip ij jq ip ij Q A T P AQ T P AQ P T AQ P T )()]([)]([)(===性质5 设⎪⎪⎭⎫⎝⎛=22211211 A A A A A ,11A 为r 阶可逆矩阵,则⎪⎪⎭⎫ ⎝⎛--=------1211121122111211211111111 A A A A A A A A A A T T T r r . 证明 记),,2,1(,)1()()0(r k A G A A A k k k ===-,利用J G -消去变换的定义知:⎪⎪⎭⎫⎝⎛====--*22*12)0(121)1()( 0 A A I AG G G G AG Ar r r r r r . 记n r r r I G G G G J 121 -=.因k G 是由)1(-k A 的第k 列定义的J G -消去变换阵,即).,,,,,,(111n k k k k e e g e e G +-=对r k ,,2,1 =,k G 的第r 列以后各列均为单位向量,故有). (112111阶方阵为r J I J J J r n r ⎪⎪⎭⎫ ⎝⎛=- 由消去变换的定义 6.2,知消去变换等价于先做J G -变换然后进行替换.故有⎪⎪⎭⎫⎝⎛=-*2221*1211121 A J A J A T T T T r r . 利用0 0*22*12222112112111)0()(⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛==-A A I A A A A I J J A J A r r n r r (6.4) 可得⎩⎨⎧=+=,0,2111211111A A J I A J r ,即⎪⎩⎪⎨⎧-==--.,111212111111A A J A J 把2111,J J 代入(6.4)式又得 ⎪⎩⎪⎨⎧-=+===--.,121112122221221*22121111211*12A A A A A A J A A A A J A 所以.A A A 121-1121221-112112-111-111121⎪⎪⎭⎫⎝⎛--=-A A A A A A A T T T T r r [证毕] 6.2 消去变换的应用(一)计算可逆矩阵的逆设A 为n 阶可逆矩阵.当A 为正定阵时,因A 的各阶主子式非零,故对A 依次施行消去变换时主元均不为零.于是有:A T T T T A n n 1211 --=,其中),,2,1(n k T k =是施行以),(k k 为主元的消去变换.对于一般可逆阵A ,有0≠A ,对A 依次以对角元为主元做消去变换时,当遇到某个0)1(=-k kka 时,一般先对矩阵作行列置换,使主元不为0,然后接着做消去变换,求出1-A .例6.2 求⎪⎪⎪⎭⎫⎝⎛=1 2 00 123 00A 的逆矩阵.解 因012≠=A ,A 为可逆矩阵.但011=a ,求1-A 时, 先进行行列置换后接着做消去变换,求出1-A .定理1(分块矩阵的正则逆) 设⎪⎭⎫⎝⎛=22211211A A A A A 可逆. 若011≠A , 则⎪⎪⎭⎫ ⎝⎛--+=⎪⎭⎫ ⎝⎛=-----------11.221112111.2211.22121111112111.22121111111222112111A A A A A A A A A A A A A A A A AA (1) 若022≠A , 则⎪⎪⎭⎫ ⎝⎛+--=----------1221212.112112212212.11211221221212.1112.111A A A A A A A A A A A A A A (2) 其中.,2112212112.111211121221.22A A A A A A A A A A ---=-= 证明 若011≠A , 则有(分块矩阵的初等变换)⎪⎭⎫⎝⎛=⎪⎭⎫ ⎝⎛-⎪⎭⎫ ⎝⎛⎪⎭⎫ ⎝⎛---1.22111211122211211111210000A A I A A I A A A A I A A I (3) 此式证明了1.22A 的可逆性。

householder变换和奇异值分解

householder变换和奇异值分解

householder变换和奇异值分解标题:Householder变换与奇异值分解:线性代数中的两个重要概念引言:在线性代数中,Householder变换和奇异值分解是两个非常重要的概念。

它们在矩阵计算、数据处理以及信号处理等领域有着广泛的应用。

本文将以人类的视角,生动地介绍这两个概念,让读者感受到它们的实际应用和重要性。

1. Householder变换:矩阵的几何变换Householder变换是一种线性代数中常用的几何变换方法。

通过对矩阵进行反射操作,可以将向量投影到另一个向量上。

这个过程可以理解为在空间中对矩阵进行镜像,从而改变了矩阵的形状和性质。

例如,在计算机图形学中,我们可以利用Householder变换来实现图像的翻转、旋转和缩放等操作。

2. 奇异值分解:解析矩阵的秘密奇异值分解是一种将矩阵分解为三个矩阵乘积的方法。

这个过程可以将矩阵的结构和特征分解出来,从而更好地理解和处理矩阵的性质。

奇异值分解在数据处理、机器学习和信号处理等领域中非常常见。

例如,在数据降维中,我们可以利用奇异值分解将高维数据降低到低维空间,以减少计算量和提高算法效率。

3. Householder变换与奇异值分解的应用Householder变换和奇异值分解在实际应用中有着广泛的应用。

在图像处理中,我们可以利用Householder变换进行图像的翻转和旋转操作,从而实现图像的处理和增强。

而在数据处理和机器学习中,奇异值分解可以帮助我们降低数据维度,提取重要特征,并进行数据压缩和噪声去除等操作。

结论:Householder变换和奇异值分解作为线性代数中的两个重要概念,在实际应用中发挥着重要的作用。

它们不仅可以改变矩阵的形状和性质,还可以帮助我们更好地理解和处理数据。

通过深入学习和理解这两个概念,我们可以在各个领域中应用它们,从而提高问题的解决效率和准确性。

无论是在图像处理、数据处理还是机器学习中,Householder变换和奇异值分解都是不可或缺的工具,值得我们深入学习和探索。

西北工业大学矩阵论课件PPT第四章例题矩阵分解

西北工业大学矩阵论课件PPT第四章例题矩阵分解

u1
a3 e~1 a3 e~1 2
1 2
1 0 1
于是
0 0 1
H~1
I
2u1u1T
0
1
0
1 0 0

H1
1 0
0T H~1
1 0 0 0
0 0 0 1
0 0 1 0
0 1 0 0
2 1 0 0

H1AH1
1 0
1 3
3 1
4 2
0 4 2 1
对 a2 (3,4)T,取 2 a2 2 5,则
1
0
0 0 0 2

试求矩阵
A
0 0
3 4
1 2
的QR分解。
2 1 2

将列向量
a1
0
0
,a2
3 4 ,a3
1 2
正交化得
2
1
2
p1
a1
0
0

p2
2
a2
2 4
p1
3 4
,p3
0
a3
4 4
p1
5 25
p2
8 5
6 5
0
单位化得
0
q1
1 2
p1
0 , 1
证 因为
I O A B I O A B B I I B A I I O A B 取行列式即得。
例 设A, B, C, D为同阶方阵,A可逆, 且AC = CA。
证明 证 因为
det A C
B det(AD CB) D
I CA1
O A I C
B A D O
(2 )4
4!
A4

数值分析(07)矩阵的正交分解

数值分析(07)矩阵的正交分解
数值分析
Householder变换与矩阵的正交分解 第六节 Householder变换与矩阵的正交分解
一、初等反射阵(Householder变换阵) 初等反射阵(Householder变换阵) (Householder变换阵
定义 设非零向量W ∈ R ,W = ( w1 , w2 ,L , wn ) , 且满足条件 W 2 = 1, 形如
数值分析
T
数值分析
H阵的性质: 阵的性质: 阵的性质 T det( H ) = 1 − 2W W = −1 (1)非奇异
(2)对称正交 T H=H HH T = H 2 = ( I − 2WW T )( I − 2WW T ) = I − 4WW T + 4WW TWW T = I
2 1 − 2w1 −2w2 w1 H= L −2wn w1
故 取 K = −σ 3 = − 3 于 是 y = −σ 3 e 3 = Ke 3 = (0, 0, − 3, 0)T ,
U = x − y = (2, 0, 5,1)T , ρ = σ 3 (σ 3 + x3 ) = 3(3 + 2) = 15
ρ = U TU
1 2
H =I−
1
ρ
UU
T
11 0 1 = 15 − 10 −2
数值分析
数值分析
1 例:W = 2
1 3 0 ∈ R ,|| W ||2 = 1 2 1 2 1 1 T H = I − 2WW = I − 2 0 0 2 1 2 2 0 0 −1 =0 1 0 −1 0 0
数值分析
例 已 知 向 量 x = (2, 0, 2,1)T , 试 构 造 Householder阵 , 使 Hx = Ke 3 , 其 中 e 3 = (0, 0,1, 0)T ∈ R 4 , K ∈ R。

第5节矩阵的QR 分解

第5节矩阵的QR 分解

§1-5 矩阵的QR 分解——一种正交变换思想:设[]nn RA ⨯∈[A]为一般非奇异方阵若[][][]R Q A =称为[A]的QR 分解其中:[Q]——正交矩阵,[R]——上三角阵[][][]I Q Q=T第5节矩阵的QR 分解法一G-S 正交化方法法二Householder 变换法三Givens 变换重点讲均可实现[A]=[Q][R]实现[A]的QR 分解的方法:重点要求掌握两种变换方法的思想:①Householder 变换②Givens 变换这是两种常用的正交相似变换!变换的目的使原矩阵简化,便于求特征解!第5节矩阵的QR 分解一、用Householder 变换实现QR 分解1、Householder 变换(简称H 变换)的定义和性质2、用H 变换将“给定向量”−→−H“指定方向”上去第5节矩阵的QR分解(进行一次最基本的H 变换)3、用H 变换将一般矩阵4、用H 正交相似变换,把一般矩阵[A]约化为上Hessenherg 阵[A]=[Q][R]下面介绍:(要通过n-1步最基本的H 变换才能实现)1、H 变换矩阵的定义和性质定义:设{}nRu ∈第5节矩阵的QR分解{}{}{}(){}{}{}{}222222,22u u u u u u u T====β[][]{}{}Tu u I P β-=称为Householder 变换矩阵!其中:(可推广到复空间)模的平方!若引入规范化向量(单位向量):{}W {}{}{}2u u W ={}{}{}2u u W TT =第5节矩阵的QR 分解{}{}{}(){}{}()1,21212===W W W W W T{}{}1=W W T即则[][]{}{}TW W I P 2-=性质:(1)对称性:(2)正交性:[][]{}{}()[]P W W I P TTT=-=2[][][]I P P T=第5节矩阵的QR分解证:[][][]{}{}()[]{}{}()TT TW W I W W I P P 22--=[][]{}{}{}{}{}{}[]{}{}{}{}[]I W W W W I W W W W W W I I TTTTT=+-=+-=44422证毕。

第十一讲矩阵的QR分解

第十一讲矩阵的QR分解

第十一讲矩阵的QR分解一.Givens 矩阵与Givens 变换1. 定义:设实数c 与s 满足221c s +=,称ij T =11()11()11c s i s c j←−←(i j <)为Givens 矩阵(初等旋转矩阵),也记作(,)ij ij T T c s =。

由Givens 矩阵所确定的线性变换称为Givens 变换(初等旋转变换)。

说明:(1)实数221c s +=,故存在θ,使cos(),sin()cs θθ=。

(2)ij y T x =中ij T 确定了将向量x 变成y 的一种变换,正是Givens变换。

二阶情况下,cos()sin()sin()cos()y x θθθθ =−确定的正是平面直角坐标系中绕原点的一个旋转变换(旋转θ度)。

(3)以上实Givens 矩阵也可推广称为复初等旋转矩阵。

123411()11()11ikj j U j j ce sei k seceθθθθ=←←−其中c 与s 仍为满足221c s +=的实数,1234,,,θθθθ为实角度。

显然,2314()()22det()j j ik U c e s e θθθθ++=+当1423θθθθ+=+时,14()det()j ik U eθθ+=当14232n θθθθπ+=+=时,det()1ik U = 2. 性质(1)1(,)(,)(,)Tij ij ij T c s T c s T c s − ==− , sin()sin()s θθ−=−=−,旋转θ度再反向旋转度θ()det ,1ij T c s =(2)设[]12T n x ξξξ= ,[]12Tij n y T xηηη== ,则有(,)ii j j i j k kc s s c k i j ηξξηξξηξ=+=−+ =≠ 当220ijξξ+≠时,总可以选22i i j c ξξξ=+,22j i j s ξξξ=+使22221200Ti i jij i j n j T x ηξξξξξξξη =+→=+=定理1. 设[]120Tn xξξξ≠ ,则存在有限个Givens 矩阵的乘积T ,使得1Tx x e =说明:(1)22T x x x x ==(x 为实数时),H x x x =(x 为复数时)。

矩阵分解之Givens变换及Householder变换

矩阵分解之Givens变换及Householder变换

向量。这两种变换之间有何关系呢?
??
2018/11/12
2018/11/12
2018/11/12
2018/11/12
thank you !!
!
2018/11/12
2018/11/12
如果不是关于水平轴的镜像变换又会是怎样?
2018/1018/11/12
2018/11/12
举一个应用Householder变换的例子
2018/11/12
2018/11/12
正所谓条条大路通罗马,通过例4.4和例4.5我们可以知道可以用 Givens变换和Householder变换化已知列向量为与某单位向量同向的
矩阵QR分解之—Givens变换和 householder变换
电子科学系 谭春华 2012年12月
2018/11/12
1、Givens矩阵和Givens变换
2、Householder矩阵和Householder变换
1、Givens矩阵和Givens变换
从上图中我们可以看出旋转变换并不改变向量的模,所以它是正交 变换,从而T是正交矩阵,且
2018/11/12
更一般地
2018/11/12
Givens矩阵
有什么性质呢?
2018/11/12
2018/11/12
2018/11/12
2018/11/12
举一个应用Givens变换的例子
2018/11/12
2018/11/12
2、Householder矩阵和Householder变换

工程数学(07)矩阵的正交分解

工程数学(07)矩阵的正交分解

工程数学
工程数学
算法1 算法
1、 输 入 x = ( x 1 , x 2 , L , x n ) T 。
给定向量 x ≠ 0, 计算初等反射阵 H 1。
2、 将 x 规 范 化 , M = m a x { x 1 , x 2 , L , x n 如 果 M = 0,则 转 出 停 机 否 则 z i ← x i / M , i = 1, 2 , L , n
因为 x − y
2 2
x− y 2 T T T T = ( x − y )( x − y ) = 2( x x − y x )
= x−2
2
代入上式后即得到 Hx = y Q x T x = y T y , xT y = yT x
工程数学
工程数学
1. Householder 变 换 可 以 将 给 定 的 向 量 变 为 一 个 与 任 一 个 ei ∈ R n ( i = 1, 2,L , n )同 方 向 的 向 量 。
工程数学
Householder变换与矩阵的正交分解 第六节 Householder变换与矩阵的正交分解
一、初等反射阵(Householder变换阵) 初等反射阵(Householder变换阵) (Householder变换阵
定义 设非零向量W ∈ R ,W = ( w1 , w2 ,L , wn ) , 且满足条件 W 2 = 1, 形如
0 1 0 0
− 10 0 − 10 −5
−2 0 −5 14
工程数学
工程数学
2. 构 造 H 阵 , 将 向 量 x = ( x 1 , L , x k , x k + 1 , L , x n ) T 的 后 面 n − k 个 分 量 约 化 为 零 (1 ≤ k < n )。 即 : 任 给 定 x = ( x1 , x 2 ,L , x n )T ≠ 0, 构 造 H k ∈ R n× n , 使 H k x = ( x1 , x 2 ,L , x k −1 , −σ k , 0,L , 0)T

矩阵四种分解:PALU,QR,Household,Givens的c程序

矩阵四种分解:PALU,QR,Household,Givens的c程序

modu=sqrt((*(arrt+i*n+j))*(*(arrt+i*n+j))+modu*modu); } for(i=j;i<m;i++) //求单次的R矩阵 for(l=j;l<m;l++) { *(R+i*m+l)=-2*(*(arrt+i*n+j))*(*(arrt+l*n+j))/modu/modu; } for(i=j;i<m;i++) { *(R+i*m+i)=1+(*(R+i*m+i)); } for(i=0;i<j;i++) for(l=0;l<m;l++) { if(i==l) { *(R+i*m+l)=1; } else { *(R+i*m+l)=*(R+l*m+i)=0; } } matrixmul(R,H,Rsum,m,m,m); for(i=0;i<m;i++) for(l=0;l<m;l++) { *(H+i*m+l)=*(Rsum+i*m+l); } matrixmul(Rsum,arr,arrt,m,m,n); } for(i=0;i<m;i++) for(l=0;l<m;l++) { *(RT+i*m+l)=*(Rsum+l*m+i); }
#include "stdio.h" #include "malloc.h" #include "math.h" void ScanMatrix(float *arr,int m,int n); //输入矩阵 void matrixmul(float*arr1,float*arr2,float*arr3,int m,int n,int k); //矩阵 数乘函数 void printm(char c,float*arr,int m,int n); //矩阵打印函数 void PALU(float *arr,int m,int n); //PA=LU分解函数 void Gram_Schmint(float *arr,int m,int n); //QR分解函数 void Household(float *arr,int m,int n); //household分解 函数 void Givens(float *arr,int m,int n); //givens分解函数 void divide(); //分解矩阵总函数 int main() { divide(); return 0; } void divide() { int m,n,method,flag=1; char c='0'; while(c!='#') { printf("请输入mXn矩阵维度m:"); scanf("%d",&m); printf("请输入mXn矩阵维度n:"); scanf("%d",&n); float *arr= (float *)malloc(sizeof (float) * m*n); ScanMatrix(arr,m,n); while(flag) { printf("请输入矩阵的分解方式:\n1-PA=LU,\n2-Gram-Schmit正交化 A=QR,\n3-Household分结束分解.\n"); scanf("%d",&method); switch(method)

C语言实现矩阵的LU分解、施密特正交化、Givens分解、Householder分解

C语言实现矩阵的LU分解、施密特正交化、Givens分解、Householder分解

C语言实现矩阵的LU分解、施密特正交化、Givens分解、Householder分解By Kim.Wang,UCAS#include<stdio.h>#include<math.h>#include<windows.h>#define HS 10#define LS 10int n, m;float a[HS][LS],bc[HS][LS];void givens(){float fm,sc,cos,sin,r[HS][LS],q[HS][LS],swap[HS][LS],p[HS][LS];int ih,jh,i, j,kh,iw;for (i = 0; i < m; i++)for (j = 0; j < n; j++)r[i][j]=a[i][j];for (i = 0; i < m; i++)for (j = 0; j < m; j++){if(i==j)q[i][j]=1;elseq[i][j]=0;}for(j=0;j<n;j++)for (i = j+1; i < m; i++){for (ih = 0; ih < m; ih++)for (jh = 0; jh < m; jh++){if(ih==jh)p[ih][jh]=1;elsep[ih][jh]=0;}fm=sqrt(r[i][j]*r[i][j]+r[j][j]*r[j][j]);cos=r[j][j]/fm;sin=r[i][j]/fm;p[i][i]=p[j][j]=cos;p[i][j]=-sin;p[j][i]=sin;for (ih = 0; ih < m; ih++)for (jh = 0; jh < n; jh++){sc=0;for (kh = 0; kh < m; kh++)sc=sc+p[ih][kh]*r[kh][jh];swap[ih][jh]=sc;}for (ih = 0; ih < m; ih++)for (jh = 0; jh < n; jh++)r[ih][jh]=swap[ih][jh];for (ih = 0; ih < m; ih++)for (jh = 0; jh < m; jh++){sc=0;for (kh = 0; kh < m; kh++)sc=sc+p[ih][kh]*q[kh][jh];swap[ih][jh]=sc;}for (ih = 0; ih < m; ih++)for (jh = 0; jh < m; jh++)q[ih][jh]=swap[ih][jh];}printf("\n Givens约减矩阵Q的结果如下:\n");for (j = 0; j < m; j++){for (i = 0; i < m; i++)printf("%0.5f ", q[i][j]);printf("\n");}printf("\n Givens约减矩阵R的结果如下:\n");for (i = 0; i < m; i++){for (j = 0; j < n; j++)printf("%0.5f ", r[i][j]);printf("\n");}}void householder(){int i, j, k, is,js,ks,iw, ie,je;float udm,sc,em,nj,q[HS][LS],r[HS][LS],u[LS],swap[HS][LS],dw[HS][LS],p[HS][LS];for (i = 0; i < m; i++)for (j = 0; j < n; j++)r[i][j]=a[i][j];for (i = 0; i < m; i++)for (j = 0; j < m; j++){if(i==j)dw[i][j]=q[i][j]=1;elsedw[i][j]=q[i][j]=0;}for(k=0;k<n;k++){for (i = 0; i < m; i++){if(i<k)u[i]=0;else if(i==k){em=0;for(iw=k;iw<m;iw++)em=em+r[iw][k]*r[iw][k];em=sqrt(em);u[i]=r[i][k]-em;}elseu[i]=r[i][k];}for (udm=0,ie = k; ie < m; ie++)udm=udm+u[ie]*u[ie];udm=sqrt(udm);if(udm<0.00001)break;for (ie = 0; ie < m; ie++)u[ie]=u[ie]/udm;for (ie = 0; ie < m; ie++)for (je = 0; je < m; je++)p[ie][je]=dw[ie][je]-2*u[ie]*u[je];for (is = 0; is < m; is++)for (js = 0; js < m; js++){sc=0;for (ks = 0; ks < m; ks++)sc=sc+p[is][ks]*q[ks][js];swap[is][js]=sc;}for (is = 0; is < m; is++)for (js = 0; js < m; js++)q[is][js]=swap[is][js];for (is = 0; is < m; is++)for (js = 0; js < m; js++){sc=0;for (ks = 0; ks < m; ks++)sc=sc+p[is][ks]*r[ks][js];swap[is][js]=sc;}for (is = 0; is < m; is++)for (js = 0; js < m; js++)r[is][js]=swap[is][js];}printf("\n Householder约减矩阵Q的结果如下:\n");for (j = 0; j < m; j++){for (i = 0; i < m; i++)printf("%0.5f ", q[i][j]);printf("\n");}printf("\n Householder矩阵R的结果如下:\n");for (i = 0; i < m; i++){for (j = 0; j < n; j++)printf("%0.5f ", r[i][j]);printf("\n");}}void schmidt(){int i, j, k, l, b, z;float em,nj, r[HS][LS],q[HS][LS];for (i = 0; i < m; i++)for (j = 0; j < n; j++)q[i][j]=a[i][j];for(k=0;k<n;k++){for(l=0;l<k;l++){nj=0;for(i=0;i<m;i++)nj=nj+q[i][l]*a[i][k];r[l][k]=nj;for(i=0;i<m;i++)q[i][k]=q[i][k]-r[l][k]*q[i][l];}em=0;for(i=0;i<m;i++)em=em+q[i][l]*q[i][l];em=sqrt(em);r[l][k]=em;for(i=0;i<m;i++)q[i][k]=q[i][k]/r[l][k];}for(i=0;i<m;i++)for(j=n;j<m;j++)q[i][j]=bc[i][j];printf("\n Schmidt正交化矩阵Q的结果如下:\n");for (i = 0; i < m; i++){for (j = 0; j < m; j++)printf("%0.5f ", q[i][j]);printf("\n");}printf("\n Schmidt正交化矩阵R的结果如下:\n");for (i = 0; i < m; i++){for (j = 0; j < n; j++){if(i>j) r[i][j]=0;printf("%0.5f ", r[i][j]);}printf("\n");}}void lufj(){int i, j, k,mm, z, o, p[HS][LS], w[HS];float x, y,alu[HS][LS], s[HS],l[HS][LS],u[HS][LS]; for (i = 0; i < n; i++)for (j = 0; j < n; j++){alu[i][j]=a[i][j];if (i == j)p[i][j] = 1;elsep[i][j] = 0;}for (j = 0; j < n; j++){i = j; x = alu[i][j]; k = i;for (; i < n - 1; i++){mm = i + 1;if (abs(x) < abs(alu[mm][j])){k = mm;x = alu[mm][j];}}if (k != j)for (o = 0,i = j; o < n; o++){s[o] = alu[i][o];alu[i][o] = alu[k][o];alu[k][o] = s[o];w[o] = p[i][o];p[i][o] = p[k][o];p[k][o] = w[o];}for (z = j + 1; z < n; z++){y = alu[z][j] / alu[j][j];alu[z][j] = y;for (o = j+1; o < n; o++)alu[z][o] = alu[z][o] - y*alu[j][o];}}for (i = 0; i < n; i++)for (j = 0; j < n; j++)if(i>j){l[i][j]=alu[i][j];u[i][j]=0;}else if(i<j){l[i][j]=0;u[i][j]=alu[i][j];}else{l[i][j]=1;u[i][j]=alu[i][j];}printf(" LU分解矩阵L的结果如下:\n");for (i = 0; i < n; i++){for (j = 0; j < n; j++)printf("%0.5f ", l[i][j]);printf("\n");}printf("\n LU分解矩阵U的结果如下:\n");for (i = 0; i < n; i++){for (j = 0; j < n; j++)printf("%0.5f ", u[i][j]);printf("\n");}printf("\n LU分解行交换矩阵P的结果如下:\n");for (i = 0; i < n; i++){for (j = 0; j < n; j++)printf("%d ", p[i][j]);printf("\n");}}int main(){int im,jm,b,z,zl;printf("请输入矩阵行数M(M需为大于1的整数):\n");scanf("%d",&m);printf("请输入矩阵列数N(N需为大于1的整数):\n");scanf("%d",&n);for (im = 0; im < m; im++)for (jm = 0; jm < n; jm++){b = im + 1;z = jm + 1;printf("请输入第%d行的第%d个数,以enter键结束输入:\n", b, z);scanf("%f", &a[im][jm]);}float fm,sc,cos,sin,jdz,r[HS][LS],q[HS][LS],swap[HS][LS],p[HS][LS];int ih,jh,i, j,kh,iw;for (i = 0; i < m; i++)for (j = 0; j < n; j++)r[i][j]=a[i][j];for (i = 0; i < m; i++)for (j = 0; j < m; j++){if(i==j)q[i][j]=1;elseq[i][j]=0;}for(j=0;j<n;j++)for (i = j+1; i < m; i++){for (ih = 0; ih < m; ih++)for (jh = 0; jh < m; jh++){if(ih==jh)p[ih][jh]=1;elsep[ih][jh]=0;}fm=sqrt(r[i][j]*r[i][j]+r[j][j]*r[j][j]);cos=r[j][j]/fm;sin=r[i][j]/fm;p[i][i]=p[j][j]=cos;p[i][j]=-sin;p[j][i]=sin;for (ih = 0; ih < m; ih++)for (jh = 0; jh < n; jh++)sc=0;for (kh = 0; kh < m; kh++)sc=sc+p[ih][kh]*r[kh][jh];swap[ih][jh]=sc;}for (ih = 0; ih < m; ih++)for (jh = 0; jh < n; jh++)r[ih][jh]=swap[ih][jh];for (ih = 0; ih < m; ih++)for (jh = 0; jh < m; jh++){sc=0;for (kh = 0; kh < m; kh++)sc=sc+p[ih][kh]*q[kh][jh];swap[ih][jh]=sc;}for (ih = 0; ih < m; ih++)for (jh = 0; jh < m; jh++)bc[jh][ih]=q[ih][jh]=swap[ih][jh];}if(r[n-1][n-1]<0)jdz=-r[n-1][n-1];elsejdz=r[n-1][n-1];if(m<n){printf("\n 该矩阵列向量线性相关,无法进行分解! \n");system("pause");}else if(jdz<0.0001){printf("\n 该矩阵列向量线性相关,无法进行分解! \n");system("pause");}else if(m==n){do{printf("\n");printf("该矩阵可进行四种分解,请输入选项前的数字选择!\n");printf("0:退出程序\n");printf("1:Gram-Schmidt正交化\n");printf("2:Householder分解\n");printf("3:Givens分解\n");printf("4:LU分解\n\n");scanf("%d", &zl);switch(zl){case 0:return 0; break;case 1:schmidt(); break;case 2:householder(); break;case 3:givens(); break;case 4:lufj(); break;}}while(zl!=0);}elsedo{printf("\n");printf("该矩阵可进行除LU分解外的三种分解,请输入选项前的数字选择!\n");printf("0:退出程序\n");printf("1:Gram-Schmidt正交化\n");printf("2:Householder分解\n");printf("3:Givens分解\n\n");scanf("%d", &zl);switch(zl){case 0:return 0; break;case 1:schmidt(); break;case 2:householder(); break;case 3:givens(); break;}}while(zl!=0);}。

矩阵论矩阵的分解 ppt课件

矩阵论矩阵的分解 ppt课件

结论:如果矩阵A能用两行互换以外的 初等行变换 化为阶梯形,则A有LU分解。
三角分解的存在性和惟一性
定理3.1 (P.62) :
• 矩阵的k 阶主子式:取矩阵的前k行、前k列得到 的行列式,k=1,2, … ,n。
• 定理: AFnn有惟一LDV分解的充要条件是A的顺 序主子式Ak非零,k =1,2,…,n-1。
LU分解:AFnn, 有下三角形矩阵L ,上 三角形矩阵U ,使得A=LU。
LDV分解:AFnn, L、V分别是主对角线 元素为1的下三角形和上三角形矩阵,D为 对角矩阵,使得A=LDV。
已知的方法:Gauss-消元法
例题1 (P.61eg1)设
2 2 3
A
4
7
7
求A的LU和LDV分解。 2 4 5
2 、Schur 分解
定理3.7(P.74 )对矩阵ACnn,存在酉矩
阵U和上三角矩阵T,使得 UHAU=T=
1
2
证明要点:
n
➢A=PJ AP–1 ,
➢P=UR
➢A= PJ AP–1 =U(RJR–1 )UH =UTUH。
二、正规矩阵(Normal Matrices)
1、 定义3.3(P.77 )A是正规矩阵 AHA=AAH。 常见的正规矩阵:
对角矩阵 对称和反对称矩阵:AT=A,AT=–A。 Hermite矩阵和反Hermite矩阵:AH=A,AH=–A 正交矩阵和酉矩阵:ATA=AAT=I,AHA=AAH=I。
例题1 (P.78,eg 10)设A为正规矩阵,B酉相似于A,
证明B也是正规矩阵。
正规是酉相似的不变性质
例题2、AFmn,矩阵AHA 和矩阵AAH是正规矩阵。
在内积空间中讨论问题,涉及:

41为Givens变换或Give...

41为Givens变换或Give...

• 如果 a1 = 0, 则令 q1 = 0; 否则令 q1 = a1 /∥a1 ∥2 ; ∑j −1 ∗ • 对于 j = 2, 3, . . . , n, 计算 q ˜j = aj − i=1 (qi aj )qi . 如果 q ˜j = 0, 则表明 aj 可以由 a1 , a2 , . . . , aj −1 线性 表出, 令 qj = 0. 否则令 qj = q ˜j /∥q ˜j ∥2 . 于是我们有 A = QR, 其中 Q = [q1 , q2 , . . . , qn ] 列正交 (但不是单位列正交), 其列向量要么是单位向量, 要么就是零向量. 这里的 R = [rij ]n×n 是上三角矩阵, 定义如下 q ∗ a , for i ≤ j i j rij = 0, for i > j 如果 Q 的某一列 qk = 0, 则 R 中对应的第 k 行就全为 0.
1: 2: 3: 4:
r11 = ∥a1 ∥2 q1 = a1 /r11 for j = 2 to n do qj = aj
· 3-8 ·
5: 6: 7: 8: 9: 10: 11:
for i = 1 to j − 1 do ∗ ∗ rij = qi a j % qi 表示共轭转置 qj = qj − rij qi end for rjj = ∥qj ∥2 qj = qj /rjj end for 如果 A 不是列满秩, 我们可以做类似的正交化过程:
i = 1, 2, . . . , n.
i = 1, 2, . . . , n.
有时也将 QR 分解定义为: 存在酉矩阵 Q ∈ Cn×n 使得 [ ] R11 A=Q , 0 . 其中 R11 为上三角矩阵.
· 3-11 · 由 QR 分解的存在性证明过程可知, 当 A 不是满秩矩阵时, 存在一个置换矩阵 P , 使得 AP 的前 l 列是线性无关的, 其中 l = rank(A). 因此我们可以对 AP 进行 QR 分解, 于是我们可以得到下面的结 论. 推论 3.4 设 A ∈ Cm×n (m ≥ n). 则存在一个置换矩阵 P , 使得 [ ] R11 R12 AP = Q , 0 0

§4 Givens—Householder方法

§4  Givens—Householder方法
中的第一行和第一列中后n-2个元素都消为零,显然 A1 为对称矩阵.
为了避免标号的复杂性,我们仍用 aij 表示 A1 的(i,j)位置元素.
第二步,用n-3个Givens旋转矩阵 R(3,4) R(3,5) R(3, n) 依次左乘 上 A1,并用它们的转置矩阵依次右乘 A1,使乘积矩阵
A2 R(3, n) R(3,4) A1R(3,4)T R(3, n)T
中第二行和第二列的后n-3个元素都消为零.易知, A2 的第一行和第一 列中后n-2个元素仍然保持为零.
假定已进行了j-1步上述直交相似变换,得到矩阵 A j 1. A j 1. 便具
有如下形式:
0 0 0 0 0 0 0 0 0 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 0 0 0 0 j
R(1,3) R(1,2) x [ y2 ,0,0, x4 ,, xn ]T ,
其中 y2 0 ;如此继续,最后可得
R(1, n) R(1, n 1) R(1,3) R(1,2) x [ yn1 ,0,,0]T , 其中 yn 1 0 由于R(1,n)R(1,n-1)…R(1,2)是直交矩阵,且在直交变换
分别用 R( j 1, i), R( j 1, i)T 左乘和右乘B将 aij 和 a ji 消为零.变换
结果,B中第j+1列和第i列,第j+l行和第i行的后n-j-1个元素发生变化 (其余元素都保持不变),其计算公式如下:
b ar , j 1 cos ari sin , ari ar , j 1 sin ari cos ,r j , j 1, , n; ar , j 1 b b a j 1,r cos air sin , air a j 1,r sin air cos r j , j 1, , n. a j 1,r b

QR分解

QR分解



H 由于 ( x au ) ( x au ) x x ax u a u x a u u H H H H
2
x x ax u
H H


H
au x x
H
2 2
2( x H x a u H x) 2( x au) H x
( x au) H x ( x au) au 所以 H ( ) x x 2 H ( x au) ( x au)


Householder变换
H ( ) I 2 T
O
+

H ( )
即:该变换将向量 变成了以 的平面的对称向量 。


为法向量
定义 设 是一个单位向量,令 Cn
H ( ) I 2 H
则称H是一个Householder矩阵或Householder变换。 性质5.1.1 设H是一个Householder矩阵,则 (1)H是Hermite矩阵, H H ; H (2)H是酉矩阵, HHH; I (3)H是对合矩阵, H 2 I; (4)H是自逆矩阵 H 1 H (5)diag(I,H ) 也是一个Householder矩阵; (6)det H = -1。

5i x ae1 1 i x ae1 2 30 2
10 5 10i 1 H H I 2 5 14 2i 15 10 i 2 i 11
说明 也可取 a 3 或 a 3i
1 x3 y1 y 2 y3 2e1 e2 2e3 5
从而
A QR
0 0 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019/12/23
更一般地
2019/12/23
Givens矩阵 有什么性质呢?
2019/12/23
2019/12/23
2019/12/23
2019/12/23
举一个应用Givens变换的例子
2019/12/23
2019/12/23
2、Householder矩阵和Householder变换
? 向量。这两种变换之间有何关系呢? ?
2019/12/23
2019/12/23
2019/12/23
2019/12/23
! thank you !!
2019/12/23
矩阵QR分解之—Givens变换和 householder变换
2019/12/23
电子科学系 谭春华 2012年12月
1、Givens矩阵和Givens变换 2、Householder矩阵和Householder变换
1、Givens矩阵和Givens变换
从上图中我们可以看出旋转变换并不改变向量的模,所以它是正交 变换,从而T是正交矩阵,且
2019/12/23
如果不是关于水平轴的镜像变换又会是怎样?
2019/12/23
2019/12/23
2019/12/23
2019/12/23
举一个应用Householder变换的例子
2019/12/23
பைடு நூலகம்
2019/12/23
正所谓条条大路通罗马,通过例4.4和例4.5我们可以知道可以用 Givens变换和Householder变换化已知列向量为与某单位向量同向的
相关文档
最新文档