MATLAB では、次のようなコマンドを使用して五角形疎行列を作成すると非常に便利です。
I = eye(m); % create identity matrix
e = ones(m,1); % create an array of all 1's
T = spdiags([e -4*e e],[-1 0 1],m,m);
S = spdiags([e e],[-1 1],m,m);
A = (kron(I,T) + kron(S,I))/hˆ2;
c/c ++で同じことを行うための巧妙なトリックがあるかどうか疑問に思っていました。