0

我有以下问题 - 我需要最小化枫树中的总和。例如,假设我有这个:

表达式:=A[0]+A[1]+A[2]+A[3]+A[4]+A[5];

我想使用一些功能

一些函数(表达式);

这将返回 Sum 的符号(如 sum(A[i], i = 0 .. 5));

有这样的功能吗?

4

2 回答 2

2

好的,我想您需要一些东西来压缩现有的表达式。如果您愿意指定总和、索引和索引范围,那么 someFunction 可以减去这些术语并添加这些术语的(未评估的)总和。

convert_to_Sum:= (ex, summand, index)->
    simplify(ex - sum(summand, index) + Sum(summand, index))
;

例子:

ex:= A[0]+A[1]+A[2]+A[3]+A[4]+A[5];
convert_to_Sum(ex, A[i], i= 0..5);
于 2013-06-09T19:53:23.493 回答
1

使用Sum(A[i], i= 0..5) 注意 Sum 是大写的。我意识到这不能处理表达式已经存在的情况,这可能是您主要感兴趣的。

于 2013-06-09T17:57:30.180 回答