Kronecker增量的符号简化和

编程入门 行业动态 更新时间:2024-10-14 10:39:58
本文介绍了Kronecker增量的符号简化和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如何以渐近形式简化Kronecker Delta表达式的和?

例如考虑Sum(KroneckerDelta(i,j),(i,0,n-1))或Sum(KroneckerDelta(i, j, (0, n - 1)), (i, 0, n - 1)):

from sympy import * from sympy.concrete.delta import _simplify_delta n = symbols('n') j = tensor.Idx('j') i = tensor.Idx('i') _simplify_delta(simplify(Sum(KroneckerDelta(i,j),(i,0,n-1)))) _simplify_delta(simplify(Sum(KroneckerDelta(i,j,(0,n-1)),(i,0,n-1))))

输出Sum(KroneckerDelta(i, j), (i, 0, n - 1))和Sum(KroneckerDelta(i, j, (0, n - 1)), (i, 0, n - 1))

如果j被约束为介于0和n-1之间(我如何判断出现的症状?),则应该减少到1,这发生在i==j处。此外,如果求和比较复杂,我预计它会删除sum,并将sum变量i替换为变量j。

此外,我对KroneckerDelta函数的各种近似简化的资源感兴趣。我最近发现了如何在渐近中执行隐式矩阵微分,KroneckerDelta函数随处可见。

编辑:我找到了一个解决方案。它不是自动的。 我使用help(sympy.concrete.delta)找到了simy.concrete.Delta中的更多函数。如果我们复制结果表达式并将Sum替换为sympy.concrete.delta.deltasummation,则会发生所需的简化。我仍然很好奇是否有一个Delta简化包可以自动尝试所有这些事情。

推荐答案

可以使用Sum().doit()或summation计算求和:

In [1]: from sympy import * ...: from sympy.concrete.delta import _simplify_delta ...: ...: n = symbols("n") ...: j = tensor.Idx("j") ...: i = tensor.Idx("i") In [2]: s = Sum(KroneckerDelta(i, j), (i, 0, n - 1)) In [3]: s Out[3]: n - 1 ___ ╲ ╲ δ ╱ i,j ╱ ‾‾‾ i = 0 In [4]: s.doit() Out[4]: ⎧1 for j ≥ 0 ∧ j ≤ n - 1 ⎨ ⎩0 otherwise In [5]: summation(KroneckerDelta(i, j), (i, 0, n - 1)) Out[5]: ⎧1 for j ≥ 0 ∧ j ≤ n - 1 ⎨ ⎩0 otherwise 虽然您可以使用j = symbols('j', nonnegative=True)来指定j>=0,但目前还没有在假设中指定j<=n-1的方法。您也可以手动将这些条件替换为True,例如:

In [8]: s.doit().subs({j >= 0: True, j <= n-1: True}) Out[8]: 1

给出KroneckerDelta界限的第二个求和将自动计算:

In [11]: s2 = Sum(KroneckerDelta(i, j, (0, n - 1)), (i, 0, n - 1)) In [12]: s2 Out[12]: n - 1 ___ ╲ ╲ δ ╱ i,j ╱ ‾‾‾ i = 0 In [13]: s2.doit() Out[13]: 1

更多推荐

Kronecker增量的符号简化和

本文发布于:2023-11-30 09:18:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1649479.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:增量   符号   Kronecker

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!