李代数#

class sympy.liealgebras.root_system.RootSystem(cartantype)[源代码]#

表示简单李代数的根系

每一个简单的李代数都有一个唯一的根系统。为了求根,我们首先考虑g的Cartan子代数,它是最大的交换子代数,并考虑g在这个子代数上的伴随作用。存在与此操作关联的根系统。现在,向量空间V上的根系是一组有限向量Phi(称为根),它满足:

  1. 根跨V

  2. φ中x的唯一标量倍数是x和-x

  3. 对于Phi中的每一个x,在垂直于x的超平面的反射下,设置的Phi是闭合的。

  4. 如果x和y是φ的根,那么y在穿过x的直线上的投影是x的半整数倍。

现在,有一个子集,我们将它称为Delta,这样:1。三角洲是v2的基础。φ中的每个根x可以用x=sum ku y表示y,单位为Delta

Delta的元素称为单根。因此,我们看到单根跨越了给定单李代数的根空间。

工具书类

[R599]

李代数与表示理论-汉弗莱斯

add_as_roots(root1, root2)[源代码]#

将两个根相加当且仅当它们的和也是根时

它以两个向量作为输入,这两个向量应该是根。然后计算它们的和并检查它是否在所有可能的根的列表中。如果是,则返回总和。否则,它将返回一个字符串,说明总和不是根。

实例

>>> from sympy.liealgebras.root_system import RootSystem
>>> c = RootSystem("A3")
>>> c.add_as_roots([1, 0, -1, 0], [0, 0, 1, -1])
[1, 0, 0, -1]
>>> c.add_as_roots([1, -1, 0, 0], [0, 0, -1, 1])
'The sum of these two roots is not a root'
add_simple_roots(root1, root2)[源代码]#

把两个简单的根加在一起

该函数接受两个整数root1和root2作为输入。然后它使用这些整数作为单根字典中的键,得到相应的单根,然后将它们相加。

实例

>>> from sympy.liealgebras.root_system import RootSystem
>>> c = RootSystem("A3")
>>> newroot = c.add_simple_roots(1, 2)
>>> newroot
[1, 0, -1, 0]
all_roots()[源代码]#

一个给定的根生成所有的根

结果是一个字典,其中的键是整数。它通过从基类中获取所有正根的字典来生成根,然后取每个根,将其乘以-1并将其添加到字典中。所有的负根都是这样产生的。

cartan_matrix()[源代码]#

与此根系相关的李代数的Cartan矩阵

实例

>>> from sympy.liealgebras.root_system import RootSystem
>>> c = RootSystem("A3")
>>> c.cartan_matrix()
Matrix([
    [ 2, -1,  0],
    [-1,  2, -1],
    [ 0, -1,  2]])
dynkin_diagram()[源代码]#

与这个根系相关的李代数的Dynkin图

实例

>>> from sympy.liealgebras.root_system import RootSystem
>>> c = RootSystem("A3")
>>> print(c.dynkin_diagram())
0---0---0
1   2   3
root_space()[源代码]#

返回简单根的跨度

根空间是由单根构成的向量空间,也就是说,它是一个具有不同基的向量空间,即单根。此方法返回一个字符串,该字符串将根空间表示为简单根的跨度alpha [1] ,…..,阿尔法 [n] .

实例

>>> from sympy.liealgebras.root_system import RootSystem
>>> c = RootSystem("A3")
>>> c.root_space()
'alpha[1] + alpha[2] + alpha[3]'
simple_roots()[源代码]#

生成李代数的单根

李代数的秩决定了它的单根数。该方法首先得到李代数的秩,然后利用李代数类中的单根方法生成所有的单根。

实例

>>> from sympy.liealgebras.root_system import RootSystem
>>> c = RootSystem("A3")
>>> roots = c.simple_roots()
>>> roots
{1: [1, -1, 0, 0], 2: [0, 1, -1, 0], 3: [0, 0, 1, -1]}
class sympy.liealgebras.type_a.TypeA(n)[源代码]#

这个类包含关于一系列简单李代数的信息。====

basic_root(i, j)[源代码]#

这是一种生成第i个位置为1,第j个位置为-1的根的方法。

basis()[源代码]#

返回一个

cartan_matrix()[源代码]#

