SymPy – 简化
Sympy具有强大的简化数学表达式的能力。在SymPy中,有许多函数可以进行各种类型的简化操作。其中有一个叫simplify()的通用函数,它试图得出一个表达式的最简单形式。
简化
这个函数定义在sympy.simplify模块中。 simplify()试图应用智能启发式方法来使输入的表达式 “更简单”。下面的代码显示了简化表达式。
上述代码片断给出了以下输出结果 −
1
展开
expand()是SymPy中最常用的简化函数之一,用于扩展多项式表达式。例如 –
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −
$a^2 – b^2$
expand()函数使表达式变大,而不是变小。通常情况下是这样的,但往往一个表达式在调用expand()后会变小。
上述代码片断给出了以下输出 –
-2
因子
这个函数接收一个多项式,并将其分解为有理数上的不可分解的因子。
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −
factor()函数与expand()正好相反。factor()返回的每个因子都被保证是不可还原的。factor_list()函数返回一个更有条理的输出。
上述代码片段给出的输出相当于下面的表达式-
(1, [(z, 1), (x + 2*y, 2)])
collect
这个函数收集一个表达式的加法项,相对于一个有理指数的幂级表达式的列表。
上述代码片断给出的输出等同于以下表达式 −
对这个表达式使用collect()函数的结果如下 –
上述代码片断给出的输出等同于以下表达式 −
$x^3 + x^2(2 – z) + x(y + 1) – 3$
上述代码片断给出的输出等同于以下表达式 −
cancel
cancel()函数会将任何有理函数转换成标准的典型形式,即p/q,其中p和q是无公因数的扩展多项式。p和q的前导系数没有分母,也就是说,它们是整数。
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −
ParseError: KaTeX parse error: Expected 'EOF', got '}' at position 25: …{3x}{2}}{3x}{2}}̲。- 2}{x – 4}+`f…
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −
Trigsimp
这个函数是用来简化三角函数的特性的。值得注意的是,反三角函数的命名惯例是在函数名称的前面加上一个a。例如,反余弦,或弧形余弦,被称为acos()。
2
trigsimp函数使用启发式方法来应用最合适的三角函数特性。
powersimp
这个函数通过结合具有相似基数和指数的幂来减少给定的表达式。
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −
你可以通过改变combined=’base’或combined=’exp’使powsimp()只合并基数或只合并指数。默认情况下,combined=’all’,两者都做。如果force为True,那么基数将被合并,而不检查假设。
上述代码片断给出的输出等同于以下表达式 −
$x^y(xy)^z*
combsimp
涉及阶乘和二项式的组合表达式可以通过使用combsimp()函数来简化。SymPy提供了一个阶乘()函数
上述代码片断给出的输出等同于以下表达式 −
为了简化上述组合表达式,我们使用combsimp()函数,如下所示
上述代码片断给出的输出等同于以下表达式 −
二项式(x, y)是指从一组x个不同的项目中选择y个项目的方法的数量。它也经常被写成xCy。
上述代码片断给出的输出等同于以下表达式 −
上述代码片断给出的输出等同于以下表达式 −
logcombine
这个函数采用对数,并使用以下规则将它们结合起来−
- log(x) + log(y) == log(x*y) 如果两者都是正数的话
- a*log(x) == log(x**a) 如果x是正数,a是实数
上述代码片段给出的输出相当于下面的表达式–
$a\log(x) +** \log (y) – \log **(z)$
如果这个函数的强制参数被设置为True,那么如果没有对一个数量的假设,上述的假设将被假定为成立。
上述代码片断给出的输出等同于以下表达式 −