Wolfram 语言

代数和数论

使用史密斯分解分析晶格

考虑通过向量 的整数倍产生的晶格 .

In[1]:=
Click for copyable input
b1 = {3, -3}; b2 = {2, 1};
In[2]:=
Click for copyable input
ptsb = Flatten[Table[j b1 + k b2, {j, -12, 12}, {k, -12, 12}], 1];
In[3]:=
Click for copyable input
graphicsb = Graphics[{Blue, PointSize[Large], Point@ptsb}, PlotRange -> 10, Axes -> True]
Out[3]=

作为矩阵,其中行为 .

In[4]:=
Click for copyable input
m = {b1, b2};

史密斯分解给出三个满足恒等式 的矩阵.

In[5]:=
Click for copyable input
{u, r, v} = SmithDecomposition[m];
In[6]:=
Click for copyable input
u.m.v == r
Out[6]=

矩阵 的项为整数,行列式为 1.

In[7]:=
Click for copyable input
{u // MatrixForm, v // MatrixForm, Det[u], Det[v]}
Out[7]=

矩阵 为整数矩阵且为对角矩阵. 从其项来看,可以发现 群的结构为 ,或直接写为 ,因为 是平凡群.

In[8]:=
Click for copyable input
r // MatrixForm
Out[8]//MatrixForm=

恒等式 的右边乘以 ,得出 . 由于 是整数矩阵且其行列式为 生成的是与 相同的晶格但更简单.

In[9]:=
Click for copyable input
g = r.Inverse[v]; g // MatrixForm
Out[9]//MatrixForm=

可视化由 行生成的晶格.

In[10]:=
Click for copyable input
ptsg = Flatten[ Table[j First[g] + k Last[g], {j, -12, 12}, {k, -12, 12}], 1];
In[11]:=
Click for copyable input
graphicsg = Graphics[{Red, PointSize[Medium], Point@ptsg}, PlotRange -> 10, Axes -> True]
Out[11]=

将新晶格与原来的晶格叠加确认它们是相同的.

In[12]:=
Click for copyable input
Show[{graphicsb, graphicsg}]
Out[12]=

相关范例

de en es fr ja ko pt-br ru