返回A的Cartan矩阵。Lie代数的Cartan矩阵矩阵是通过对单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType('A4')
>>> c.cartan_matrix()
Matrix([
[ 2, -1,  0,  0],
[-1,  2, -1,  0],
[ 0, -1,  2, -1],
[ 0,  0, -1,  2]])
dimension()[源代码]#

李代数下向量空间V的维数

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A4")
>>> c.dimension()
5
highest_root()[源代码]#

返回n的最大权值根

lie_algebra()[源代码]#

返回与

positive_roots()[源代码]#

这个方法产生所有的正根,这是所有根的一半,把所有的正根乘以-1得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回一个

simple_root(i)[源代码]#

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

在n中,第i个单根是在第i个位置有一个1,在第(i+1)个位置有-1,在其他位置有零的根。

此方法返回A系列的第i个简单根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A4")
>>> c.simple_root(1)
[1, -1, 0, 0, 0]
class sympy.liealgebras.type_b.TypeB(n)[源代码]#
basic_root(i, j)[源代码]#

这是一种生成第i个位置为1,第j个位置为-1的根的方法。

basis()[源代码]#

返回Bn的独立生成器数

cartan_matrix()[源代码]#

返回B峎n的Cartan矩阵。李代数的Cartan矩阵矩阵是通过给单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType('B4')
>>> c.cartan_matrix()
Matrix([
[ 2, -1,  0,  0],
[-1,  2, -1,  0],
[ 0, -1,  2, -2],
[ 0,  0, -1,  2]])
dimension()[源代码]#

李代数下向量空间V的维数

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("B3")
>>> c.dimension()
3
lie_algebra()[源代码]#

返回与Bn相关联的李代数

positive_roots()[源代码]#

这个方法生成A_n的所有正根,这是B峎n所有根的一半;将所有正根乘以-1,我们得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回“的根的总数”

simple_root(i)[源代码]#

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

在Bün中,前n-1个单根与A_u(n-1)的根相同(a1在第i位,A-1在(i+1)位,在其他地方为零)。第n个单根是第n个位置为1,其他位置为零的根。

这个方法返回B系列的第i个简单根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("B3")
>>> c.simple_root(2)
[0, 1, -1]
class sympy.liealgebras.type_c.TypeC(n)[源代码]#
basic_root(i, j)[源代码]#

生成第i个位置为1,第j个位置为-1的根

basis()[源代码]#

返回Cn的独立生成器数

cartan_matrix()[源代码]#

卡坦矩阵

李代数的Cartan矩阵矩阵是通过对单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType('C4')
>>> c.cartan_matrix()
Matrix([
[ 2, -1,  0,  0],
[-1,  2, -1,  0],
[ 0, -1,  2, -1],
[ 0,  0, -2,  2]])
dimension()[源代码]#

李代数下向量空间V的维数

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("C3")
>>> c.dimension()
3
lie_algebra()[源代码]#

返回与Cn“相关联的李代数

positive_roots()[源代码]#

所有n的根都是正的

这是C峎n所有根的一半;将所有正根乘以-1,我们得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回“的根总数”

simple_root(i)[源代码]#

C级数的第i个单根

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

在Cün中,前n-1个单根与A_u(n-1)的根相同(A 1在第i位,A-1在第(i+1)位,在其他地方为零)。第n个单根是第n个位置有2,其他位置有0的根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("C3")
>>> c.simple_root(2)
[0, 1, -1]
class sympy.liealgebras.type_d.TypeD(n)[源代码]#
basic_root(i, j)[源代码]#

这是一种生成第i个位置为1,第j个位置为-1的根的方法。

basis()[源代码]#

返回Dn的独立生成器数

cartan_matrix()[源代码]#

返回D峎n的Cartan矩阵。李代数的Cartan矩阵矩阵是通过给单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType('D4')
>>> c.cartan_matrix()
    Matrix([
    [ 2, -1,  0,  0],
    [-1,  2, -1, -1],
    [ 0, -1,  2,  0],
    [ 0, -1,  0,  2]])
dimension()[源代码]#

李代数下向量空间V的理解

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("D4")
>>> c.dimension()
4
lie_algebra()[源代码]#

返回与Dn“相关联的李代数

positive_roots()[源代码]#

这个方法产生所有的正根,这是所有根的一半,用所有的正根乘以-1得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回Dn“的根总数

