【发布时间】:2017-09-24 21:43:03
【问题描述】:
我有方程式:
S= C.(BSQ)+(1-C)I 其中 S,B,Q 是 nXn dim 的方阵,C 是常数,I 是单位矩阵。S 被初始化为单位矩阵 我想求解方程以找到 S。我可以在两边不取任何逆然后简化等等的情况下做到这一点吗?(我正在处理大型数据集,取逆可能非常慢)只需使用上面的方程,我得到了一些结果,但我不确定它是否正确,因为您不能同时进行三个矩阵乘法。我该怎么做才能解决 S?
the answer I am getting after plugging in all the matrices with values
【问题讨论】:
-
由于您没有告诉我们
C、B和Q的值是什么,即使在您的图形中,我们如何回答您的问题?你说的“你不能[']不能同时做三个矩阵乘法”是什么意思?只需将前两个乘以第三个即可。使用简单的算法,矩阵求逆在最坏的情况下是 O(n**3),这是多项式时间,那有什么问题呢?您的具体示例可能具有可以加快速度甚至更短时间的功能。请以文本形式向我们展示您的完整示例,以便我们检查您的答案是否正确。 -
另外,如果速度很重要,您可能应该使用 numpy 数组而不是基本的 Python list-of-lists。
-
我不能将前两个矩阵相乘,然后第三个矩阵相乘,因为前两个矩阵是 B 和 S,相乘会改变 S 的值。这将是一个问题,因为 S 存在于等式所以计算的值是错误的。
-
我正在使用一个 numpy 数组。我也应该发布我的代码吗?我只是没有发布它,因为它主要是如何使用某些条件等单独计算矩阵。主要部分是通过以下方式求解方程使用矩阵的值。
-
获得
S的候选答案后,您可以将三个矩阵相乘来检查您的答案。这不是您所说的“我不确定它是否正确,因为您不能同时进行三个矩阵乘法”?您仍然需要显示一些示例值,以便我们确定您的意思。根据How to create a Minimal, Complete, and Verifiable example,它们应该是减少的、更小尺寸的示例。
标签: python-2.7 math linear-algebra