初等行变换求逆矩阵
2015-12-19 21:15
2621 查看
设要求出n阶矩阵A的逆矩阵B。
对于一个矩阵的初等行变换,有三种:
1. 交换两行。
2. 将某一行的所有元素乘以一个非零实数k。
3. 将某一行j,加上某一行i(i≠j)乘以一个非零实数k,即Aj=Aj+Ai∗k。
可以发现的是,每种变换其实都可以等价于乘以某个矩阵,事实上称其为初等矩阵。
那么,当我们不停地对A进行初等变换,并且用另外一个矩阵C不停地乘上这种变换对应的初等矩阵,那么当A变为I(单位矩阵)时,C就是A的逆矩阵了。
怎么样将A变为I?我们类似于高斯消元一样,一行一行一列一列地扫过去。由于最终要保证Ai,i=1,其他为0。
设当前扫到第i行,那么对于Ai,1∼i−1=0。但是对于j<i,Aj,i可能不等于0。但我们初等变换中可以先对第i行除以Ai,i,即保证Ai,i=1,接着用i整行去消j<i。那么Aj,i就等于0了。那么我们这样一行一行地消下去即可。我们对A中做的所有操作,顺便对C同时做就好了。反正都是乘上同一个矩阵。
一开始没有操作时C就是I。
最后我们用O(N3)的复杂度求出了逆矩阵。
对于一个矩阵的初等行变换,有三种:
1. 交换两行。
2. 将某一行的所有元素乘以一个非零实数k。
3. 将某一行j,加上某一行i(i≠j)乘以一个非零实数k,即Aj=Aj+Ai∗k。
可以发现的是,每种变换其实都可以等价于乘以某个矩阵,事实上称其为初等矩阵。
那么,当我们不停地对A进行初等变换,并且用另外一个矩阵C不停地乘上这种变换对应的初等矩阵,那么当A变为I(单位矩阵)时,C就是A的逆矩阵了。
怎么样将A变为I?我们类似于高斯消元一样,一行一行一列一列地扫过去。由于最终要保证Ai,i=1,其他为0。
设当前扫到第i行,那么对于Ai,1∼i−1=0。但是对于j<i,Aj,i可能不等于0。但我们初等变换中可以先对第i行除以Ai,i,即保证Ai,i=1,接着用i整行去消j<i。那么Aj,i就等于0了。那么我们这样一行一行地消下去即可。我们对A中做的所有操作,顺便对C同时做就好了。反正都是乘上同一个矩阵。
一开始没有操作时C就是I。
最后我们用O(N3)的复杂度求出了逆矩阵。
相关文章推荐
- 守护Android的Service后台服务
- REF CURSOR总结
- HTTP 长连接 使用场景
- 端口被占用怎么办?如何查看win7电脑端口是否被占用
- 年末的一些思考--关于电商,关于数据分析
- 基于单片机的毕业设计课题汇总-适合本科生-需要毕业设计的同学进来看看
- MYSQL 设计数据结构需注意问题
- 10块钱可以喝多少瓶啤酒
- GoldenGate配置(一)之单向复制配置
- Powershell-Exchange:获取移动设备列表
- c++/c内部调用TCL
- angularjs 设置全局变量的7种方法
- CSRF防御之ASP.NET MVC
- 72小时学会任何一款软件
- Shell 学习
- (解题报告)HDU2022---海选女主角
- hive建表没使用LZO存储格式,可是数据是LZO格式时遇到的问题
- JavaScript 风格指导(Airbnb版)
- 轻松学习JavaScript二十二:DOM编程学习之节点操作
- explict关键字的含义