栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

有没有一种快速的方法来反转Matlab中的矩阵?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

有没有一种快速的方法来反转Matlab中的矩阵?

我实际上需要反函数,所以我不能改用mldivide,…

这是不正确的,因为您仍然可以

mldivide
用来求逆。注意。在MATLAB中,这等效于
A-1 = A-1 * I

invA = Aspeye(size(A));

在我的机器上,

5000x5000
矩阵大约需要10.5秒。请注意,MATLAB确实具有
inv
计算矩阵逆的函数。尽管这将花费相同的时间,但在数值精度方面效率较低(链接中的更多信息)。


首先,他们的行列式为1,因此它们绝对是可逆的

而不是

det(A)=1
,是矩阵的条件编号指示逆矩阵的准确性或稳定性。注意。所以只设置,并且会给你。然而,正如,和,这意味着你的矩阵接近奇异会有在计算反大数值的误差。
det(A)=∏i=1:nλi``λ1=M``λn=1/M``λi≠1,n=1``det(A)=1``M → ∞``cond(A) = M2 → ∞``λn → 0


我的矩阵来自一个问题,这意味着它们具有一些不错的属性。

当然,如果矩阵稀疏或具有其他有利属性,则可以使用其他更有效的算法。但是,如果没有有关您的特定问题的任何其他信息,就只能说无话可说了。


我希望有一种方法可以加速Matlab

MATLAB使用Gauss消除法来计算通用矩阵的逆(满秩,非稀疏,没有任何特殊属性)

mldivide
,这是,其中矩阵的大小。因此,在您的情况下,有浮点运算。因此,在具有大约10
Gflops计算能力的合理机器上,您将需要至少12.5秒的时间来计算反函数,除非您利用“特殊属性”(如果它们是可利用的),否则将没有其他办法。
Θ(n3)``n``n=5000``1.25 x 1011




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号