Maxima中函数内的和的运算

时间:2014-10-23 14:14:04

标签: function sum backpropagation maxima

我正在尝试使用Maxima计算衍生物,如分析反向传播。所以我写道:

declare(N,[scalar,integer]);
declare(i,[scalar,integer]);
declare(j,[scalar,integer]);
declare(m,[scalar,integer]);
declare(n,[scalar,integer]);
assume(N>10);
assume(i<=N,j<=N,m<=N,n<=N);
x1(i):=f(sum(w[i,j]*x0[j],j,1,N));

现在我正在尝试评估:

diff(x1(i),w[i,m])

并且它返回零,而它应该返回

f(...) * x0[m]

此外,我注意到x1(j)返回

sum_j=1^N w[j,j] * x0[j]

虽然我希望它将内部索引从j更改为其他字母,例如j1并返回

sum_j1=1^N w[j,j1] * x0[j1]

有没有办法让maxima在这方面稍微“更聪明”,即使它计算某些indeces的衍生物,并在与输入发生冲突时自动更改字母?

1 个答案:

答案 0 :(得分:1)

关于像diff(x1(i),w[i,m])这样的内容,遗憾的是Maxima无法处理它。我在区分索引变量方面取得了一些进展,但它只适用于一个索引,而不是两个索引,就像你在这里一样。如果我有时间,我会努力将其扩展到两个指数,但简短的回答是,我担心,它无法完成。