如何解决sympy如何使用变量作为指数简化表达式
我有一个这样的表达: 4 ^ k /(12 ^ k * A + 4 ^ k * B)
Python代码是:
switch variableEntity {
case is EntityA:
print("EntityA:")
default:
print("Default:")
}
是否有任何SymPy函数可以简化表达式?类似于MAXIMA中的radcan。 我尝试了sy.simplify(C),sy.factor(C),sy.powsimp(C),sy.radsimp(C),sy.expand(C),但没有成功。
解决方法
我们需要强制使用factorint
进行整数分解:
In [46]: C
Out[46]:
k
4
────────────
k k
12 ⋅A + 4 ⋅B
In [47]: C.replace(lambda x: x.is_Integer,lambda x: Mul(*factorint(x,multiple=True),evaluate=False))
Out[47]:
k
(2⋅2)
─────────────────────
k k
A⋅(2⋅2⋅3) + B⋅(2⋅2)
In [48]: expand(_)
Out[48]:
2⋅k
2
──────────────────
2⋅k k 2⋅k
2 ⋅3 ⋅A + 2 ⋅B
In [49]: cancel(_)
Out[49]:
1
────────
k
3 ⋅A + B
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。