SymPy 数字
SymPy包中的核心模块包含Number类,它表示原子数字。这个类有两个子类:Float和Rational类。Rational类进一步扩展了Integer类。
Float类表示任意精度的浮点数。
>>> from sympy import Float
>>> Float(6.32)
上面代码片段的输出如下:
6.32
SymPy可以将整数或字符串转换为浮点数。
>>> Float(10)
10.0
Float('1.33E5')# scientific notation
133000.0
转换为浮点数时,也可以指定精度的位数如下所示 −
>>> Float(1.33333,2)
上面代码段的输出如下:
1.3
一个数字(p/q)的表示被表示为Rational类的对象,其中q是一个非零数字。
>>> Rational(3/4)
上述代码片段的输出如下所示:
\frac{3}{4}
如果将浮点数传递给Rational()构造函数,它返回其二进制表示的基础值。
>>> Rational(0.2)
上述代码段的输出如下:
\frac{3602879701896397}{18014398509481984}
为了更简洁地表示,可以指定分母的限制。
>>> Rational(0.2).limit_denominator(100)
上述代码片段的输出如下:
\frac{1}{5}
当将字符串传递给Rational()构造函数时,将返回一个任意精度的有理数。
>>> Rational("3.65")
上面代码片段的输出如下 −
\frac{73}{20}
如果传递了两个数字参数,也可以获得有理数对象。分子和分母部分可以通过属性获得。
>>> a=Rational(3,5)
>>> print (a)
>>> print ("numerator:{}, denominator:{}".format(a.p, a.q))
上面代码片段的输出如下:
3/5
分子:3,分母:5
>>> a
上面代码片段的输出如下所示 −
\frac{3}{5}
SymPy中的整数类代表任意大小的整数。构造函数可以接受浮点数或有理数,但会丢弃分数部分。
>>> Integer(10)
以上代码片段的输出如下:
10
>>> Integer(3.4)
上述代码段的输出如下所示 −
3
>>> Integer(2/7)
上面代码片段的输出如下 –
0
SymPy有一个 RealNumber 类,该类充当Float的别名。SymPy还将Zero和One定义为单例类,可以通过S.Zero和S.One分别访问,示例如下 –
>>> S.Zero
输出如下:
0
>>> S.One
输出如下-
1
其他预定义的单例数字对象是Half、NaN、Infinity和ImaginaryUnit
>>> from sympy import S
>>> print (S.Half)
输出如下 –
½
>>> print (S.NaN)
输出如下:
nan
无穷大可以表示为oo符号对象或S.Infinity
>>> from sympy import oo
>>> oo
以上代码片段的输出如下 – \infty
>>> S.Infinity
将上述代码片段的输出如下所示 −
\infty
ImaginaryUnit number可以作为I符号导入或作为S.ImaginaryUnit访问,它代表-1的平方根。
>>> from sympy import I
>>> I
当您执行上述代码片段时,您将获得以下输出− i
>>> S.ImaginaryUnit
上面代码段的输出如下所示−
i
>>> from sympy import sqrt
>>> i=sqrt(-1)
>>> i*i
当您执行上述代码片段时,您将获得以下输出−
-1