Starting diary file diary-06-May-2013.txt A = grid5(10); size(A) ans = 100 100 spy(A),shg A n = length(A) n = 100 b = rand(n,1); x = A\b; norm(b - A*x) ans = 1.4904e-14 norm(b - A*x) / norm(b) ans = 2.6084e-15 what M-files in the current directory /Users/gilbert/Documents/CS219spring2013/Matlab clustereg gploth makerand matstats misseq rmat eigsvdgui jacobi makerand2 misluby randspd startup MAT-files in the current directory /Users/gilbert/Documents/CS219spring2013/Matlab CGmats heatproblem ndmats sinc12 California illc1850 nonsymmats well1850 clusters meshes oldndmats help pcg PCG Preconditioned Conjugate Gradients Method. ... [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,n); iter iter = 32 relres relres = 7.5097e-09 norm(b - A*x) / norm(b) ans = 7.5097e-09 flag flag = 0 size(resvec) ans = 33 1 iter semilogy(resvec / resvec(1)),shg resvec(1) ans = 5.7139 norm(b) ans = 5.7139 A = grid5(100); n = length(A) n = 10000 spy(A),shg b = rand(n,1); norm(b) ans = 57.7711 [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,n); iter iter = 300 flag flag = 0 relres relres = 9.7066e-09 semilogy(resvec / resvec(1)),shg hold on A = grid5(10); n = length(A) n = 100 b = rand(n,1); [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,n); iter iter = 32 semilogy(resvec / resvec(1),'r'),shg A = grid5(20); n = length(A) n = 400 b = rand(n,1); [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,n); semilogy(resvec / resvec(1),'k'),shg condest(A) ans = 258.4520 cond(full(A)) ans = 178.0643 condest(grid5(10)) ans = 69.8634 condest(grid5(100)) ans = 6.0107e+03 load CGmats who Your variables are: Airfoil BCSSTK08 Exy Gxy Smallmesh Tapir Axy Eppstein Grid M Sxy Txy whos Name Size Bytes Class Attributes Airfoil 4253x4253 563376 double sparse Axy 4253x2 68048 double BCSSTK08 1074x1074 215976 double sparse Eppstein 547x547 63248 double sparse Exy 547x2 8752 double Grid 225x225 18848 double sparse Gxy 225x2 3600 double M 1x1 216670 struct Smallmesh 136x136 14600 double sparse Sxy 136x2 2176 double Tapir 1024x1024 115656 double sparse Txy 1024x2 16384 double A = BCSSTK08; n = length(A) n = 1074 b = rand(n,1); clf spy(A),shg nnz(A-A') ans = 0 R = chol(A); cond(full(A)) ans = 2.5988e+07 e = eig(full(A)); min(e) ans = 2.9464e+03 max(e) ans = 7.6570e+10 n = length(A) n = 1074 b = rand(n,1); [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,n); semilogy(resvec / resvec(1)),shg iter iter = 1040 n n = 1074 flag flag = 1 help pcg PCG Preconditioned Conjugate Gradients Method. ... [X,FLAG] = PCG(A,B,...) also returns a convergence FLAG: 0 PCG converged to the desired tolerance TOL within MAXIT iterations 1 PCG iterated MAXIT times but did not converge. 2 preconditioner M was ill-conditioned. 3 PCG stagnated (two consecutive iterates were the same). 4 one of the scalar quantities calculated during PCG became too small or too large to continue computing. [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(resvec / resvec(1)),shg a = cond(full(A)) a = 2.5988e+07 n n = 1074 s = [a ones(1,n-1)]; ones(1,4) ans = 1 1 1 1 size(s) ans = 1 1074 s(1) ans = 2.5988e+07 s(2) ans = 1 A = randspd(s); size(A) ans = 1074 1074 cond(A) ans = 2.5988e+07 a = 2.5988e+07 [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); relres relres = 7.6489e-09 iter iter = 2 help linspace LINSPACE Linearly spaced vector. ... s = linspace(1,a,n); size(s) ans = 1 1074 min(s) ans = 1 max(s) ans = 2.5988e+07 A = randspd(s); e = eig(A); plot(sort(e)) [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); iter iter = 249 semilogy(resvec / resvec(1)),shg A = BCSSTK08; A = full(A); plot(sort(eig(A)),'.'),shg semilogy(sort(eig(A)),'.'),shg A = sparse(A); [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(sort(eig(A)),'.'),shg semilogy(resvec / resvec(1)),shg edit randspd s = (1:100)/100; size(s) ans = 1 100 A = randspd(s); cond(A) ans = 100.0000 n = length(A) n = 100 b = rand(n,1); [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(resvec / resvec(1)),shg hold on cond(A) ans = 100.0000 min(s) ans = 0.0100 max(s) ans = 1 s = (s+1)/2; min(s) ans = 0.5050 max(s) ans = 1 hist(s',100) A = randspd(s); cond(A) ans = 1.9802 [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(resvec / resvec(1),'r'),shg s = [.1 .5+ .01*randn(1,98) 1]; A = randspd(s); cond(A) ans = 10.0000 [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(resvec / resvec(1),'r.'),shg hist(s',100) min(s) ans = 0.1000 max(s) ans = 1 s = linspace(.1,1,100); A = randspd(s); hist(s',100) [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(resvec / resvec(1)),shg hold on [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10* s = [.1 .5+ .01*randn(1,98) 1]; A = randspd(s); [x, flag, relres, iter, resvec] = pcg(A,b,1e-8,10*n); semilogy(resvec / resvec(1),'r'),shg diary off