QR分解
若
A 的列向量线性无关,
正交化:
标准化:
把正交化方法和标准化方法结合在一起:
…..
得到
当 A 为普通矩阵时,
当
QR方法是求一般矩阵全部特征值的最有效并广泛应用的方法之一,在应用中,先把一般的矩阵经过正交相似变换化成上Hessenberg矩阵(拟上三角矩阵),再应用QR方法求其特征值和特征向量。
Householder矩阵
Householder矩阵为反射变换或镜像变换的变换矩阵,将向量x映射为关于“与单位向量u正交的n-1维子空间”对称的向量y的镜像变换定义如下:
设单位向量
性质:对称矩阵,正交矩阵,对合矩阵,
Hessenberg矩阵
若是矩阵
对任意矩阵A ,总存在正交阵Q 使得 Q^{-1}A Q 为上Hessenberg 矩阵。Householder矩阵即为这样的一个正交矩阵。
Givens矩阵
一般的,在n维空间
其中c , s 满足
任何n阶实非奇异矩阵
QR分解求特征值和特征向量的工程实现方法:
1)通过正交相似变换将矩阵A 化为Hessenberg矩阵 B ,其变换矩阵可用Householder矩阵H ,H矩阵均为对称正交矩阵。
保持A 序列变换为相似变换,所以右乘
记
2)将上Hessenberg 矩阵B 进行QR 分解,运用 Givens 旋转变换方法将矩阵变换为上三角矩阵 R ,Givens矩阵
让上式右端逆序相乘,矩阵相乘令:B_2 = R_1 Q_1 ,
又对B_2 ,进行QR分解,得: B_3 = Q_2 R_2 ,
反复进行这种迭代运算,得到一个矩阵序列{ B_k },
由QR分解 B_k = Q_k R_k , 得到 R_k = Q_k^{T} B_k
又由矩阵相乘 B_{k+1} = R_k Q_k , 得到 B_{k+1} = Q_k^{T} B_k Q_k k = 1,2, …
因而
matlab实现QR分解代码如下:
1.构造Householder正交相似变换矩阵
function H = househ(x)
%功能:对于向量x,构造Householder变换矩阵H,
% 使得Hx = (*, 0, 0,......, 0)',其中|*|=norm(x, 2)
%输入:列向量x
%输出:Householder变换矩阵H
n = length(x); % x为矩阵A的对角线下部的列向量 x = A(k+1: n, k)
I = eye(n);
sn = sign(x(1)); %判断x向量第一个元素的符号
if(sn == 0)
sn=1;
end
z = x(2:n);
if(norm(z,inf) == 0)
H = I;
return;
end
sigma = -sn*norm(x); % sigma = -sign(x1) ||x||inf
u = x;
u(1) = u(1)-sigma; %u1 = u1 -sigma* 1; u向量中第一个元素值
lo = sigma*(sigma-x(1)); %lo 为转换比例因子,防止计算过程中的溢出和误差累积
H = I-u*u'/lo;
u(1) 为 x(1) 与 norm(x) 即向量 x 的范数之间的差值,最终得到Householder变换矩阵;
2.得到上Hessenberg矩阵
function A = hessen(A)
%功能:用Householder变换化矩阵A为上Hessenberg型
%输入:n阶实方阵A
%输出:A的Hessenberg型
[n, n] =size(A);
for k =1: n-2
x = A(k+1: n, k); % x 取为矩阵A 每列对角线下的元素组成的向量
H =househ(x); % 得到其Householder变换矩阵,
A(k+1:n, k:n) = H*A(k+1:n, k:n);
A(1:n, k+1:n) = A(1:n, k+1:n)*H; % A^(n-1) = HAH,经过 n-2次的变换,矩阵A变为Hessen矩阵
end
3.基于Givens旋转变换的QR分解
function A = qrtran(m, A)
%功能:对A的左上角的m阶对角块做QR变换;
% 先用Givens变换作QR分解 A=QR,再做相似变换A:= Q'AQ = RQ
%输入:n阶Hessenberg型矩阵A,其中A(m+1,m) = 0, m>2
%输出:变换后的Hessenberg型矩阵A
Q = eye(m);
for i =1:m-1
xi = A(i, i);
xk = A(i+1, i);
if(xk ~=0)
d = sqrt(xi^2 +xk^2);
c = xi/d;
s = xk/d;
J = [c s; -s c];
A(i:i+1, i:m) = J*A(i:i+1, i:m);
% J为每次的2阶Givens矩阵,J*A的两行矩阵,得到上三角矩阵R的两行
Q(1:m, i:i+1) = Q(1:m, i:i+1)*J';
%将所有的Givens矩阵连乘起来,得到正交单位矩阵Q
end
end
A(1:m, 1:m) = A(1:m, 1:m)*Q;
% A(n+1) = R(n)*Q(n),矩阵相乘得到下一个迭代矩阵A
正定矩阵
广义定义:设M是n阶方阵,如果对任何非零向量z,都有
狭义定义:一个n阶的实对称矩阵M是正定的的条件是当且仅当对于所有的非零实系数向量 z ,都有
等价命题 :
对于n阶实对称矩阵A,下列条件是等价的:
(1)A是正定矩阵;
(2)A的一切顺序主子式均为正;
(3)A的一切主子式均为正;
(4)A的特征值均为正;
(5)存在实可逆矩阵C,使
(6)存在秩为n的m×n实矩阵B,使
(7)存在主对角线元素全为正的实三角矩阵R,使