グリッド上の作用素の例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/09/13 00:05 UTC 版)
「ラプラシアン行列」の記事における「グリッド上の作用素の例」の解説
本節では、グラフにわたって経時的に拡散する関数 ϕ {\textstyle \phi } の例を示す。この例中のグラフは2次元離散グリッド上に構築され、グリッド上の点は8個の隣接点と連結している。3つの初期点は正の値を持つと指定されているのに対し、グリッド中の残りの値は0である。経時的に、指数関数的減衰によってグリッド全体へとこれらの点上の値が均等に分布する。 このアニメーションを生成するために使われた完全なMATLABのソースコードを以下に示す。ソースコードは、初期条件の指定、これらの初期条件のラプラシアン行列の固有値への射影、これらの射影された初期条件の指数関数的減衰のシミュレーションの過程を示す。 N = 20;%The number of pixels along a dimension of the imageA = zeros(N, N);%The imageAdj = zeros(N*N, N*N);%The adjacency matrix%Use 8 neighbors, and fill in the adjacency matrixdx = [-1, 0, 1, -1, 1, -1, 0, 1];dy = [-1, -1, -1, 0, 0, 1, 1, 1];for x = 1:N for y = 1:N index = (x-1)*N + y; for ne = 1:length(dx) newx = x + dx(ne); newy = y + dy(ne); if newx > 0 && newx <= N && newy > 0 && newy <= N index2 = (newx-1)*N + newy; Adj(index, index2) = 1; end end endend%%%BELOW IS THE KEY CODE THAT COMPUTES THE SOLUTION TO THE DIFFERENTIAL%%%EQUATIONDeg = diag(sum(Adj, 2));%Compute the degree matrixL = Deg - Adj;%Compute the laplacian matrix in terms of the degree and adjacency matrices[V, D] = eig(L);%Compute the eigenvalues/vectors of the laplacian matrixD = diag(D);%Initial condition (place a few large positive values around and%make everything else zero)C0 = zeros(N, N);C0(2:5, 2:5) = 5;C0(10:15, 10:15) = 10;C0(2:5, 8:13) = 7;C0 = C0(:);C0V = V'*C0;%Transform the initial condition into the coordinate system %of the eigenvectorsfor t = 0:0.05:5 %Loop through times and decay each initial component Phi = C0V.*exp(-D*t);%Exponential decay for each component Phi = V*Phi;%Transform from eigenvector coordinate system to original coordinate system Phi = reshape(Phi, N, N); %Display the results and write to GIF file imagesc(Phi); caxis([0, 10]); title(sprintf('Diffusion t = %3f', t)); frame = getframe(1); im = frame2im(frame); [imind, cm] = rgb2ind(im, 256); if t == 0 imwrite(imind, cm, 'out.gif', 'gif', 'Loopcount', inf, 'DelayTime', 0.1); else imwrite(imind, cm, 'out.gif', 'gif', 'WriteMode', 'append', 'DelayTime', 0.1); endend
※この「グリッド上の作用素の例」の解説は、「ラプラシアン行列」の解説の一部です。
「グリッド上の作用素の例」を含む「ラプラシアン行列」の記事については、「ラプラシアン行列」の概要を参照ください。
- グリッド上の作用素の例のページへのリンク