刘雄峰,姚思远
(三峡大学电气与新能源学院,湖北宜昌,443002)
在电路课程中经常涉及到线性方程组的求解,具体的方法有精确法和迭代法,精确法求解不需要采取近似舍入,而是采用初等变换方法求出方程组的解;迭代法则是通过有限次的迭代,在允许的精度范围内求解方程组的近似解,精度要求设定越高,求解值越趋近与真实值。
MATLAB是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分;MATLAB具有高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来。
迭代法也称为转辗法,是一种不断用变量旧值递推新值的过程,迭代算法是用计算机解决数学问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令或步骤时,都将从变量的原值推出它的一个新值[1]。
设有线性方程组Ax=b,其中

选取x0作为方程的初始近似解,以之迭代出一个方程组近似解收敛数组(xk),k≥0。[2]即可将式(1)变为:

根据初始近似解x0,通过如下的迭代过程可以产生迭代根数组。
Pxk+1=Qxk+b,k=0,1,...,当‖P-Q‖<0时数组收敛。
线性方程组的解满足:

将矩阵A作标准分解可得到:A=D+L+U
其中,D=diag(a11,a22,...,amm)

此时可将式(1)变为:

此时,应用雅克比迭代法可以得到:

当应用高斯-赛德尔迭代法可得:

式中 :i=1,...,m;k=1,2,...

计算xi与k-1次迭代值的加权平均ω作为第k次的迭代值,即:……p>