最大值:扩展嵌套求和

0x2*_*207 3 maxima

我有以下千里马代码:

m:sum(x[i],i,1,N)/N;
Run Code Online (Sandbox Code Playgroud)

然后我想计算 $m^2$。

m2:m^2, sumexpand;
Run Code Online (Sandbox Code Playgroud)

然后我得到双重求和:

sum(sum(x[i1]*x[i2],i1,1,N),i2,1,N)/N^2
Run Code Online (Sandbox Code Playgroud)

我想要实现的是将其扩展为两个总和。

第一个是sum(x[i]^2,i,1,N),第二个是rest over non-equal indices。我该怎么做?我应该如何使用 的任意权力来做到这一点m

Rob*_*ier 5

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
Run Code Online (Sandbox Code Playgroud)