【问题标题】:Fast way of evaluating the second expression only仅评估第二个表达式的快速方法
【发布时间】:2019-12-25 14:46:33
【问题描述】:

给定一个n×n矩阵X,三个n×n对角矩阵D1D2D3,和三个n×1向量v1,@9876543329@,@98765,我的目标是设计一种尽可能快地计算以下每个表达式的有效方法:

(Exp1) = X·v1+X·X·v2+X·X·X·v3

(Exp2) = D1·X·v1+D2·X·X·v2+D3·X·X·X·v3

为了高效评估(Exp1),我有以下想法:

我可以重写(Exp1)如下:

(Exp1) = X·v1+X·X·v2+X·X·X·v3 = X·(X·(X·v3+v2)+v1)

因此,我可以通过仅使用三个矩阵向量乘法来评估(Exp1),如下所示:

y1=X·v3+v2
y2=X·y1+v1
(Exp1)=X·y2

但是,为了有效地评估(Exp2),我不知道。非常欢迎任何建议或提示。

【问题讨论】:

    标签: algorithm performance matrix optimization time-complexity


    【解决方案1】:

    我没有看到比分别计算向量 X.v1X.X.v2X.X.X.v3(6 个矩阵/向量相乘)并将它们组合到 Exp1Exp2 更好的方法。

    【讨论】:

    • 感谢您的回答。 Exp1 和 Exp2 是两个独立的问题。仅用于评估 Exp2,有没有更快的方法?
    • @JohnSmith:恐怕不是,因为Dkvk 是不相关的。 X 有财产吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多