3.2.1 SymPy第一步
3.2.1.1 使用SymPy作为计算器
SymPy定义了三种数字类型:实数、有理数和整数。
有理数类将有理数表征为两个整数对: 分子和分母,因此Rational(1,2)代表1/2, Rational(5,2)代表5/2等等:
In [2]:
from sympy import *
a = Rational(1,2)
In [2]:
a
Out[2]:
1/2
In [3]:
a*2
Out[3]:
1
SymPy在底层使用mpmath, 这使它可以用任意精度的算术进行计算。这样,一些特殊的常数,比如e, pi, oo (无限), 可以被作为符号处理并且可以以任意精度来评估:
In [4]:
pi**2
Out[4]:
pi**2
In [5]:
pi.evalf()
Out[5]:
3.14159265358979
In [6]:
(pi + exp(1)).evalf()
Out[6]:
5.85987448204884
如你所见,将表达式评估为浮点数。
也有一个类代表数学的无限, 称为 oo:
In [7]:
oo > 99999
Out[7]:
True
In [8]:
oo + 1
Out[8]:
oo
3.2.1.2 练习
- 计算 $\sqrt{2}$ 小数点后一百位。
- 用有理数算术计算1/2 + 1/3 in rational arithmetic.
3.2.1.3 符号
与其他计算机代数系统不同,在SymPy你需要显性声明符号变量:
In [4]:
from sympy import *
x = Symbol('x')
y = Symbol('y')
然后你可以计算他们:
In [10]:
x + y + x - y
Out[10]:
2*x
In [11]:
(x + y)**2
Out[11]:
(x + y)**2
符号可以使用一些Python操作符操作: +, -, , * (算术), &, |, ~ , >>, << (布尔逻辑).
打印 这里我们使用下列设置打印
In [ ]:
sympy.init_printing(use_unicode=False, wrap_line=True)