1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
function test20
%TEST20 test cholupdown
%
% Example:
% test20
% See also: testall
% Copyright 2006-2007, Timothy A. Davis.
% http://www.cise.ufl.edu/research/sparse
clear functions
rand ('state', 0) ;
for trials = 1:10
n = fix (100 * rand (1)) ;
A = rand (n) ;
A1 = A*A' + n*eye (n) ;
try
L1 = chol (A1)' ;
catch
continue ;
end
err1 = norm (L1*L1'-A1) ;
w = rand (n,1) ;
A2 = A1 + w*w' ;
L2 = chol (A2)' ;
err2 = norm (L2*L2'-A2) ;
% try an update
L2b = cholupdown (L1, +1, w) ;
err2b = norm (L2b*L2b'-A2) ;
% try a downdate
L1b = cholupdown (L2, -1, w) ; %#ok
err1b = norm (L2b*L2b'-A2) ;
fprintf ('%3d: %6.2e %6.2e : %6.2e %6.2e\n', n, err1, err2, err2b, err1b) ;
% pause
end
|