simple_root(i)[源代码]#

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

在Dün中,前n-1个单根与A(n-1)的根相同(A 1在第i位,A-1在第(i+1)位,在其他地方为零)。第n个单根是第n个和第(n-1)个位置有1,其他位置有0的根。

此方法返回D系列的第i个简单根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("D4")
>>> c.simple_root(2)
[0, 1, -1, 0]
class sympy.liealgebras.type_e.TypeE(n)[源代码]#
basic_root(i, j)[源代码]#

这是一种只生成第i个位置为-1、第j个位置为1的根的方法。

basis()[源代码]#

返回En的独立生成器数

cartan_matrix()[源代码]#

返回G峎2的Cartan矩阵李代数的Cartan矩阵矩阵是通过对单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType('A4')
>>> c.cartan_matrix()
Matrix([
[ 2, -1,  0,  0],
[-1,  2, -1,  0],
[ 0, -1,  2, -1],
[ 0,  0, -1,  2]])
dimension()[源代码]#

李代数下向量空间V的维数

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("E6")
>>> c.dimension()
8
positive_roots()[源代码]#

这个方法产生所有的正根,这是所有根的一半,把所有的正根乘以-1得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回En的根的总数

simple_root(i)[源代码]#

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

此方法返回En的第i个简单根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("E6")
>>> c.simple_root(2)
[1, 1, 0, 0, 0, 0, 0, 0]
class sympy.liealgebras.type_f.TypeF(n)[源代码]#
basic_root(i, j)[源代码]#

在第i个位置生成根,在第j个位置生成-1个根

basis()[源代码]#

返回F_4的独立生成器数

cartan_matrix()[源代码]#

fu4的Cartan矩阵

李代数的Cartan矩阵矩阵是通过对单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType('A4')
>>> c.cartan_matrix()
Matrix([
[ 2, -1,  0,  0],
[-1,  2, -1,  0],
[ 0, -1,  2, -1],
[ 0,  0, -1,  2]])
dimension()[源代码]#

李代数下向量空间V的维数

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("F4")
>>> c.dimension()
4
positive_roots()[源代码]#

生成所有的正根

这是fu4所有根的一半;将所有正根乘以-1,我们得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回F_4的根总数

simple_root(i)[源代码]#

fu4的第i个单根

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("F4")
>>> c.simple_root(3)
[0, 0, 0, 1]
class sympy.liealgebras.type_g.TypeG(n)[源代码]#
basis()[源代码]#

返回Gu 2的独立生成器数

cartan_matrix()[源代码]#

Gé2的Cartan矩阵

李代数的Cartan矩阵矩阵是通过对单根(alpha)赋值来生成的 [1] ,…..,阿尔法 [l] ). 那么Cartan矩阵的ijth条目是(<alpha [i] ,阿尔法 [j] >).

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("G2")
>>> c.cartan_matrix()
Matrix([
    [ 2, -1],
    [-3,  2]])
dimension()[源代码]#

李代数下向量空间V的维数

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("G2")
>>> c.dimension()
3
positive_roots()[源代码]#

生成所有的正根

这是所有根的一半;把所有的正根乘以-1,我们得到负根。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("A3")
>>> c.positive_roots()
{1: [1, -1, 0, 0], 2: [1, 0, -1, 0], 3: [1, 0, 0, -1], 4: [0, 1, -1, 0],
        5: [0, 1, 0, -1], 6: [0, 0, 1, -1]}
roots()[源代码]#

返回Gu 2“的根的总数

simple_root(i)[源代码]#

gu2的第i个单根

每一个李代数都有一个唯一的根系统。给定一个根系统Q,存在根的子集,使得Q中的一个元素不能写成Q中两个元素的和,则称为单根。如果我们让D表示简单根的集合,那么很明显Q的每个元素都可以写成D元素的线性组合,所有系数都非负。

实例

>>> from sympy.liealgebras.cartan_type import CartanType
>>> c = CartanType("G2")
>>> c.simple_root(1)
[0, 1, -1]
class sympy.liealgebras.weyl_group.WeylGroup(cartantype)[源代码]#

对于每个半单李群,我们有一个Weyl群。它是根系统等距组的一个子组。具体地说,它是通过与根正交的超平面反射生成的子群。因此,Weyl群是反射群,因此Weyl群是有限Coxeter群。

