高斯消元法求逆矩阵_C语言二维数组

      高斯消元法是线性代数中的一个算法,可用来为线性方程组求解,以及求出可逆方阵的逆矩阵。在高斯消元法求逆矩阵C代码一文中讲述的逆矩阵算法用的是一维数组,本文将在C语言中用二维数组来实现。为什么要用二维数组来实现呢?做MCU的人都知道,在MCU中运行的程序是以微秒级来算,而且必须是争毫秒夺微秒。以100M主频的MCU而言,一维数组实现的高斯消元法执行一次需要40us,时间过长,严重影响程序的执行效率,所以必须要缩短这段程序的执行时间。

      将高斯消元法求逆矩阵C代码的实现方式修改为二维数组后,执行时间(100M的MCU)可由原来的40us缩短为22us。对比可知,二维数组可以省去大量数组下标计算的时间。本文在Visual studio2008建立VC++ Win32控制台应用程序进行测试,测试结果如下:

      将高斯消元法改为二维数组后,基本已经是该算法的最快速度,如果待求解的二维数组的阶数确定,可以将二维数组中的循环展开,大概可以再缩短2us左右(100M的MCU)。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Fork me on GitHub