QR分解,Gram-Schmidt正交

QR分解是把一个矩阵拆成正交矩阵和上三角矩阵的积,即 A = Q R A=QR A=QR
Gram-Schmidt的方法是寻找投影然后单位化

Gram-Schmidt是先定方向 d i d_i di再单位化得到 q i q_i qi
第一个方向选A的第一个列向量就可以
第二方向把A的第二个列向量减去它在 q 1 q_1 q1方向上的分量就可以得到和 q 1 q_1 q1垂直的方向,后面的同理

方向单位化
d 1 = a 1 d_1=a1 d1=a1 q 1 = d 1 ∣ ∣ d 1 ∣ ∣ q_1=\frac{d_1}{||d_1||} q1=∣∣d1∣∣d1
d 2 = a 2 − ( a 2 T q 1 ) q 1 d_2=a_2-(a_2^Tq_1)q_1 d2=a2(a2Tq1)q1 q 2 = d 2 ∣ ∣ d 2 ∣ ∣ q_2=\frac{d_2}{||d_2||} q2=∣∣d2∣∣d2
d 3 = a 3 − ( a 3 T q 1 ) q 1 − ( a 3 T q 2 ) q 2 d_3=a_3-(a_3^Tq_1)q_1-(a_3^Tq_2)q_2 d3=a3(a3Tq1)q1(a3Tq2)q2 q 3 = d 3 ∣ ∣ d 3 ∣ ∣ q_3=\frac{d_3}{||d_3||} q3=∣∣d3∣∣d3

通过这样转化得到的正交基对于A有特殊的意义,因为 a 1 a_1 a1只需要第一个基向量线性组合就可以得出, a 2 a_2 a2只需要前两个基向量组合.所以最后整体A矩阵在基向量上的系数矩阵就是一个上三角矩阵

这样就可以得到 A = Q R A=QR A=QR

需要注意的是如果有一个列向量完全等于一个前面的正交基或者是非常接近,会导致在减去那个方向分量时把整个向量都减掉,最后得到一个零向量或者是在数值上逼近零的向量,这会导致后面单位化出现除零的bug

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值