高斯约旦法(全选主元)求逆的步骤如下

上传人:cn****1 文档编号:499688827 上传时间:2024-01-31 格式:DOC 页数:3 大小:21KB
返回 下载 相关 举报
高斯约旦法(全选主元)求逆的步骤如下_第1页
第1页 / 共3页
高斯约旦法(全选主元)求逆的步骤如下_第2页
第2页 / 共3页
高斯约旦法(全选主元)求逆的步骤如下_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《高斯约旦法(全选主元)求逆的步骤如下》由会员分享,可在线阅读,更多相关《高斯约旦法(全选主元)求逆的步骤如下(3页珍藏版)》请在金锄头文库上搜索。

1、高斯-约旦法(全选主元)求逆的步骤如下:首先,对于k从0到n-1作如下几步:从第k行、第k列开始的右下角子阵中选取绝对值最大的元素,并记住次元素所在的行号和列号,在通过行交换和列交换将它交换到主元素位置上。这一步称为全选主元。m(k,k)=1/m(k,k)m(k,j)=m(k,j)*m(k,k),j=0,1,.,n-1;j!=km(i,j)=m(i,j)-m(i,k)*m(k,j),i,j=0,1,.,n-1;i,j!=km(i,k)=-m(i,k)*m(k,k),i=0,1,.,n-1;i!=k最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复的原则如下:在全选主元过程中,先交

2、换的行(列)后进行恢复;原来的行(列)交换用列(行)交换来恢复。实现(4阶矩阵)floatInverse(CLAYMATRIX&mOut,constCLAYMATRIX&rhs)CLAYMATRIXm(rhs);DWORDis4;DWORDjs4;floatfDet=1.0f;intf=1;for(intk=0;k4;k+)/第一步,全选主元floatfMax=0.0f;for(DWORDi=k;i4;i+)for(DWORDj=k;jfMax)fMax=f;isk=i;jsk=j;if(Abs(fMax)0.0001f)return0;if(isk!=k)f=-f;swap(m(k,0),m

3、(isk,0);swap(m(k,1),m(isk,1);swap(m(k,2),m(isk,2);swap(m(k,3),m(isk,3);if(jsk!=k)f=-f;swap(m(0,k),m(0,jsk);swap(m(1,k),m(1,jsk);swap(m(2,k),m(2,jsk);swap(m(3,k),m(3,jsk);/计算行列值fDet*=m(k,k);/计算逆矩阵/第二步m(k,k)=1.0f/m(k,k);/第三步for(DWORDj=0;j4;j+)if(j!=k)m(k,j)*=m(k,k);/第四步for(DWORDi=0;i4;i+)if(i!=k)for(j

4、=0;j4;j+)if(j!=k)m(i,j)=m(i,j)-m(i,k)*m(k,j);/第五步for(i=0;i=0;k-)if(jsk!=k)swap(m(k,0),m(jsk,0);swap(m(k,1),m(jsk,1);swap(m(k,2),m(jsk,2);swap(m(k,3),m(jsk,3);if(isk!=k)swap(m(0,k),m(0,isk);swap(m(1,k),m(1,isk);swap(m(2,k),m(2,isk);swap(m(3,k),m(3,isk);mOut=m;returnfDet*f;比较原算法原算法(经过高度优化)新算法加法次数1036139乘法次数17011669需要额外空间16*sizeof(float)34*sizeof(float)25*sizeof(float)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号