Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 仅计算第二个表达式的快速方法_Algorithm_Performance_Matrix_Optimization_Time Complexity - Fatal编程技术网

Algorithm 仅计算第二个表达式的快速方法

Algorithm 仅计算第二个表达式的快速方法,algorithm,performance,matrix,optimization,time-complexity,Algorithm,Performance,Matrix,Optimization,Time Complexity,给定一个n×n矩阵X,三个n×n对角矩阵D1,D2,D3,以及三个n×1向量v1,v2,v3,我的目标是设计一种高效的方法来尽可能快地计算下列表达式: (Exp1)=X·v1+X·X·v2+X·X·X·v3 (Exp2)=D1·X·v1+D2·X·X·v2+D3·X·X·v3 为了有效地评估(Exp1),我有以下想法: 我可以重写(Exp1),如下所示: y1=X·v3+v2 y2=X·y1+v1 (Exp1)=X·y2 (Exp1)=X·v1+X·X·v2+X·X·X·v3=X·(X·(X·

给定一个
n×n
矩阵
X
,三个
n×n
对角矩阵
D1
D2
D3
,以及三个
n×1
向量
v1
v2
v3
,我的目标是设计一种高效的方法来尽可能快地计算下列表达式:

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

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

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

我可以重写
(Exp1)
,如下所示:

y1=X·v3+v2
y2=X·y1+v1
(Exp1)=X·y2
(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)
,我不知道。任何建议或提示都是非常受欢迎的。

我认为没有比分别计算向量
X.v1
X.X.v2
X.X.v3
(6个矩阵/向量倍数)并将它们组合到
Exp1
Exp2
更好的方法了。谢谢您的回答。Exp1和Exp2是两个独立的问题。仅用于评估Exp2,有没有更快的方法?@JohnSmith:恐怕没有,因为
Dk
vk
是不相关的。
X
有任何属性吗?