algorithm - 向量乘法算法

标签 algorithm matrix-multiplication numerical-analysis

A,B为R^n空间的矩阵,b属于R^n。描述一个计算A^-2*B*A的快速算法^-3*b.算法将进行多少次计算?

这是一道数值分析题。我试过暴力破解算法,但我相信答案更数学化。

我们还没有讨论大 O 符号,所以这个问题严格要求算法的 Action 。你会如何回答这个问题?

最佳答案

我会从右到左解决问题,在处理 A 的逆时使用线性求解器,在处理 B 时使用矩阵乘法:

x1 = linsolve(A, b)
x2 = linsolve(A, x1)
x3 = linsolve(A, x2)
y = B*x3
z1 = linsolve(A,y)
result = linsolve(A,z1)

通过将 A 的 LU 分解保留在内存中,您可以按常量乘数减少操作数,但除非为 A 和 B 提供更多结构,否则二次复杂度似乎是您可以达到的最佳目标。

关于algorithm - 向量乘法算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54388418/

相关文章:

algorithm - 统计0到N之间的K个数

matlab - 多个矩阵乘以多个向量的快速乘法

python - 二次形式 numpy 数组乘法的最快方法是什么?

matrix - C++ 稀疏矩阵库

precision - 避免精度损失的最佳算法?

c++ - 有条件地并行填充 vector

c - 长正整数和搜索的结果以及数组中的元素

algorithm - 两种编写函数的方法,效率有何不同?

matlab - 如何仅计算 Octave 中矩阵乘积的对角线?

matlab - 雅可比迭代没有结束