- SymPy 教程
- SymPy - 首页
- SymPy - 简介
- SymPy - 安装
- SymPy - 符号计算
- SymPy - 数值
- SymPy - 符号
- SymPy - 替换
- SymPy - sympify() 函数
- SymPy - evalf() 函数
- SymPy - Lambdify() 函数
- SymPy - 逻辑表达式
- SymPy - 查询
- SymPy - 简化
- SymPy - 导数
- SymPy - 积分
- SymPy - 矩阵
- SymPy - 函数类
- SymPy - 四元数
- SymPy - 求解器
- SymPy - 绘图
- SymPy - 实体
- SymPy - 集合
- SymPy - 打印
- SymPy 有用资源
- SymPy - 快速指南
- SymPy - 有用资源
- SymPy - 讨论
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,如果表达式等于零
- -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$
binomial
此函数表示从 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
特里波那契数是整数序列,由初始项 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