function S = advection_matrix_sparse(integerN)
- ##
- ## Sparse version of the advection_matrix function. See
- ## advection_matrix.m for details.
- ##
+ %
+ % Sparse version of the advection_matrix function. See
+ % advection_matrix.m for details.
+ %
if (integerN < 2)
S = NA;
return
end
- ## The ones directly above the diagonal.
+ % The ones directly above the diagonal.
top = [ [zeros(integerN-1, 1), speye(integerN-1)]; ...
zeros(1, integerN)];
- ## The negative ones directly below the diagonal.
+ % The negative ones directly below the diagonal.
bottom = [ [zeros(1, integerN-1); ...
-speye(integerN-1) ], zeros(integerN, 1)];
- ## Combine the top and bottom.
+ % Combine the top and bottom.
S = top + bottom;
- ## Fill in the entries in the corner.
+ % Fill in the entries in the corner.
S(1, integerN) = -1;
S(integerN, 1) = 1;
- ## And divide the whole thing by 2.
+ % And divide the whole thing by 2.
S = (1/2)*S;
end