高斯-约旦法求逆的步骤如下

上传人:博****1 文档编号:502938043 上传时间:2022-08-02 格式:DOCX 页数:3 大小:8.54KB
返回 下载 相关 举报
高斯-约旦法求逆的步骤如下_第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, .,

2、n-1; i != k最后,根据在全选主元过程中所记录的行、列交换的信息进行恢复,恢复的原则如下:在全 选主元过程中,先交换的行(列)后进行恢复;原来的行(列)交换用列(行)交换来恢复。实现(4阶矩阵)float Inverse(CLAYMATRIX& mOut, const CLAYMATRIX& rhs)CLAYMATRIX m(rhs);DWORD is4;DWORD js4;float fDet = 1.0f;int f = 1;for (int k = 0; k 4; k +)/ 第一步,全选主元float fMax = 0.0f;for (DWORD i = k; i 4; i +

3、)for (DWORD j = k; j fMax)fMax = f;isk = i;jsk = j;if (Abs(fMax) 0.0001f)return 0;if (isk != k) f=-f;swap(m(k, 0), m(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

4、), m(3, jsk);/计算行列值fDet *= m(k, k);/计算逆矩阵/第二步m(k, k) = 1.0f / m(k, k);/第三步for (DWORD j = 0; j 4; j +)if (j != k)m(k, j) *= m(k, k);/第四步for (DWORD i = 0; i 4; i +)if (i != k)for (j = 0; j 4; 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(j

5、sk, 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;return fDet * f;比较原算法原算法(经过高度优化)新算法加法次数103 61 39乘法次数170 116 69需要额外空间 16 * sizeof(float) 34 * sizeof(float) 25 * sizeof(float)

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

当前位置:首页 > 学术论文 > 其它学术论文

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