我有以下问题 - 我需要最小化枫树中的总和。例如,假设我有这个:
表达式:=A[0]+A[1]+A[2]+A[3]+A[4]+A[5];
我想使用一些功能
一些函数(表达式);
这将返回 Sum 的符号(如 sum(A[i], i = 0 .. 5));
有这样的功能吗?
我有以下问题 - 我需要最小化枫树中的总和。例如,假设我有这个:
表达式:=A[0]+A[1]+A[2]+A[3]+A[4]+A[5];
我想使用一些功能
一些函数(表达式);
这将返回 Sum 的符号(如 sum(A[i], i = 0 .. 5));
有这样的功能吗?
好的,我想您需要一些东西来压缩现有的表达式。如果您愿意指定总和、索引和索引范围,那么 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);
使用Sum(A[i], i= 0..5)
注意 Sum 是大写的。我意识到这不能处理表达式已经存在的情况,这可能是您主要感兴趣的。