我有以下Maxima代码:
m:sum(x[i],i,1,N)/N;
然后我想计算$ m ^ 2 $。
m2:m^2, sumexpand;
然后我得到双倍总结:
sum(sum(x[i1]*x[i2],i1,1,N),i2,1,N)/N^2
我想要实现的是将它扩展为两个总和。
第一个是sum(x[i]^2,i,1,N)
,第二个是rest over non-equal indices
。我该怎么办?我应该如何以m
的任意力量做到这一点?
答案 0 :(得分:4)
sum
未声明为线性;你可以声明它是线性的并且重新简化。请注意,要获得预期效果,您必须声明sum
的名词形式。
(%i1) m:sum(x[i],i,1,N)/N;
N
====
\
> x
/ i
====
i = 1
(%o1) --------
N
(%i2) m2:m^2, sumexpand;
N N
==== ====
\ \
> > x x
/ / i1 i2
==== ====
i1 = 1 i2 = 1
(%o2) ---------------------
2
N
(%i3) declare (nounify(sum), linear);
(%o3) done
(%i4) ''%o2;
N N
==== ====
\ \
( > x ) > x
/ i1 / i2
==== ====
i1 = 1 i2 = 1
(%o4) -----------------------
2
N