如果我们考虑一个大小为pxp的矩阵R.如果我们想在A等于(I + Givens旋转)的情况下乘以A'RA。这里我是一个单位矩阵,'表示转置运算符。使用Givens旋转
我们知道,一个Givens旋转是写为稀疏矩阵:
要执行MATLAB中的乘法A'RA,我们可以做到这一点快速实现:
%Fast implementation
ci = R(:,ik)*(cos(theta))+R(:,jk)*(sin(theta)); % R*A
cj = R(:,jk)*(cos(theta)) - R(:,ik)*(sin(theta));
R(:,ik) = ci;
R(:,jk) = cj;
ri = R(ik,:)*(cos(theta))+R(jk,:)*(sin(theta)); % A'*R*A
rj = R(jk,:)*(cos(theta)) - R(ik,:)*(sin(theta));
R(ik,:) = ri;
R(jk,:) = rj;
但我不明白他们是如何编写这个Matlab代码的。换句话说,我不了解这个Matlab代码如何应用乘法A'RA。请问有人可以帮我理解这段代码吗?
非常感谢你的回答:) – Christina
@Christina随时:) –