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
    numerator:3, denominator: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
    Infinity 可用作 oo 符号对象或 S.Infinity
    
    >>> from sympy import oo 
    >>> oo
    
    上述代码片段的输出如下 -
    $$\infty$$
    
    >>> S.Infinity
    
    上述代码片段的输出如下 -
    $$\infty$$
    ImaginaryUnit 编号可以作为 I 符号导入或作为 S.ImaginaryUnit 访问,表示 -1 的平方根
    
    >>> from sympy import I 
    >>> I
    
    当您执行上面的代码片段时,您会得到以下输出 -
    i
    
    >>> S.ImaginaryUnit
    
    上述代码段的输出如下 -
    i
    
    >>> from sympy import sqrt 
    >>> i=sqrt(-1) 
    >>> i*i
    
    当您执行上面的代码片段时,您会得到以下输出 -
    -1