热门问题
时间线
聊天
视角

调和矩阵

来自维基百科,自由的百科全书

Remove ads

图论中,调和矩阵harmonic matrix),也称拉普拉斯矩阵拉氏矩阵Laplacian matrix)、离散拉普拉斯discrete Laplacian),是矩阵表示。[1]

调和矩阵也是拉普拉斯算子离散化。换句话说,调和矩阵的缩放极限拉普拉斯算子。它在机器学习物理学中有很多应用。

定义

若G是简单,G有n个顶点,A是邻接矩阵,D是度数矩阵,则调和矩阵[1]

Remove ads

动机

这跟拉普拉斯算子有什么关系?若f 是加权图G的顶点函数,则[2]

w是边的权重函数。u、v是顶点。f = (f(1), ..., f(n)) 是n维的矢量。上面泛函也称为Dirichlet泛函。[3]

Remove ads

接续矩阵

而且若K是接续矩阵(incidence matrix),则[2]

Kf 是f 的图梯度。另外,特征值满足

Remove ads

举例

更多信息 , ...
Remove ads

其他形式

对称正规化调和矩阵

注意[4]

Remove ads

Remove ads

动力学和微分方程

例如,离散的冷却定律使用调和矩阵[5]

使用矩阵矢量

解是

Remove ads

平衡举动

的时候,

Remove ads

MATLAB代码

N = 20;%The number of pixels along a dimension of the image
A = zeros(N, N);%The image
Adj = zeros(N*N, N*N);%The adjacency matrix

%Use 8 neighbors, and fill in the adjacency matrix
dx = [-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
   end
end

%%%BELOW IS THE KEY CODE THAT COMPUTES THE SOLUTION TO THE DIFFERENTIAL
%%%EQUATION
Deg = diag(sum(Adj, 2));%Compute the degree matrix
L = 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 matrix
D = 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 eigenvectors
for 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);
   end
end
Thumb
GIF:离散拉普拉斯过程,使用拉普拉斯矩阵
Remove ads

应用

参考文献

阅读

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads