SymPy - 符号类
Symbol 是 symPy 库中最重要的类. 正如前面提及的, 符号计算是通过 symbol对象进行的. SymPy 变量是 Symbols 类中的对象.
函数 Symbol() 的参数是包含符号的字符串, 可以为一个变量赋值.
>>> from sympy import Symbol >>> x=Symbol('x') >>> y=Symbol('y') >>> expr=x**2+y**2 >>> expr
上面的代码给出的结果等价于 −
一个符号 symbol 可以包含多个字符.
>>> s=Symbol('side') >>> s**3
上述代码输出为 −
SymPy 也有一个函数 Symbols() 可以一次性定义多个符号. 包含变量名的字符串用逗号或者空格分割.
>>> from sympy import symbols >>> x,y,z=symbols("x,y,z")
在 SymPy 的 abc 模块中, 所有的拉丁字母 Latin 和希腊字母 Greek 定义为符号 symbols. 因此, 相对于 Symbol 对象的实例化, 这种方法是便利的.
>>> from sympy.abc import x,y,z
然而, 变量名 C, O, S, I, N, E 和 Q 是系统预先定义了的符号 symbols. 另外, 多个字母的符号在 abc 模块中没有定义, 此类对象你需要如前面的方法定义,即用 Symbol 对象. abc模块定义两个特殊变量名可以检测缺省SymPy名称空间的定义. clash1 包括单个字符变量而 clash2 包含多个字符的变量
>>> from sympy.abc import _clash1, _clash2 >>> _clash1
上述命令的输出 −
{'C': C, 'O': O, 'Q': Q, 'N': N, 'I': I, 'E': E, 'S': S}
>>> _clash2
输出为 −
{'beta': beta, 'zeta': zeta, 'gamma': gamma, 'pi': pi}
也可以定义有索引符号的符号变量, 语法类似于 range() 函数. 范围由冒号定义. 范围的类型由冒号右边的字符决定. 如果 itr 是一个数字, 那么从零开始到比它少一的连续范围的值都会取到.
>>> from sympy import symbols >>> symbols('a:5')
上述命令的输出 −
(a0, a1, a2, a3, a4)
>>> symbols('mark(1:4)')
输出是 −
(mark1, mark2, mark3)
SymPy - 代换
数学表达式上执行的一种最基本操作就是代换. SymPy中的函数 subs() 将第一个参数用第二个参数替换.
>>> from sympy.abc import x,a >>> expr=sin(x)*sin(x)+cos(x)*co