SymPy 函数类

SymPy 函数类

SymPy包中有一个函数类(Function class),它定义在sympy.core.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,如果表达式等于零
  • -1,如果表达式为负数

如果表达式是虚数,返回的符号为-

  • I,如果im(expression)为正数
  • -I,如果im(expression)为负数
>>> 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)

上面代码片段的输出如下:

√13

conjugate

该函数返回一个复数的共轭。要找到复数的共轭,我们改变虚部的符号。

>>> conjugate(4+7*I)

在执行以上代码片段后,您将获得以下输出 –

4 – 7 i

三角函数

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。

>>> ceiling(pi), ceiling(Rational(20,3)), ceiling(2.6+3.3*I)

上述代码段的输出如下所示 –

(4, 7, 3 + 4*I)

floor

此函数返回不大于其参数的最大整数值。在复数的情况下,此函数会分别取实部和虚部的 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)

组合函数

组合数学是数学的一个领域,涉及有限或离散系统中的选择、排列和操作问题。

阶乘

阶乘在组合数学中非常重要,它给出了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)

√2

>>> cbrt(1000)

10

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程