SymPy - 函数类

  • 简述

    Sympy 包有 Function 类,在 sympy.core.function 模块中定义。它是所有应用数学函数的基类,也是未定义函数类的构造函数。
    以下类别的函数继承自 Function 类 -
    • 复数函数
    • 三角函数
    • 整数函数
    • 组合函数
    • 其他杂项功能
  • 复数函数

    这组函数定义在sympy.functions.elementary.complexes模块。
    re
    该函数返回表达式的实部 -
    
    
    >>> from sympy import * 
    
    >>> re(5+3*I)
    
    
    上述代码片段的输出如下 -
    5
    
    
    >>> re(I)
    
    
    上述代码片段的输出是 -
    0
    Im
    此函数返回表达式的虚部 -
    
    
    >>> im(5+3*I)
    
    
    上述代码片段的输出如下 -
    3
    
    
    >>> im(I)
    
    
    上述代码片段的输出如下 -
    1
    sign
    此函数返回表达式的复数符号。
    对于真正的表达,标志将是 -
    • 1 如果表达式为正
    • 0 如果表达式等于 0
    • -1 如果表达式为负
    如果表达式是虚构的,则返回的符号是 -
    • I 如果 im(表达式) 为正
    • -I 如果 im(表达式) 为负
    
    
    >>> sign(1.55), sign(-1), sign(S.Zero)
    
    
    上述代码片段的输出如下 -
    (1, -1, 0)
    
    
    >>> sign (-3*I), sign(I*2)
    
    
    上述代码片段的输出如下 -
    (-I, I)
    Abs
    此函数返回复数的绝对值。它定义为复平面中原点 (0,0) 和点 (a,b) 之间的距离。此函数是内置函数 abs() 的扩展,用于接受符号值。
    
    
    >>> Abs(2+3*I)
    
    
    上述代码片段的输出如下 -
    $$\sqrt13$$
    conjugate
    此函数返回复数的共轭。为了找到复共轭,我们改变虚部的符号。
    
    
    >>> conjugate(4+7*I)
    
    
    执行上述代码片段后,您将获得以下输出 -
    4 - 7i
  • 三角函数

    SymPy 对所有三角比都有定义 - sin cos、tan 等以及它的逆对应物,例如 asin、acos、atan 等。这些函数计算给定角度的相应值,以弧度表示。
    
    
    >>> sin(pi/2), cos(pi/4), tan(pi/6)
    
    
    上述代码片段的输出如下 -
    (1, sqrt(2)/2, sqrt(3)/3)
    
    
    >>> asin(1), acos(sqrt(2)/2), atan(sqrt(3)/3)
    
    
    上述代码片段的输出如下 -
    (pi/2, pi/4, pi/6)
  • 整数函数

    这是一组对整数执行各种操作的函数。
    ceiling
    这是一个单变量函数,它返回不小于其参数的最小整数值。在复数的情况下,实部和虚部的上限分开。
    
    
    >>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)
    
    
    上述代码片段的输出如下 -
    (4, 7, 3 + 4*I)
    floor
    此函数返回不大于其参数的最大整数值。在复数的情况下,此函数也分别占用实部和虚部的地板。
    
    
    >>> floor(pi), floor(Rational(100,6)), floor(6.3-5.9*I)
    
    
    上述代码片段的输出如下 -
    (3, 16, 6 - 6*I)
    frac
    此函数表示 x 的小数部分。
    
    
    >>> frac(3.99), frac(Rational(10,3)), frac(10)
    
    
    上述代码片段的输出如下 -
    (0.990000000000000, 1/3, 0)
  • 组合函数

    组合学是一个数学领域,涉及有限或离散系统内的选择、排列和操作问题。
    factorial
    阶乘在组合数学中非常重要,它给出了 n 个对象可以置换的方式的数量。它象征性地表示为?!该函数是对非负整数的阶乘函数的实现,负整数的阶乘是复无穷大。
    
    
    >>> x=Symbol('x') 
    
    >>> factorial(x)
    
    
    上述代码片段的输出如下 -
    x!
    
    
    >>> factorial(5)
    
    
    上述代码片段的输出如下 -
    120
    
    
    >>> factorial(-1)
    
    
    上述代码片段的输出如下 -
    $$\infty\backsim$$
  • 二项式

    这个函数表示我们可以从 n 个元素的集合中选择 k 个元素的方法的数量。
    
    
    >>> x,y=symbols('x y') 
    
    >>> binomial(x,y)
    
    
    上述代码片段的输出如下 -
    $$(\frac{x}{y})$$
    
    
    >>> binomial(4,2)
    
    
    上述代码片段的输出如下 -
    6
    帕斯卡三角形的行可以用二项式函数生成。
    
    
    >>> for i in range(5): print ([binomial(i,j) for j in range(i+1)])
    
    
    执行上述代码片段后,您将获得以下输出 -
    [1]
    [1, 1]
    [1, 2, 1]
    [1, 3, 3, 1]
    [1, 4, 6, 4, 1]
    fibonacci
    斐波那契数是由初始项 F0=0、F1=1 和两项递归关系 Fn=Fn-1+Fn-2 定义的整数序列。
    
    
    >>> [fibonacci(x) for x in range(10)]
    
    
    执行上述代码片段后获得以下输出 -
    [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
    tribonacci
    Tribonacci 数是由初始项 F0=0、F1=1、F2=1 和三项递归关系 Fn=Fn-1+Fn-2+Fn-3 定义的整数序列。
    
    
    >>> tribonacci(5, Symbol('x'))
    
    
    上面的代码片段给出了与下面的表达式等效的输出 -
    $$x^8 + 3x^5 + 3x^2$$
    
    
    >>> [tribonacci(x) for x in range(10)]
    
    
    执行上述代码片段后获得以下输出 -
    [0, 1, 1, 2, 4, 7, 13, 24, 44, 81]
  • 杂项功能

    以下是一些常用功能的列表 -
    Min− 返回列表的最小值。将其命名为 Min 是为了避免与内置函数 min 发生冲突。
    Max− 返回列表的最大值。将其命名为 Max 是为了避免与内置函数 max 发生冲突。
    root− 返回 x 的第 n 个根。
    sqrt− 返回 x 的主平方根。
    cbrt− 此函数计算 x 的主立方根(x++Rational(1,3) 的快捷方式)。
    以下是上述杂项功能及其各自输出的示例 -
    
    
    >>> Min(pi,E)
    
    
    e
    
    
    >>> Max(5, Rational(11,2))
    
    
    $$\frac{11}{2}$$
    
    
    >>> root(7,Rational(1,2))
    
    
    49
    
    
    >>> sqrt(2)
    
    
    $$\sqrt2$$
    
    
    >>> cbrt(1000)
    
    
    10