矩阵mul最大值估计

时间:2011-02-13 21:29:12

标签: c matrix numerical-analysis

鉴于矩阵乘积C = A*B,是否有N^2方法来估算C中的最大值?或者更确切地说,这样做的好方法是什么?

3 个答案:

答案 0 :(得分:5)

这个怎么样:

  1. 对于A中的每一行和B中的每一列,找到向量范数的平方(即平方和)。的 为O(n ^ 2)
  2. 对于A行和B列的每个组合,乘以相应的向量范数平方。的 为O(n ^ 2)
  3. 找出这些中的最大值。的 为O(n ^ 2)
  4. 这个的平方根将是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的答案,看看是什么给了我最好的近似/表现。