矩阵乘最大值估计
给定矩阵乘积C = A*B
,是否有N^2
方法来估计C中的最大值?或者更确切地说,什么是这样做的好方法?
Given matrix product C = A*B
, is there N^2
way to estimate max value in C? Or rather what is a good way to do so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
怎么样:
A
中的每一行和B
中的每一列,找到向量范数平方(即平方和)。 O(n^2)A
中的行和B
中的列的每个组合,乘以相应的向量-范数的平方。 O(n^2)其平方根将是
max(abs(C))
的上限。为什么?因为,根据 Cauchy-Schwartz 不等式,我们知道||^2 <=.
,其中<>
表示内积。我们已经在C
中计算了每个点的这种关系的RHS;因此我们知道C
的相应元素(LHS)一定较小。免责声明:很可能有一种方法可以提供更严格的界限;这是我首先想到的事情。
How about this:
A
and each column inB
, find the vector-norm squared (i.e. sum of squares). O(n^2)A
and column fromB
, multiply the corresponding vector-norm squareds. O(n^2)The square-root of this will be an upper-bound for
max(abs(C))
. Why? Because, from the Cauchy-Schwartz inequality, we know that|<x,y>|^2 <= <x,x>.<y,y>
, where<>
denotes the inner-product. We have calculated the RHS of this relationship for each point inC
; we therefore know that the corresponding element ofC
(the LHS) must be less.Disclaimer: There may well be a method to give a tighter bound; this was the first thing that came to mind.
显然,
是一个上限(因为 C 的每个元素是 A 和 B 中两个值的 N 乘积之和)。
Obviously,
is an upper bound (since each element of C is the sum of N products of two values from A and B).
这是我的看法:
你觉得怎么样?要尝试奥利的答案,看看什么给了我最好的近似/性能。
this is my take:
What you think? Gonna try Oli's answer and see what gives me best approximation/performance.