sympy - 为什么 sympy 不能简化索引变量的这些 Sum 表达式
问题描述
我已经达到了 SymPy 的限制。在尝试一个小项目的过程中,我注意到 SymPy 无法简化以下表达式
n, N = symbols('n N', cls=Idx)
x = IndexedBase('x')
eq = Sum(x[n], (n, 0, N)) - Sum(x[n], (n, 0, N-1))
simplify(eq)
输出很简单
这应该可以“简化”为简单的 X N
我尝试用 Symbol(, integer=True) 替换其中之一和两者,n
以及N
添加假设“正”和“非零”的所有组合。我也尝试过让 X 成为一个函数
N = symbols('N', cls=Idx)
n = Symbol('n')
x = Function('x')
eq = Sum(x(n), (n, 0, N)) - Sum(x(n), (n, 0, N-1))
simplify(eq)
无论哪种方式 SymPy 都无法识别可能的简化
有什么办法可以让 SymPy 能够进行这种简化吗?我可以添加一个假设吗?还有其他功能可以简化吗?
更新:在 SymPy github 上打开了一个问题,要求实现此功能。任何新信息都将在此处更新。
解决方案
正如 Oscar Benjamin 在评论中所指出的,这只是一个没有实施的案例。就目前而言,我还没有找到解决这个问题的任何好方法,所以如果其他人遇到同样的问题,我建议只是等待实现这个的更新,或者如果这是一个交易破坏者,试图找到另一个可以处理此用例的库。
推荐阅读
- docker - NextJS 和 Strapi 码头化
- python - 我们如何在 Python 中的引号内使用变量?
- image - 位图未在 kotlin 中的 58mm 热敏打印机的对齐中心打印
- python - 使用 Python 3.6 对 Lambda 函数提出 AWS Pinpoint 请求
- r - R:如何使用函数来创建新的数据框?
- postgresql - 从 postgres 14 beta 升级到 postgres 14 新版本
- android - Android SDK 28:无法获得访问 uvc usb 摄像头的 usbhost 权限
- kubernetes-helm - 使用 oci 注册表提取 helm 图表
- bash - 使用 set-output 作为工作流命令失败,退出代码为 3
- vba - 如何调用以 CSV/TEXT 文件格式存储的数据到范围