1. 引言
代数簇作为在代数几何这一数学领域中的研究对象,从18世纪代数与数学分析交织在一起,到20世纪代数簇的探究取得一定成果[1] [2],其维数的计算问题一直被数学家关注。
随着理想生成元的复杂程度的提升,学者对代数簇维数的研究也日益深入。在前面的研究中,学者计算理想簇的维数问题是从希尔伯特函数或者Krull维数着手[3] [4],这需要大量的理论知识以及复杂的计算。本研究从单项式生成理想这一基础概念出发,通过计算Groebner基[5],探讨单项式生成理想簇的维数问题。通过深入分析这些理想簇的代数性质,期望能够揭示出它们之间的内在联系和规律,从而为代数簇维数的计算提供新的思路和方法。
本文的主要内容分为三个部分,第一部分内容为基础理论知识[6] [7],为后续研究奠定基础。第二部分内容为给出代数簇维数的公式,第三部分内容在第二部分内容基础上用Maple进行算法实现。
2. 基础代数知识
定义2.1在
中,称幂积
为关于
的项,简记
。其中x和
分别表示
,
,又称
为
关于
的次数
,而
为
的全次数,记为
。
定义2.2在
中称有限和
为多项式。其中
是f关于项
的系数,记为
,若
,则称
为f的项,并称
为f的单项式。
定义2.3若K是一个域,多项式
,称
是由
定义的仿射代数簇。
定义2.4在
的一个单项式
,
,
中的一个单项式
指的是定义在
上的一种关系,它满足:
(1)
是在
的一个全序
(2) 如果
并且
那么有
(3)
是
上的良序
设
是在
下的一个非零多项式,
是一个单项式序,则可以定义f的多重次数为
,首项系数为
,首单项式为
,首项为
。
除非另外说明,本文默认变元序
,下面介绍
上几种常见的全序关系,设
,
,定义
字典序:
,如果存在
,使得
且
逆字典序:
,如果存在
,使得
且
分次字典序:
,如果
且
分次逆字典序:
,如果
且
定义2.5在多项式环
上固定一个单项式序,有一组多项式
,
,若
成立,理想
不同于
的有限生成子集
定义为Groebner基。
定义2.6 K是一个域,
是仿射代数簇,
,V的坐标环是商环,有下面的形式
坐标环也被称为V上的正则函数环。
若M是一个集合的集合,子集C是M的子集被称为M中的链,满足完全按照包含关系“⊆”排序。C的长度定义为
,长度为n的有限链通常写为
记为
若
,则长度为−1。
定义2.7对于一个给定的向量空间V,其Krull维数是满足以下条件的最长子空间链的长度,即存在一个子空间链
,其中每个V都是
的子空间,且
是非零向量空间,n即为V的Krull维数。
K是一个代数闭域,
中的子集X具有Zariski拓扑特点,X是一个仿射代数簇,有下式成立
在引出定理3.1之前,首先进行如下说明:
考虑理想
,集合
是理想I的一个Groebner基。如果G中的所有单项式都包含相同的变元(即每个单项式都至少包含一个变元
),已知理想I不是零理想,则集合
,所以
,由定义
,所以单项式生成理想代数簇的维数
。
3. 维数公式
定理3.1若G中的m个单项式(
)不全部包含相同的变元,即存在至少一个变元
,
,使得
对所有
成立,则由此单项式理想I生成的理想簇
的维数为
。
证明:在G的单项式中找到出现次数最多的变元,记为xi。有
,
,
,
,
,
,因为结合Krull维数有
,即表示为不在点集V(I)中变元个数
,
。
根据上面的证明得到计算单项式生成理想代数簇的维数步骤,步骤如下:
(1) 找到G中的单项式中出现次数最多的变元。若变元不止一个,则根据字典序选择第一个变元。
(2) 将包含该变元的所有单项式组成一组。
(3) 在余下的单项式中重复步骤(1)和(2),直到所有单项式被分组,最终得到 r 组单项式,得到单项式生成理想代数簇V(I)的维数为:
。
结合上面定理,可以把理想
的Groebner基整理得到如下形式:
符号说明:
(1) 上式中的
(
)是不含有变元
的单项式
(2)
是变元
的次数
4. 算法与示例
算法4.1:单项式生成理想簇维数 |
输入:单项式序列monos |
输出:monos序列中单项式生成理想簇维数 |
1:初始化iterationCount, singleVarCount, dd为0 |
2:计算monos中变元的总数nn |
3:使用Groebner[Basis]计算monos的基monoss |
4:初始化结果列表resultt为空 |
5:Step 1:判断每一个变元在Groebner基中变元出现的次数是否为1 |
6:确定expr的变量集合vvars |
7:if nops(vvars) = 1 |
8: set isInOther is false |
9: Step 2:去除Groebner基中变元出现一次单变元单项式的,计数并更新单项式序列 |
10: if has(monoss[j], vvar) |
11: set isInOther is true |
12: resultt := [op(resultt), expr] |
13: break |
14: if isInOther is false: |
15: singleVarCount := singleVarCount + 1 |
16: else |
17: resultt := [op(resultt), expr] |
18: filteredMonos := resultt |
19: Step 3:遍历filteredMonos中的单项式并根据规则重复操作,更新列表直至序列个数为0 |
20: iterationCount := iterationCount + 1 |
21: varOccurrences := table([ ]) |
22: Step 3.1:对filteredMonos中的变量出现次数进行分组和排序 |
23: 确定单项式的变量集合 |
24: 更新varOccurrences中每个变量的出现次数 |
25: flag_set := {temp1[2], op(flag_set)} |
26: astVar := final_list[-1][1] |
27: filteredMonosdd := [ ] |
28: Step 3.2:去掉出现次数最多的变量所在的单项式 |
29: if not has(mono, lastVar): |
30: filteredMonosdd := [op(filteredMonosdd), mono] |
31: filteredMonos := filteredMonosdd |
32: if nops(filteredMonos)=0 : |
33: break |
34: 计算 dd = nn - iterationCount - singleVarCount |
35: return dd |
36: end |
根据算法下面举出具体的例子进行实现,在此之前首先对例子进行分析,计算该单项式生成理想仿射代数簇的维数,最后用Maple进行实现与验证。
例4.1在
中,有理想
,其Groebner基为
,计算该理想代数簇的维数。
解集V(I)可以表示为多个超平面的交集,具体表达形式为
。其中,超平面H1,H2,H3的定义分别为
,
,
。由定理3.1可知
,则该单项式生成的理想代数簇的维数
。
下面运用算法计算例4.1的维数。
> 

5. 结论
本研究在Groebner基的基础上,通过研究不同单项式生成理想的所带来的代数簇维数的变化,并总结成定理,提出了一个用于计算单项式生成理想的代数簇维数公式。并利用数学计算软件Maple对公式进行了算法实现。