function K = diffusion_matrix_sparse(integerN) % % A sparse representation of the matrix K in the advection-diffusion % equation. See advection_matrix.m for details. % if (integerN < 2) K = NA; return end % The negative ones directly above the diagonal. top = [ [zeros(integerN-1, 1), -speye(integerN-1)]; ... zeros(1, integerN)]; % The negative ones directly below the diagonal. bottom = [ [zeros(1, integerN-1); ... -speye(integerN-1) ], zeros(integerN, 1)]; % Combine the top and bottom. K = top + bottom + 2*speye(integerN); % Fill in the entries in the corner. K(1, integerN) = -1; K(integerN, 1) = -1; end