赌场送彩金35|临海赌场看场子
查看: 170|回复: 2|关注: 0
打印 上一主题 下一主题

[已解决] 求逆矩阵常规操作

[复制链接]

新手

7 麦片

财富积分


050


2

主题

2

帖子

0

最佳答案
跳转到指定楼层
1#
请问求逆矩阵在matlab中是如何简单实现的,最好附上一些简单的操作,大一新手操作谢谢各位。

论坛优秀回答者

5

主题

1204

帖子

315

最佳答案
  • 关注者: 108
2#
发表于 2019-5-29 07:54:40 | 只看该作者 |此回复为最佳答案
对矩阵A,列向量x和列向量b
如果有A*x = b
那么matlab里面可以用
inv(A)*b
A\b
pinv(A)*b
来求向量x
前两者对符号矩阵亦?#35270;?/td>

MATLAB 基础讨论
版块优秀回答者

入门

200 麦片

财富积分


50500


3

主题

308

帖子

43

最佳答案
  • 关注者: 2
3#
发表于 2019-5-29 11:05:49 | 只看该作者
MATLAB求逆操作总体上分为两类,一类是求逆矩阵或广义逆矩阵,另一类是求解线性方程组。这里我总结一下帮助文档中给出的这几种算法的区别,具体数学算法的区别需要矩阵论相关知识。
1. 求逆矩阵类操作
这类操作都是实打实的求出逆矩阵的,如果算法可以化为求解线性方程组的操作那么推荐使用第二类操作以提高计算效率、增加程序稳健性。
1)矩阵求逆( inv(A) 或 A^(-1) )
这两个操作是等价的,也是最容易想到和常用求逆操作,matlab推荐使用矩阵左除(\, mldivide)或矩阵?#39029;?/, mrdivide),也就是求解线性方程组的操作来代替。算法上matlab使用LU分解或LDL分解(对hermit矩阵/自共轭矩阵)或矩阵左除(稀疏矩阵)来求解。
2) 矩阵求广义逆( pinv(A) )
这个操作求解的是矩阵的Moor-Penrose广义逆,在A不可逆或者非方阵时可以求解得到广义逆矩阵。对于稠密矩阵matlab使用奇异值分解(SVD)计算,对于稀疏矩阵matlab使用矩阵左除计算。对于可以化成求解线性方程组的?#38382;劍?#23588;其是A为稀疏矩阵的?#38382;劍琺atlab推荐使用
lsqminnorm(A,b)来代替

2.求解线性方程组类操作
这类操作都是对线性方程组A*x=b或y*B=t的求解操作,计算效率和稳健性?#35748;?#24212;的求逆矩阵操作要高,推荐使用这类操作进行计算。
1) 矩阵左除( A\b 或 mldivide(A, b) )
求解A*x=b?#38382;?#32447;性方程组最常用的操作(x和b均为列向量),matlab会根据A的?#38382;阶?#21160;选择算法进行求解因而稳健性更好、效率更高。使用的算法主要是QR求解方法(非方阵),三角求解方法(三角阵),LU求解方法,LL(Cholesky)求解方法,LDL求解方法等,具体内容请参?#21450;?#21161;文档。
2) 矩阵?#39029;? t/B 或 mldivide(t, B) )
求解y*B=t?#38382;?#32447;性方程组的操作(y和t均为行向量),具体算法matlab中没有明确给出,但矩阵?#39029;?#21487;以和矩阵左除相互转化,推测和矩阵左除使用相同的算法。
3) 极小范数最小二乘求解( lsqminnorm(A,b) )
求解A*x=b?#38382;?#32447;性方程组, 与矩阵左除不同,这一操作解的范数最小。由于采用的算法是完全正交分解(COD)因此得到的解会和其他方法有所不同,对于稀疏矩阵,由于采用的是其他算法因此得到的解也会有所不同。



总体来看矩阵求逆操作就是矩阵分解的应用,如果明确了矩阵的特性可以省去判断过程自己进行分解、求逆。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表
赌场送彩金35 斯图加特旅游 ac米兰 ac 红黑军团 利物浦vs哈德斯菲尔德 德黑兰独立vs阿尔希拉尔 2008比利亚雷亚尔阵容 曼城热刺 美因茨vs弗莱堡 阿拉维斯vs赫罗纳比分预测 山东11选5开奖结果 红警2尤里的复仇