Python sympy 用例 备查
# 定义变量
x, y = sympy.symbols("x,y")
# 定义公式
f = 2*x+2*(x+y)*x+x**0
# 输出合并后方程
print(f)
输出:
x*(2*x + 2*y) + 2*x + 1
==================================================
# 禁止交换位置
x, y = sympy.symbols("x,y", commutative=False)
print(x*y)
print(y*x)
输出:
x*y
y*x
==================================================
# 动态方程(字符串转方程)
vftest = "2*x+2*(x+y)"
print(eval(vftest))
输出:
4*x + 2*y
==================================================
# 定义变量
x = sympy.symbols("x")
# 公式展开用expand方法
f = (1+2*x)*x**2
ff = sympy.expand(f)
print(ff)
# 公式折叠用factor方法
f = x**2+1+2*x
ff = sympy.factor(f)
print(ff)
输出:
2*x**3 + x**2
(x + 1)**2
==================================================
# 定义变量
x = sympy.symbols("x")
# 公式展开用apart方法,和expand区别不是很大,常用于分数进行分离
f = (x+2)/(x+1)
ff = sympy.apart(f)
print(ff)
# 公式折叠用tegother方法,常用于分数
f = (1/x+1/y)
ff = sympy.together(f)
print(ff)
输出:
1 + 1/(x + 1)
(x + y)/(x*y)
==================================================
# 通分
f = sympy.cancel(f)
# n的阶乘
f = sympy.factorial(n)
# 查看表达式
print(sympy.srepr(f))
==================================================
元素替换
x, y, z = sympy.symbols("x,y,z")
# 公式中的项 x 替换为 y
f = f.subs(x,y)
# 公式中符合 x*y 的部分替换为 z
f = f.subs(x*y,z)