3.2.1 SymPy第一步

3.2.1.1 使用SymPy作为计算器

SymPy定义了三种数字类型:实数、有理数和整数。

有理数类将有理数表征为两个整数对: 分子和分母,因此Rational(1,2)代表1/2, Rational(5,2)代表5/2等等:

In [2]:

  1. from sympy import *
  2. a = Rational(1,2)

In [2]:

  1. a

Out[2]:

  1. 1/2

In [3]:

  1. a*2

Out[3]:

  1. 1

SymPy在底层使用mpmath, 这使它可以用任意精度的算术进行计算。这样,一些特殊的常数,比如e, pi, oo (无限), 可以被作为符号处理并且可以以任意精度来评估:

In [4]:

  1. pi**2

Out[4]:

  1. pi**2

In [5]:

  1. pi.evalf()

Out[5]:

  1. 3.14159265358979

In [6]:

  1. (pi + exp(1)).evalf()

Out[6]:

  1. 5.85987448204884

如你所见,将表达式评估为浮点数。

也有一个类代表数学的无限, 称为 oo:

In [7]:

  1. oo > 99999

Out[7]:

  1. True

In [8]:

  1. oo + 1

Out[8]:

  1. oo

3.2.1.2 练习

  • 计算 $\sqrt{2}$ 小数点后一百位。
  • 用有理数算术计算1/2 + 1/3 in rational arithmetic.

3.2.1.3 符号

与其他计算机代数系统不同,在SymPy你需要显性声明符号变量:

In [4]:

  1. from sympy import *
  2. x = Symbol('x')
  3. y = Symbol('y')

然后你可以计算他们:

In [10]:

  1. x + y + x - y

Out[10]:

  1. 2*x

In [11]:

  1. (x + y)**2

Out[11]:

  1. (x + y)**2

符号可以使用一些Python操作符操作: +, -, , * (算术), &, |, ~ , >>, << (布尔逻辑).

打印 这里我们使用下列设置打印

In [ ]:

  1. sympy.init_printing(use_unicode=False, wrap_line=True)