基本的环

当定义矩阵、向量或者多项式时,有时候需要,有时候是必须要指定其所在的”环”。 是一个数学结构,在其上定义的加法和乘法有很好的性质。如果你从来没有听说过这些概念,至少要了解以下这四个常用的环:

  • 整数环 {…, -1, 0, 1, 2, …},Sage中叫ZZ;
  • 有理数环,即能够由整数构成的分数,Sage中叫QQ;
  • 实数环,Sage中叫RR;
  • 复数环,Sage中叫CC.

你需要了解它们之间的区别,因为对于同一个多项式,处理方式完全取决于它定义在哪个环上。比如说,多项式$x^2-2$有两个根,$\pm \sqrt{2}$. 这些根不是有理数,所以如果在讨论有理系数多项式,那么该多项式不能进行因式分解,如果是实系数,就可以。所以你可能要指定环以保证得到的结果是你所期望的。下面两个命令定义有理系数多项式和实系数多项式集合。集合的名字分别是”ratpoly”和”realpoly”, 这两个名字并不重要,但是要注意变量的名字”.\“和”.\“的使用。 :

  1. sage: ratpoly.<t> = PolynomialRing(QQ)
  2. sage: realpoly.<z> = PolynomialRing(RR)

现在我们展示$x^2-2$的因式分解。

  1. sage: factor(t^2-2)
  2. t^2 - 2
  3. sage: factor(z^2-2)
  4. (z - 1.41421356237310) * (z + 1.41421356237310)

矩阵中存在同样的问题:矩阵的行消去形式取决于其所定义的环,还有它的特征值和特征向量的计算。更多关于多项式构造的内容请参见多项式, 更多关于矩阵的内容请参见线性代数.

符号I代表$-1$的平方根;i等同于I. 当然这不是一个有理数 :

  1. sage: i # -1的平方根
  2. I
  3. sage: i in QQ
  4. False

注意:如果i已经被赋了其他的值,比如循环变量,那么上面的代码不会给出预期的结果。出现这种情况,请输入 :

  1. sage: reset('i')

来得到i的原始复数值。

定义复数的时候还有一个细节:如上所述i代表 -1 的平方根, 但是它是 -1的形式上的符号的平方根。 调用CC(i)CC.0返回 -1 的复的平方根。 :

  1. sage: i = CC(i) # floating point complex number
  2. sage: i == CC.0
  3. True
  4. sage: a, b = 4/3, 2/3
  5. sage: z = a + b*i
  6. sage: z
  7. 1.33333333333333 + 0.666666666666667*I
  8. sage: z.imag() # 复部
  9. 0.666666666666667
  10. sage: z.real() == a # 比较前自动进行强制类型转换
  11. True
  12. sage: a + b
  13. 2
  14. sage: 2*b == a
  15. True
  16. sage: parent(2/3)
  17. Rational Field
  18. sage: parent(4/2)
  19. Rational Field
  20. sage: 2/3 + 0.1 # 加法运算前自动进行强制类型转换
  21. 0.766666666666667
  22. sage: 0.1 + 2/3 # coercion rules are symmetric in SAGE
  23. 0.766666666666667

下面是关于Sage中基本环的几个例子。上面已经提到有理数环可以用QQ,也可以用RationalField()(是环的一种,乘法是可交换的,且所有非零元素均有乘法逆元。所有有理数可以构成一个域,但是整数不行) :

  1. sage: RationalField()
  2. Rational Field
  3. sage: QQ
  4. Rational Field
  5. sage: 1/2 in QQ
  6. True

十进制数1.2属于QQ: 正好是有理数的十进制数可以被强制转换为有理数。$\pi$和$\sqrt{2}$都不是有理数:

  1. sage: 1.2 in QQ
  2. True
  3. sage: pi in QQ
  4. False
  5. sage: pi in RR
  6. True
  7. sage: sqrt(2) in QQ
  8. False
  9. sage: sqrt(2) in CC
  10. True

为用于高等数学,Sage包含了其他的环,比如有限域, $p$-adic整数,代数环,多项式环和矩阵环。下面是其中一些环的构造:

  1. sage: GF(3)
  2. Finite Field of size 3
  3. sage: GF(27, 'a') # need to name the generator if not a prime field
  4. Finite Field in a of size 3^3
  5. sage: Zp(5)
  6. 5-adic Ring with capped relative precision 20
  7. sage: sqrt(3) in QQbar # algebraic closure of QQ
  8. True