coxeter_diagram()[源代码]#

This method returns the Coxeter diagram corresponding to a Weyl group. The Coxeter diagram can be obtained from a Lie algebra's Dynkin diagram by deleting all arrows; the Coxeter diagram is the undirected graph. The vertices of the Coxeter diagram represent the generating reflections of the Weyl group, \(s_i\). An edge is drawn between \(s_i\) and \(s_j\) if the order \(m(i, j)\) of \(s_is_j\) is greater than two. If there is one edge, the order \(m(i, j)\) is 3. If there are two edges, the order \(m(i, j)\) is 4, and if there are three edges, the order \(m(i, j)\) is 6.

实例

>>> from sympy.liealgebras.weyl_group import WeylGroup
>>> c = WeylGroup("B3")
>>> print(c.coxeter_diagram())
0---0===0
1   2   3
delete_doubles(reflections)[源代码]#

这是一个辅助方法,用于确定G2的Weyl群中元素的顺序。它接受一个Weyl元素,如果在其中重复简单的反射,它会删除它们。

element_order(weylelt)[源代码]#

此方法返回给定Weyl群元素的顺序,用户应以生成反射的乘积的形式指定,即r1*r2等的形式。

对于A-F型,这种方法的工作原理是取指定元素的矩阵形式,然后求出矩阵的幂次是恒等式。然后它返回这个能量。

实例

>>> from sympy.liealgebras.weyl_group import WeylGroup
>>> b = WeylGroup("B4")
>>> b.element_order('r1*r4*r2')
4
generators()[源代码]#

该方法为给定的李代数创建Weyl群的生成反射。对于秩为n的李代数,有n个不同的生成反射。此函数以列表形式返回它们。

实例

>>> from sympy.liealgebras.weyl_group import WeylGroup
>>> c = WeylGroup("F4")
>>> c.generators()
['r1', 'r2', 'r3', 'r4']
group_name()[源代码]#

这个方法返回给定李代数的Weyl群的一些一般信息。它返回组的名称及其所作用的元素(如果相关)。

group_order()[源代码]#

此方法返回Weyl组的顺序。对于类型A、B、C、D和E,其阶数取决于李代数的秩。对于F型和G型,顺序是固定的。

实例

>>> from sympy.liealgebras.weyl_group import WeylGroup
>>> c = WeylGroup("D4")
>>> c.group_order()
192.0
matrix_form(weylelt)[源代码]#

该方法以产生反射的乘积形式从用户处获取输入,并返回对应于Weyl群元素的矩阵。由于Weyl群的每个元素都是某种类型的反射,所以有一个相应的矩阵表示。此方法使用所有生成反射的标准表示。

实例

>>> from sympy.liealgebras.weyl_group import WeylGroup
>>> f = WeylGroup("F4")
>>> f.matrix_form('r2*r3')
Matrix([
[1, 0, 0,  0],
[0, 1, 0,  0],
[0, 0, 0, -1],
[0, 0, 1,  0]])
class sympy.liealgebras.cartan_type.CartanType_generator[源代码]#

实际创建事物的构造函数

class sympy.liealgebras.cartan_type.Standard_Cartan(series, n)[源代码]#

卡坦混凝土基层,如A4等

rank()[源代码]#

返回李代数的秩

series()[源代码]#

返回李代数的类型

sympy.liealgebras.dynkin_diagram.DynkinDiagram(t)[源代码]#

显示给定李代数的Dynkin图

方法是为输入t生成CartanType,然后从各个类返回Dynkin图方法。

实例

>>> from sympy.liealgebras.dynkin_diagram import DynkinDiagram
>>> print(DynkinDiagram("A3"))
0---0---0
1   2   3
>>> print(DynkinDiagram("B4"))
0---0---0=>=0
1   2   3   4
sympy.liealgebras.cartan_matrix.CartanMatrix(ct)[源代码]#

访问特定李代数的Cartan矩阵

实例

>>> from sympy.liealgebras.cartan_matrix import CartanMatrix
>>> CartanMatrix("A2")
Matrix([
[ 2, -1],
[-1,  2]])
>>> CartanMatrix(['C', 3])
Matrix([
[ 2, -1,  0],
[-1,  2, -1],
[ 0, -2,  2]])

此方法通过返回对应于Cartan类型t的Cartan矩阵来工作。