首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gram-Schmidt正交化算法的计算复杂度

Gram-Schmidt正交化算法的计算复杂度
EN

Stack Overflow用户
提问于 2015-01-16 14:33:36
回答 2查看 7.4K关注 0票数 9

Gram-Schmidt正交化算法的计算复杂度是多少?

假设一个由m行和k列组成的矩阵,需要多少操作才能计算正交化?

如果可能的话,我想知道乘法和加法的确切数目。

编辑:在我看来,运算的总数(乘法+加法)是3/2k^2m + 3/2mk +k^2/2 +k/2

我想知道这是否正确,是否有一个更快的版本。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-16 15:04:28

点积采用m-1加法和m乘.

向量归一化采用1个向量平方(点积),1个平方根和m个除法。

代码语言:javascript
运行
复制
m-1 +, m *, m /, 1 √

向量投影的减法采用1点乘积,m乘和m加法,即

代码语言:javascript
运行
复制
2m-1 +, 2m *

计算j-向量需要(j-1)减去投影,然后进行归一化,即

代码语言:javascript
运行
复制
(2m-1)(j-1)+m-1 +, 2m(j-1)+m *, m /, 1 √

计算从j=1到k的向量,因此因子(j-1)变成三角形数(k-1)k/2,与j无关的项乘以k:

代码语言:javascript
运行
复制
(2m-1)(k-1)k/2+(m-1)k +, 2m(k-1)k/2+mk *, mk /, k √

在点乘积中,m除法可以用逆乘积来交换m乘积,从而获得收益。

代码语言:javascript
运行
复制
(2m-1)(k-1)k/2+(m-1)k +, 2m(k-1)k/2+2mk *, k /, k √

所以基本上是2mk的运算。

票数 14
EN

Stack Overflow用户

发布于 2015-01-16 14:49:28

Gram算法的总体复杂性是O(m.k^2):

这个过程必须应用k次,并且每一次正交化都需要O(m.k)运算(乘法和加法),因此它使O(m.k^2)变得复杂起来。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27986225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档