Skip to main content
added 6 characters in body
Source Link
R zu
  • 349
  • 1
  • 8

Use //. to apply a list of rules exhaustively (doc).

SimplifyKronecker[expr_]SimplifyKroneckerSum[expr_] = expr //. { Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}, z__] :> Sum[(y /. s -> r), z], Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}] :> (y /. s -> r)}; expr = Sum[Log[Sum[A[j, k, l]*B[j, k, l], {l, 1, L}]], {j, 1, J}, {k, 1, K}] expr = Simplify[D[expr, A[a, b, c]]] SimplifyKronecker[expr]SimplifyKroneckerSum[expr] 

Use //. to apply a list of rules exhaustively (doc).

SimplifyKronecker[expr_] = expr //. { Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}, z__] :> Sum[(y /. s -> r), z], Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}] :> (y /. s -> r)}; expr = Sum[Log[Sum[A[j, k, l]*B[j, k, l], {l, 1, L}]], {j, 1, J}, {k, 1, K}] expr = Simplify[D[expr, A[a, b, c]]] SimplifyKronecker[expr] 

Use //. to apply a list of rules exhaustively (doc).

SimplifyKroneckerSum[expr_] = expr //. { Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}, z__] :> Sum[(y /. s -> r), z], Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}] :> (y /. s -> r)}; expr = Sum[Log[Sum[A[j, k, l]*B[j, k, l], {l, 1, L}]], {j, 1, J}, {k, 1, K}] expr = Simplify[D[expr, A[a, b, c]]] SimplifyKroneckerSum[expr] 
Source Link
R zu
  • 349
  • 1
  • 8

Use //. to apply a list of rules exhaustively (doc).

SimplifyKronecker[expr_] = expr //. { Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}, z__] :> Sum[(y /. s -> r), z], Sum[y_ KroneckerDelta[r_, s_], {s_, 1, p_}] :> (y /. s -> r)}; expr = Sum[Log[Sum[A[j, k, l]*B[j, k, l], {l, 1, L}]], {j, 1, J}, {k, 1, K}] expr = Simplify[D[expr, A[a, b, c]]] SimplifyKronecker[expr]