function A = TheLaplacian(m,n)
% A = mxm block tridiagonal matrix with nxn blocks.
% The (k,k) block is symmetric tridiagonal with 4's on the diagonal and
% -1's on the subdiagonal and superdiagonal.
% The (k,k+1) and (k+1,k) blocks = -eye(n,n).
Tn = spdiags([-ones(n,1) 2*ones(n,1) -ones(n,1)],-1:1,n,n);
Tm = spdiags([-ones(m,1) 2*ones(m,1) -ones(m,1)],-1:1,m,m);
In = speye(n);
Im = speye(m);
A = kron(Im,Tn)+kron(Tm,In);