【问题标题】:matrix expression calculation矩阵表达式计算
【发布时间】:2012-12-28 01:32:29
【问题描述】:

请任何人指出如何进行矩阵乘法的算法(确定乘法的顺序)。我尝试了完全不同的设计方式,但不幸的是,没有任何效果:(例如,我有以下矩阵链之一要相乘:

((((0(((((((((((((((1 2)3)4)5)6)7)8)9)10)11)12)13)14)15)16))17)18)19 

((((((((((((0 1)2)3)4)5)6)7)8)9)10)(11(12(13(14(15(16(1718))))))))19

(((((0 1)(2(((3 4)(5 6))(((7 8)(9(10 11)))((((12 13)14)15)16)))))17)18)19  

(((((((0 1)2)3)4)5)(6(7(8(9(10(11(12 13))))))))(((((14 15)16)17)18)19)  

有人可以为所有情况共享一个通用算法吗?

注意:
1.我只需要乘法。
2.矩阵有不同的维度,所以它们不是正方形的。 (当然,矩阵的维度是一致的) 3.也许this topic会有所帮助,但我真的不知道如何应用在这里。

提前感谢所有试图提供帮助的人!

【问题讨论】:

  • 由于矩阵是关联的并且(n x m)(m x p) = (n x p),任何订单都不起作用?
  • @irrelephant,是的,你是对的。但是我正在实现最优矩阵链乘法的算法,所以,假设这些链对于某些矩阵来说是最优的。我唯一不明白的是如何根据提供的顺序相乘。
  • 如果矩阵在 nxm dim 数组中,这很简单,你能解释一下上述格式中的行吗?
  • 好吧,我google了一下,原谅我的无知。
  • 根据您发布的解析链接,您需要帮助解析/编译这串矩阵吗?

标签: java matrix


【解决方案1】:

您要查找的内容称为“矩阵链乘法”。 http://en.wikipedia.org/wiki/Matrix_chain_multiplication

【讨论】:

  • 我认为 OP 知道的很多。
  • 不,可能主题不清楚,但我有一个最优矩阵链。我不明白如何按照这个最优矩阵链进行乘法。
  • 所以你不明白如何将两个矩阵相乘?或者矩阵相乘的顺序是什么?
猜你喜欢
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多