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

📄 peigs.m

📁 一个很有用的EM算法程序包
💻 M
字号:
function [V, d, r] = peigs(A, rmax)%PEIGS   Finds positive eigenvalues and corresponding eigenvectors. %  %    [V, d, r] = PEIGS(A, rmax) determines the positive eigenvalues d%    and corresponding eigenvectors V of a matrix A. The input%    parameter rmax is an upper bound on the number of positive%    eigenvalues of A, and the output r is an estimate of the actual%    number of positive eigenvalues of A. The eigenvalues are returned%    as the vector d(1:r). The eigenvectors are returned as the%    columns of the matrix V(:, 1:r).%%    PEIGS calls the function EIGS to compute the first rmax%    eigenpairs of A by Arnoldi iterations. Eigenpairs corresponding%    eigenvalues that are nearly zero or less than zero are%    subsequently discarded.%%    PEIGS is only efficient if A is strongly rank-deficient with%    only a small number of positive eigenvalues, so that rmax <<%    min(size(A)). If A has full rank, EIG should be used in place of%    PEIGS.%%    See also: EIGS.  error(nargchk(2, 2, nargin))                    % check number of input arguments   [m, n]  = size(A);   if rmax > min(m,n)    rmax  = min(m,n);                             % rank cannot exceed size of A   end    % get first rmax eigenvectors of A  warning off  eigsopt.disp = 0;                               % do not display eigenvalues  [V, d]       = eigs(A, rmax, 'lm', eigsopt);  warning on    % output of eigs differs in different Matlab versions  if prod(size(d)) > rmax    d          = diag(d);                         % ensure d is vector  end  % ensure that eigenvalues are monotonically decreasing  [d, I]       = sort(d, 'descend');  V            = V(:, I);    % estimate number of positive eigenvalues of A  d_min        = max(d) * max(m,n) * eps;   r            = sum(d > d_min);				   % discard eigenpairs with eigenvalues that are close to or less than zero  d            = d(1:r);  V            = V(:, 1:r);  d            = d(:);				  % ensure d is column vector

⌨️ 快捷键说明

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