两个整数n,m
的kronecker符号定义为1
n=m
和0
。
枫树中是否有内置的kronecker符号或实现它的简单方法?
很抱歉,如果我应该忽略一些微不足道的事情,那么枫木主页现在已经关闭了,谷歌没有回复任何有用的东西。
修改:我刚发现了一些有用的内容here:
restart:
delta := table(symmetric,identity);
simplify(delta[1,2]);
simplify(delta[1,1]);
delta := TABLE(symmetric, identity, [])
0
1
然而,它似乎并不简化甚至包含符号的简单表达式:
simplify(delta[n,n]);
simplify(delta[n,n+1]);
delta[n, n]
delta[n, n + 1]
分别希望获得1
和0
。
编辑2:我也是这样尝试的:
restart:
delta := proc(n,m):
if n=m then 1 else 0 fi;
end;
delta(1,2);
delta(1,1);
delta(n,n);
0
1
1
然而,对于符号来说,这也很糟糕,如
delta(n,m);
返回0
。
答案 0 :(得分:3)
试试这个
delta:=(m,n) - >
`if`(evalb(m
答案 1 :(得分:1)
KroneckerDelta包中有一个名为Physics的内置函数。试试这个
with(Physics):
KroneckerDelta[i,j];
其中i和j取整数值。当i = j时,这给出1,当i = / = j时,这给出0。
答案 2 :(得分:0)
我更喜欢这样的事情:delta:=(mu,nu)->eval(evalb(mu=nu),[true=1,false=0])