我有一个表达式如下:
from sympy import *
x = symbols('x')
ex = 2+2*x
我想从表达式中分解出 -2
。我尝试使用 .factor()
方法进行因子分解,这就是我得到的结果:
ex.factor()
>>> 2*(x + 1)
如何明确设置我想在 sympy
中使用的因子?
最佳答案
下面介绍了如何用任意数字对表达式进行因式分解。它可以是 python int 或 Sympy 数字。假设我们想将 2 + 2*x 分解为 3/7:
def factor_by_num(expr,num):
if not expr.is_Add:
return None
if isinstance(num,int):
num_int = Integer(num)
divisor = Rational(1,num)
elif hasattr(num,'is_Number'):
num_int = num
divisor= Rational(1,num)
else:
return None
factored_args = map(lambda x: Mul(divisor,x),expr.args)
return Mul(num_int,Add(*factored_args),evaluate=False)
x=Symbol('x')
ex = 2+2*x
ex_f = factor_by_num(ex,Rational(3,7))
这应该可以解决问题
关于python - 使用 sympy 分解出特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53847341/