⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chenmh_bi.m

📁 Frequently used algorithms for numerical analysis and signal processing
💻 M
字号:
function [Qb,Qa,Ra,Rb] = Chenmh_Bi(X,r,itr_times);
%  Chen minhua, 2006.02.09.
%  Classical Bi-Iteration.
%  "Bi-Iteration SVD Subspace Tracking algorithms," 
%  IEEE Trans. Signal Processing.

%% Row of the input matrix is larger than the column.
[m,n] = size(X);
Qa = eye(n); Qa = Qa(:,1:r);
for i = 1:itr_times
    B = X*Qa;
    [Qb,Rb] = qr(B,0);
    A = X'*Qb;
    [Qa,Ra] = qr(A,0);
end

% %% Below is additional code.
% 
% %%  Chen minhua, 2006.02.09.
% %%  Bi-Iteration techniques testing platform.
% X = randn(6,4);
% r = 2; itr_times = 120;
% [Qb,Qa,Ra,Rb] = Chenmh_BI(X,r,itr_times);
% [U,S,V] = svd(X,'econ');
% U
% Qb
% 
% 
% %% Below tracks the performance of the algorithm.
% [m,n] = size(X);
% Qa = eye(n); Qa = Qa(:,1:r);
% [U,S,V] = svd(X);
% err = zeros(1,itr_times);
% for i = 1:itr_times
%     B = X*Qa;
%     [Qb,Rb] = qr(B,0);
%     A = X'*Qb;
%     [Qa,Ra] = qr(A,0);
%     Qb_signed = Qb*diag(sign(U(1,1:r))./sign(Qb(1,:)));
%     err(i) = norm(Qb_signed-U(:,1:r),'fro');
% end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -