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};

스미스 분해는 항등식 을 만족하는 3개의 행렬을 줍니다.

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=

항등식 에 곱하면, 이 됩니다. 는 정수이며, 행렬식은 1이므로, 과 같은 격자를 생성하지만, 훨씬 간단합니다.

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 pt-br ru zh