Function 极大值函数内和的运算
我试图用极大值,解析地计算反向传播的导数。所以我写:Function 极大值函数内和的运算,function,sum,backpropagation,maxima,Function,Sum,Backpropagation,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]*
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));
它返回零,而它应该返回
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在这方面稍微“聪明”一点,即让它计算某些指数的导数,并在与输入冲突时自动更改字母?关于
diff(x1(i),w[i,m])
之类的东西,不幸的是maxima无法处理它。我在区分索引变量方面取得了一些进展,但它只适用于一个索引,而不是两个索引,正如您在这里所做的那样。如果我有时间,我会把它扩展到两个指数,但简单的回答是,恐怕不行
sum_j1=1^N w[j,j1] * x0[j1]