Maxima中Series化简疑问:求和表达式为何无法得到n+1?
Maxima求和表达式化简问题解答
问题核心
执行以下代码无法得到预期结果n+1的原因:
sum(k, k, 1, n+1)-sum(k, k, 1, n),simpsum; collect(sum(k, k, 1, n+1)-sum(k, k, 1, n));
原因分析
simpsum的局限性:simpsum默认不会主动识别两个求和的重叠区间并抵消项,它优先尝试对单个求和式求闭式解,但当求和上限是n+1和n时,Maxima的默认简化规则不会触发“相邻求和相减仅保留新增项”的逻辑,只会保留原求和表达式的形式。collect的适用场景错误:collect是用来合并同类项的工具,仅对已展开或有明确同类项的表达式有效。未求值的求和式不属于同类项范畴,因此collect无法对其进行化简。
正确的化简方式
要得到n+1,可以通过以下两种方式:
- 开启
sumexpand选项强制展开求和的差:
sum(k, k, 1, n+1) - sum(k, k, 1, n), sumexpand=true;
- 先分别展开两个求和的闭式表达式再做减法:
expand(sum(k, k, 1, n+1)) - expand(sum(k, k, 1, n));
内容的提问来源于stack exchange,提问作者moueza
相关产品推荐
相关产品推荐

