SymPy:针对符号计算的Python第三方库,支持高精度计算,符号计算,离散数学,几何学,概率与统计,物理学等内容。
pip install sympy
安装好之后可以使用以下代码导入:
from sympy import Eq
Eq方法来创建符号方程式,括号里面有两个参数,Eq(参数1,参数2):参数1是等号左侧的式子,参数2是等号右侧的式子,如以下代码:
fx = Eq(5*x + 24, 89)
# 以上代码生成的方程式是 5x+24=89
但是如果运行以上代码, 就会报错,报错信息是 x 未定义,所以我们要在开头加上这一行代码:
from sympy.abc import x
使用sympy.abc库中导入 x 符号,这个 x 是方程中要用到的符号,不是程序中的变量,可以导入的符号是26个英文字母的大小写,如果要导入多个符号,需要使用逗号进行隔开,例如:
from sympy.abc import a, b, c, x, y, z
之前生成的方程式子只是一个式子,将他输出并不会得到结果,所以我们要调用 solve 方法。
solve(fx, x)
solve 有两个参数,第一个是方程式,第二个是需要解的未知数。
解方程只是 sympy 的一个功能,这个库还能解不等式:
result = reduce_inequalities(x < 8 + 6)
# 这个代码是解 x<8+6 中 x 的值
reduce_inequalities([参数1,参数2......]):功能就是解不等式组,参数是不等式的表达式,有多个不等式的时候,需要写多个参数,是列表的格式 ,如果只有一个不等式,则不需要加上列表。
如上面一行代码的运行结果是:
(-oo < x) & (x < 14)
其中 -oo 是负无穷的意思, oo 是正无穷的意思,& 是与的意思。
上列代码是解不等式,下列代码解的是解不等式组:
result = reduce_inequalities([x < 8 + 6, x > 3 * 3.5])
结果为:
(10.5 < x) & (x < 14.0)