基于MATLAB语言环境下求解线性方程组的四种方法及优劣比较
2015-05-30谭晶磊
中国新通信 2015年4期
谭晶磊
【摘要】 为熟练运用MATLAB语言求解线性方程组,并学会在不同情况下调用合适的函数。我通过列举六种解法解题的实例来分析比较他们之间的不同与优劣。最终使大家在遇到各种不同情况时能正确选择调用函数。
【关键词】 MATLAB语言 线性方程组 求解方法一、问题的提出
MATLAB中求解线性方程组的方法种类繁多,有左除运算符解法、LU分解法、QR分解法、Jacobi迭代法等。面对各类线性方程组求解问题,我们该如何选择一种适合当前方程组解法的函数?下面通过各解法求解实例进行分析比较。
二、MATLAB语言环境下求解线性方程组
三、结论
传统解法需对矩阵进行初等行变换,将增广矩阵变成阶梯阵,而后由下至上依次代入求解,计算量大,而且在变换过程中和求解时极易出错。对于简单的小型方程组,我们采用矩阵求逆解法或者左除运算符法,编程简单,求解快捷,左除运算符求解更简便,可用于一般矩阵,逆矩阵解法只能用于非奇异矩阵;对于中型线性方程组,我们采用LU分解法,编程不会过于复杂,占用的存储空间也不大,但 LU分解要求方阵必须为非奇异方阵;对于大型复杂的线性方程组,我们采用Gauss-Serdel迭代法,其求解方法更先进,使用范围更广,用Gauss-Serdel迭代法比jacobi迭代法收敛更快。但是对于一些方程,用jacobi迭代收敛,而Gauss-Serdel迭代法不收敛。因此,在使用迭代法的时候要考虑算法的收敛性。