[关闭]
@why-math 2015-04-26T17:29:12.000000Z 字数 1313 阅读 1193

Sage 游历指南

sage


赋值,等式和运算

除了少数的例外, Sage 使用 Python 的编程语言, 所以大多数介绍性的 Python 书籍都会帮助你学习 Sage.

Sage 使用 = 表示赋值, ==, <=, >=, <>表示比较:

  1. sage: a = 5
  2. sage: a
  3. 5
  4. sage: 2 == 2
  5. True
  6. sage: 2 == 3
  7. False
  8. sage: 2 < 3
  9. True
  10. sage: a == 5
  11. True

Sage 提供所有基础的数学运算:

  1. sage: 2**3 # ** 指数运算
  2. 8
  3. sage: 2^3 # ^ 同 ** (这一点与 Python 不同)
  4. 8
  5. sage: 10 % 3 # 对于整数参数, % 表示求余
  6. 1
  7. sage: 10/4
  8. 5/2
  9. sage: 10//4 # 对于整数参数, // 返回整数商
  10. 2
  11. sage: 4 * (10 // 4) + 10 % 4 == 10
  12. True
  13. sage: 3^2*4 + 2%5
  14. 38

表达式(如3^2*4 + 2%5)的计算操作应用的顺序.

Sage 也提供很多常见的数学函数, 如下面的几个例子:

  1. sage: sqrt(3.4)
  2. 1.84390889145858
  3. sage: sin(5.135)
  4. -0.912021158525540
  5. sage: sin(pi/3)
  6. 1/2*sqrt(3)

上面的最后一个例子表明, 某些数学表达式返回精确的值, 而不是数值逼近. 为了获得数值逼近, 可用函数 n 或者 方法 n (两者都有一个长名字 numerical_approx, 函数 Nn 是一样的). 它们都接收可选参数 prec, 用来指定精度的二进制位数, 以及参数 digits指定十进制位数; 默认的二进制精度位数为 53.

  1. sage: exp(2)
  2. e^2
  3. sage: n(exp(2))
  4. 7.38905609893065
  5. sage: sqrt(pi).numerical_approx()
  6. 1.77245385090552
  7. sage: sin(10).n(digits=5)
  8. -0.54402
  9. sage: N(sin(10),digits=10)
  10. -0.5440211109
  11. sage: numerical_approx(pi, prec=200)
  12. 3.1415926535897932384626433832795028841971693993751058209749

Python 是一种动态类型语言, 所以每个变量的值都有一个类型相伴, 但是一个给定的变量在作用域(scope)内可以是任意 Python 类型的值.

  1. sage: a = 5 # a is an integer
  2. sage: type(a)
  3. <type 'sage.rings.integer.Integer'>
  4. sage: a = 5/3 # now a is a rational number
  5. sage: type(a)
  6. <type 'sage.rings.rational.Rational'>
  7. sage: a = 'hello' # now a is a string
  8. sage: type(a)
  9. <type 'str'>

C 是静态类型语言, 所以会非常不同;一个值为整型的变量只能在作用域内保存整型的值.

Python 中一个潜在的可能混淆的地方是, 以 0 开始的数字是表示 8 进制数.

  1. sage: 011
  2. 9
  3. sage: 8 + 1
  4. 9
  5. sage: n = 011
  6. sage: n.str(8) # string representation of n in base 8
  7. '11'

这是和 C 语言是一致的.

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注