1. 前言
因为最近的工程项目需要用到矩阵求逆的算法,开发的所基于的平台不可以使用任何矩阵库,考虑此,于是准备自己用c语言不借用任何矩阵库去实现矩阵求逆。
为什么要写这篇文章?
因为笔者之前也打算网上搜索下然后修改下,但是发现网上的要么所给的代码不全,要么用伴随矩阵求,计算量大,要么没写清原理,到底是基于什么理论公式写的代码,踩了一些坑,但幸运的是实现了矩阵求逆,于是就写下了这篇文章跟大家分享一下,同时也作为自己的技术笔记。
以下工程的求矩阵逆的c语言代码优化可使用的完整版参见我的github链接:https://github.com/JackJu-HIT/QRSolutionToMatrixInverse,并且我所参考的QR分解的数学原理在github链接里QR.pdf文件里。
如果有错误欢迎大家指出,也欢迎大家私信我讨论。
下面开始正文。。。。。。
2. 如何使用数值计算的方式求解矩阵逆?
对于矩阵A,假设我们要求矩阵A的逆,有如下步骤:
(1)A=QR 首先对A进行QR分解,于是有Q的逆为Q的转置记为Q^T,R为上三角矩阵。
(2)记A的逆为A^(-1),则有:
A^ (-1) = R ^ -1 * Q^T
小结:
1)需要完成QR分解
2)需要完成