如何替换聚合表达式

时间:2011-02-12 03:29:59

标签: wolfram-mathematica

例如,我有符号

1/n*Sum[ee[k] + 1, {k, j, n}]^2

我希望将Sum[ee[k], {k, j+1, n}]替换为x。我怎样才能做到这一点?谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

您可以使用总和的递归关系。例如:

f[j] := f[j + 1] + (ee[j] + 1);

1/N f[j]^2 /. f[j + 1] -> x  

(1 + x + ee[j])^2/N   

修改

基于您发布的几个问题,我认为您在某种程度上误解了Replace []命令的作用。它不是基于“代数”的,而是基于“模式”的。它不理解也不使用比已经定义的更多的代数变换(由你或Mma本身)。

例如:

x/. (x-1)->y  

不匹配任何东西。但是

(x-1) /. x->y-1  

会给你(y-2)因为模式 x匹配。

此外:

x = 3;
(x - 1) /. x -> y - 1  

将为您提供 2 ,因为在可能的匹配之前评估x,并且还评估模式中的x(只需粘贴,执行并查看符号颜色)。

答案 1 :(得分:1)

1/N*Sum[ee[k] + 1, {k, j, N}]^2 /. Sum[ee[k] + 1, {k, j, N}] -> x

这不起作用,还是我误解了?顺便说一句,你不应该使用N作为变量。这是Mathematica的功能。