如果在我创建的一个很好的示例上使用sqf()
函数或sqf_list()
函数,它会给出一个很好的结果。例如:
v = (x1 + 2) ** 2 * (x2 + 4) ** 5
sqf(v) = (1, [(x1 + 2, 2), (x2 + 4, 5)])
但是如果我第一次使用v = poly(v)
,它只会发现=(1, [(Poly(x1 + 2, x1, x2, domain='ZZ'), 2)])
这是故意的行为吗?我认为这是社会转型的结果
v = (x1 + 2) ^ 2 * (x2 + 4) ^ 5
进入
v = Poly(x1^2*x2^5 + 20*x1^2*x2^4 + 160*x1^2*x2^3 + 640*x1^2*x2^2 + 1280*x1^2*x2 + 1024*x1^2 + 4*x1*x2^5 + 80*x1*x2^4 + 640*x1*x2^3 + 2560*x1*x2^2 + 5120*x1*x2 + 4096*x1 + 4*x2^5 + 80*x2^4 + 640*x2^3 + 2560*x2^2 + 5120*x2 + 4096, x1, x2, domain='ZZ')
有什么方法可以从变换后的v中得到真实的结果吗?或者,如果这是不可能的,看看它打印出一个'错误'(?)的结果
在解决此问题之前,一个简单的解决方法是:
或者,您可以确保在将单变量表达式传递给
sqf
之前使用单变量表达式,方法是分离变量:写
mvsqf_list
留给感兴趣的读者作为练习相关问题 更多 >
编程相关推荐