Maple 中索引变量的导数

Derivatives of indexed variables in Maple

考虑 N 个变量,x_1,x_2,...,x_N。给定 i < N 且 j < N,它成立 dx_i/dx_j=delta_i,j,即当 i=j 时导数为 1,否则为 0。

虽然 diff(x[i],x[i]) returns 1,不幸的是 diff(x[i],x[j]) returns 0 而不是 delta_i,j 和 sum(diff(x[i],x[j]),j=1..N) returns 0 而不是 1.

有没有办法在不指定 N 值的情况下得到正确的导数? IE。一种可用于对任何 N.

成立的计算的方法

常规 diff() 命令以文字方式处理参数。但是,您可以尝试 Physics 包,并将指标视为 Kronecker delta:

restart;
with( Physics ):
Setup( metric = Euclidean ):
Define( x ):

f := diff( Sum( a[i] * x[i], i=1..N ), x[j] );
Simplify( eval( f, g_=KroneckerDelta ) ) assuming j >= 1 and j <= N; # returns a[j]