home *** CD-ROM | disk | FTP | other *** search
- function S = spaugment(A,c)
- %SPAUGMENT Express a least squares problem as a larger linear system.
- % S = SPAUGMENT(A,c) creates the sparse, square, symmetric indefinite
- % matrix S = [c*I A; A' 0]. This matrix is related to the least
- % squares problem
- % min norm(b - A*x)
- % by
- % r = b - A*x
- % S * [r/c; x] = [b; 0].
- %
- % The optimum value of the residual scaling factor c, involves
- % min(svd(A)) and norm(r), which are usually too expensive to compute.
- % S = SPAUGMENT(A), without a specified value of c, uses the
- % default set by SPPARMS, which is usually max(max(abs(A)))/1000.
- %
- % The augmented matrix is used automatically by the sparse
- % linear equation solvers, \ and /, for nonsquare problems.
- %
- % See also SPPARMS.
-
- % C. Moler, 4-30-91, 6-1-92.
- % Copyright (c) 1984-93 by The MathWorks, Inc.
-
- if nargin < 2
- c = spparms('aug_rel')*max(max(abs(A))) + spparms('aug_abs');
- end
- [m,n] = size(A);
- S = [sparse(1:m,1:m,c(1)) A; A' sparse(n,n)];
-