如何解决带索引变量的符号向量范数
我想表达两个索引变量差异的向量范数。在数学符号中,我所追求的是:
|| x_a - y_b ||
其中 x
和 y
是某个空间中的点集。在 Sympy 中,我设法创建了变量:
x = sp.IndexedBase('x')
a = sp.Idx('a')
y = sp.IndexedBase('y')
b = sp.Idx('b')
并表达一个简单的区别:
diff = (x[a] - y[b])
但是我怎么能表达规范呢?似乎我发现的每一个计算范数的参考都会导致矩阵。变量确实代表向量,但我并不真正关心维度。
是否有索引矩阵,我应该使用矩阵列并只选择一个维度,还是有其他方法来制定规范?
编辑:
我取得了一些进展,并尝试使用两个向量共有的另一个索引来实现,即假定的维度。
N,D = sp.symbols('N D',integer=True)
d = sp.Idx('d',D)
x = sp.IndexedBase('x')
a = sp.Idx('a',N)
y = sp.IndexedBase('y')
b = sp.Idx('b',N)
norm = sp.sqrt(sp.Sum((x[a,d] - y[b,d]) ** 2,(d,D - 1)))
这确实有效,但我不能做的是例如相对于减少的索引 x[a]
进行区分。在我看来,该表达式中的 d
索引应该减少,特别是因为定义了维度并且求和是在整个范围内完成的。我还缺少什么吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。