Home > freetb4matlab > sparse > spaugment.m

spaugment

PURPOSE ^

% Creates the augmented matrix of @var{a}. This is given by

SYNOPSIS ^

function s = spaugment (a, c)

DESCRIPTION ^

% -*- texinfo -*-
% @deftypefn {Function File} {@var{s} =} spaugment (@var{a}, @var{c})
% Creates the augmented matrix of @var{a}.  This is given by
%
% @example
% @group
% [@var{c} * eye(@var{m}, @var{m}),@var{a}; @var{a}', zeros(@var{n},
% @var{n})]
% @end group
% @end example
%
% @noindent
% This is related to the least squares solution of 
% @code{@var{a} \\ @var{b}}, by
% 
% @example
% @group
% @var{s} * [ @var{r} / @var{c}; x] = [@var{b}, zeros(@var{n},
% columns(@var{b})]
% @end group
% @end example
%
% @noindent
% where @var{r} is the residual error
%
% @example
% @var{r} = @var{b} - @var{a} * @var{x}
% @end example
%
% As the matrix @var{s} is symmetric indefinite it can be factorized
% with @code{lu}, and the minimum norm solution can therefore be found
% without the need for a @code{qr} factorization.  As the residual
% error will be @code{zeros (@var{m}, @var{m})} for under determined
% problems, and example can be 
%
% @example
% @group
% m = 11; n = 10; mn = max(m ,n);
% a = spdiags ([ones(mn,1), 10*ones(mn,1), -ones(mn,1)],
%              [-1, 0, 1], m, n);
% x0 = a \ ones (m,1);
% s = spaugment (a);
% [L, U, P, Q] = lu (s);
% x1 = Q * (U \ (L \ (P  * [ones(m,1); zeros(n,1)])));
% x1 = x1(end - n + 1 : end);
% @end group
% @end example
%
% To find the solution of an overdetermined problem needs an estimate
% of the residual error @var{r} and so it is more complex to formulate
% a minimum norm solution using the @code{spaugment} function.
%
% In general the left division operator is more stable and faster than
% using the @code{spaugment} function.
% @end deftypefn

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:
Generated on Sat 16-May-2009 00:04:49 by m2html © 2003