A = [ 2 1 1 0 ; 1 2 0 1 ; 1 0 2 -1; 0 1 -1 1.1] A = 2.0000 1.0000 1.0000 0 1.0000 2.0000 0 1.0000 1.0000 0 2.0000 -1.0000 0 1.0000 -1.0000 1.1000 A - A' ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 eig(A) ans = 0.0659 0.5858 3.0341 3.4142 A A = 2.0000 1.0000 1.0000 0 1.0000 2.0000 0 1.0000 1.0000 0 2.0000 -1.0000 0 1.0000 -1.0000 1.1000 chol(A) ans = 1.4142 0.7071 0.7071 0 0 1.2247 -0.4082 0.8165 0 0 1.1547 -0.5774 0 0 0 0.3162 cholinc(sparse(A),'0') ??? Error using ==> cholinc Matrix lost positive definiteness during incomplete Cholesky factorization. A A = 2.0000 1.0000 1.0000 0 1.0000 2.0000 0 1.0000 1.0000 0 2.0000 -1.0000 0 1.0000 -1.0000 1.1000 B = A(2:4,2:4) - A(2:4,1) * A(1,2:4) / A(1,1) B = 1.5000 -0.5000 1.0000 -0.5000 1.5000 -1.0000 1.0000 -1.0000 1.1000 eig(B) ans = 0.0659 1.0000 3.0341 B(1,2)=0 ; B(2,1)=0 B = 1.5000 0 1.0000 0 1.5000 -1.0000 1.0000 -1.0000 1.1000 eig(B) ans = -0.1283 1.5000 2.7283 A = grid5(3) A = (1,1) 4 (2,1) -1 (4,1) -1 (1,2) -1 (2,2) 4 (3,2) -1 (5,2) -1 (2,3) -1 (3,3) 4 (6,3) -1 (1,4) -1 (4,4) 4 (5,4) -1 (7,4) -1 (2,5) -1 (4,5) -1 (5,5) 4 (6,5) -1 (8,5) -1 (3,6) -1 (5,6) -1 (6,6) 4 (9,6) -1 (4,7) -1 (7,7) 4 (8,7) -1 (5,8) -1 (7,8) -1 (8,8) 4 (9,8) -1 (6,9) -1 (8,9) -1 (9,9) 4 full(A) ans = 4 -1 0 -1 0 0 0 0 0 -1 4 -1 0 -1 0 0 0 0 0 -1 4 0 0 -1 0 0 0 -1 0 0 4 -1 0 -1 0 0 0 -1 0 -1 4 -1 0 -1 0 0 0 -1 0 -1 4 0 0 -1 0 0 0 -1 0 0 4 -1 0 0 0 0 0 -1 0 -1 4 -1 0 0 0 0 0 -1 0 -1 4 inv(full(A)) ans = Columns 1 through 8 0.2991 0.0982 0.0313 0.0982 0.0625 0.0268 0.0313 0.0268 0.0982 0.3304 0.0982 0.0625 0.1250 0.0625 0.0268 0.0446 0.0312 0.0982 0.2991 0.0268 0.0625 0.0982 0.0134 0.0268 0.0982 0.0625 0.0268 0.3304 0.1250 0.0446 0.0982 0.0625 0.0625 0.1250 0.0625 0.1250 0.3750 0.1250 0.0625 0.1250 0.0268 0.0625 0.0982 0.0446 0.1250 0.3304 0.0268 0.0625 0.0313 0.0268 0.0134 0.0982 0.0625 0.0268 0.2991 0.0982 0.0268 0.0446 0.0268 0.0625 0.1250 0.0625 0.0982 0.3304 0.0134 0.0268 0.0313 0.0268 0.0625 0.0982 0.0313 0.0982 Column 9 0.0134 0.0268 0.0312 0.0268 0.0625 0.0982 0.0313 0.0982 0.2991 B = [ 1 -10 ; -10 1] B = 1 -10 -10 1 eig(B) ans = -9.0000 11.0000 diary off clc load cgmats A = BCSSTK08; n = length(A) n = 1074 spy(A) R = chol(A); spy(R) nnz(R) ans = 234160 nnz(A) ans = 12960 Pamd = symamd(A); size(Pamd) ans = 1 1074 Pamd(1:10) ans = Columns 1 through 6 836 774 804 813 829 775 Columns 7 through 10 805 814 993 830 spy(A(Pamd,Pamd)) spy(chol(A(Pamd,Pamd)) ??? spy(chol(A(Pamd,Pamd)) | Error: ")" expected, "end of line" found. spy(chol(A(Pamd,Pamd))) nnz(chol(A(Pamd,Pamd))) ans = 31021 spy(A) Prcm = symrcm(A); spy(A(Prcm,Prcm)) spy(chol(A(Prcm,Prcm))) nnz(chol(A(Prcm,Prcm))) ans = 222486 [x, flag, relres, iter, resvec] = pcg (A, b, 1e-12, 200); ??? Undefined function or variable 'b'. b = rand(n,1); [x, flag, relres, iter, resvec] = pcg (A, b, 1e-12, 200); semilogy(resvec/resvec(1),'c') R = cholinc(A,'0');nnz(R) ans = 7017 nnz(triu(A)) ans = 7017 [x, flag, relres, iter, resvec] = pcg (A, b, 1e-12, 200,R',R); iter iter = 43 hold on semilogy(resvec/resvec(1)) R = cholinc(A(Pamd,Pamd),'0');nnz(R) ans = 7017 [x, flag, relres, iter, resvec] = pcg (A, b, 1e-12, 200,R',R); semilogy(resvec/resvec(1),'w') [x, flag, relres, iter, resvec] = pcg (A(Pamd,Pamd), b, 1e-12, 200,R',R); semilogy(resvec/resvec(1),'w') R = cholinc(A,.001);nnz(R) ans = 20218 [x, flag, relres, iter, resvec] = pcg (A, b, 1e-12, 200,R',R); semilogy(resvec/resvec(1),'c') R = cholinc(A,.001);nnz(R) ans = 20218 R = cholinc(A(Pamd,Pamd),.001);nnz(R) ans = 7350 R = cholinc(A(Pamd,Pamd),.0001);nnz(R) ans = 11481 R = cholinc(A(Pamd,Pamd),.00001);nnz(R) ans = 16371 [x, flag, relres, iter, resvec] = pcg (A(Pamd,Pamd), b, 1e-12, 200,R',R); semilogy(resvec/resvec(1),'g') quit