首页 > 编程知识 正文

matlab矩阵乘法,matlab单位矩阵

时间:2023-05-06 21:07:58 阅读:60324 作者:579

会直接死人吧。 根据矩阵的特点将不用的分解写在几个例程中,在实验前进行试验,根据试验结果决定算法中使用哪个。

irst

我想问的是:

1 .全阶矩阵a的逆运算inv(a )和稀疏矩阵b (阶与a相同) ) ) ) ) )。

不是采用了和求的逆运算inv(b )相同的方法吗? 也就是说,他们的

计算量一样吗? 虽然是疏散行列,但不会做什么特别的事

处理方法求逆吧?

我电脑内存256米,可以排4096*4096的队求逆,几万层的

我跑不动了

稀疏的存储方式原理相同,但减少了不必要的计算

计算量大幅减少。

2 .如果矩阵c的非零元素集中在主对角线周围,则最好对c求逆

采用什么样的方法最好?

还是用LU分解前后迭代的方法比较普遍,矩阵对角越好就越容易做。

但是,需要稀疏存储。

稀疏矩阵的逆一般不是稀疏矩阵,所以如果对高次稀疏矩阵求逆,

不可能。 1万层全矩阵所需的内存几乎达到了pc

极限,我认为最好的方法是反复。 既然是稀疏的,乘法的次数就很有限。

果然效率很高。

但是求逆运算基本上是求解方程,稀疏矩阵,特别是其他基本上非零元素在对角线附近的矩阵,LU分解不会产生很多注入源,所以LU分解求解方程的方法是可行的。

使用迭代法的话,好像会变成共轭梯度法。

c的资源网络上有很多谷歌

或者在www.csdn.net,oonumerics.org上查找一下

或者使用IMSL for C

或者使用Lapack

或者用Matlab C混合编程

有现成的代码,请自己找

也可以使用库

塞孔多

如何求30,000 * 30,000稀疏矩阵的逆?

尝试一种基于krylov子空间法的算法。

例如arnoldi和GMRES的方法。

matlab有一个可以直接调用的函数。

直接help gmres就可以了。

如果效果还不好的话。

使用预处理技术。

例如不完全lu预处理方法。 等等。

各种预处理GMRES是目前解决大规模稀疏矩阵的主力方法。

即使维数多,也用不完全LU分解预处理CG or Gmres

我同学求过这么200W级的队伍

求逆一般不可取,不必多说。 但是稀疏矩阵的直接解法不少。 基本上,为了减少填充和运算量而重新排列矩阵。

matlab有许多算法,包括:

colamd、colmmd、colperm、spparms、symamd、symmmd、symrcm。

根据是否对称,采用LU分解或chol分解。

这些算法在internet上搜索时,大多有相应的c或fortran版本。

作为稀疏矩阵的存储域,最常见的是压缩列(行)存储域,但最近发现了利用访问复杂度为o(1)的混列表的存储域,非常优秀。 有趣的是,让我们看看下一页。 作者提供了源程序。

实际上,混列表的保存效率也与混列算法有关,弄不好,未必比直接按行或列好

依次检索快。 而且规模越大,效率一定越低。

33558 www.informatik.hs-bremen.de/~ brey /

对称正定的稀疏矩阵很容易做啊。 用LUN分解就可以了。

维数太大,例如超过10^4个量级,就只能使用

求解了共轭梯度法等迭代法。

虽然很多文献都用Cholesky进行了分解处理,但结果似乎还可以

你认为LL’分解不会破坏矩阵的稀疏性吗? 如果——矩阵不是带状的呢?

另外,数值的稳定性也存在问题。

对于一些注入源不多的矩阵,我认为这是个好方法。

但是,对于一些矩阵,如果LU分解,则可能满足整个矩阵。 ~

这是比较郁闷的事情。

恐怖袭击

带状矩阵的相反,有快速算法吗?

我认为这种说法是错误的,至少在Matlab中,用稀疏矩阵求逆对提高效率很明显。 通过利用稀疏性,可以省略很多对零元素的操作。 如果元矩阵还对称的话,考虑三角分解,将单位数组的列向量作为右端项,求解后可以得到对应的逆数组的列向量。

但是,据前辈说,“大部分情况下,要求反阵并不是必须的”,至今仍表示赞同。 至少,一般来说,我们在求解有限元解或普通线性方程时,不会先对系数矩阵求逆吧。 因此,倒阵在数学上很漂亮,有助于公式的导出,但我认为在数值计算中应该尽量避免直接计算,最重要的是,大部分情况下都可以避免。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。