在Sympy中自定义`simplify`以提供所需格式的输出,功率为2

时间:2016-06-15 11:23:02

标签: sympy

我想使用simplify中的sympy函数简化表达式,并希望以特殊格式输出

simplify("2*((2**n)+1)**2").expand(Basic=True)

但是,sympy正在向我返回以下结果:

2*2**(2*n) + 4*2**n + 2

但我希望结果采用以下格式:

2**(2*n+1) + 2**(n+2) + 2

有办法吗?

1 个答案:

答案 0 :(得分:2)

SymPy的simplify模块提供了几种简化方法:这里需要的是powsimp

from sympy import *
var('n')
a = simplify(2*((2**n)+1)**2).expand(Basic=True)
powsimp(a)

输出:2**(n + 2) + 2**(2*n + 1) + 2