% -*- texinfo -*- % @deftypefn {Function File} {@var{s} =} svds (@var{a}) % @deftypefnx {Function File} {@var{s} =} svds (@var{a}, @var{k}) % @deftypefnx {Function File} {@var{s} =} svds (@var{a}, @var{k}, @var{sigma}) % @deftypefnx {Function File} {@var{s} =} svds (@var{a}, @var{k}, @var{sigma}, @var{opts}) % @deftypefnx {Function File} {[@var{u}, @var{s}, @var{v}, @var{flag}] =} svds (@dots{}) % % Find a few singular values of the matrix @var{a}. The singular values % are calculated using % % @example % @group % [@var{m}, @var{n}] = size(@var{a}) % @var{s} = eigs([sparse(@var{m}, @var{m}), @var{a}; @dots{} % @var{a}', sparse(@var{n}, @var{n})]) % @end group % @end example % % The eigenvalues returned by @code{eigs} correspond to the singular % values of @var{a}. The number of singular values to calculate is given % by @var{k}, whose default value is 6. % % The argument @var{sigma} can be used to specify which singular values % to find. @var{sigma} can be either the string 'L', the default, in % which case the largest singular values of @var{a} are found. Otherwise % @var{sigma} should be a real scalar, in which case the singular values % closest to @var{sigma} are found. Note that for relatively small values % of @var{sigma}, there is the chance that the requested number of singular % values are not returned. In that case @var{sigma} should be increased. % % If @var{opts} is given, then it is a structure that defines options % that @code{svds} will pass to @var{eigs}. The possible fields of this % structure are therefore determined by @code{eigs}. By default three % fields of this structure are set by @code{svds}. % % @table @code % @item tol % The required convergence tolerance for the singular values. @code{eigs} % is passed @var{tol} divided by @code{sqrt(2)}. The default value is % 1e-10. % % @item maxit % The maximum number of iterations. The defaut is 300. % % @item disp % The level of diagnostic printout. If @code{disp} is 0 then there is no % printout. The default value is 0. % @end table % % If more than one output argument is given, then @code{svds} also % calculates the left and right singular vectors of @var{a}. @var{flag} % is used to signal the convergence of @code{svds}. If @code{svds} % converges to the desired tolerance, then @var{flag} given by % % @example % @group % norm (@var{a} * @var{v} - @var{u} * @var{s}, 1) <= @dots{} % @var{tol} * norm (@var{a}, 1) % @end group % @end example % % will be zero. % @end deftypefn % @seealso{eigs}