鉴于矩阵乘积C = A*B
,是否有N^2
方法来估算C中的最大值?或者更确切地说,这样做的好方法是什么?
答案 0 :(得分:5)
这个怎么样:
A
中的每一行和B
中的每一列,找到向量范数的平方(即平方和)。的 为O(n ^ 2) 强> A
行和B
列的每个组合,乘以相应的向量范数平方。的 为O(n ^ 2) 强> 这个的平方根将是max(abs(C))
的上限。为什么?因为,从Cauchy-Schwartz inequality,我们知道|<x,y>|^2 <= <x,x>.<y,y>
,其中<>
表示内在产品。我们已经计算了C
中每个点的这种关系的RHS;因此,我们知道C
(LHS)的相应元素必须更少。
免责声明:可能有一种方法可以提供更严格的约束;这是我想到的第一件事。
答案 1 :(得分:2)
显然,
N * max(abs(A)) * max(abs(B))
是一个上限(因为C的每个元素是A和B中两个值的N个乘积之和)。
答案 2 :(得分:0)
这是我的看法:
A,B,C
a(i) = max(abs(A(i,:)))
b(j) = max(abs(B(j,:)))
c(i,j) = N*max(a(i)*b(j))
你怎么想?试试Oli的答案,看看是什么给了我最好的近似/表现。