用列主元高斯消去法和列主元三角分解法解线性方程

用列主元高斯消去法和列主元三角分解法解线性方程

【目的和意义】

高斯消去法是一个古老的求解线性方程组的方法,但由它改进得到的选主元的高斯消去法则是目前计算机上常用的解低阶稠密矩阵方程组的有效方法。

用高斯消去法解线性方程组的基本思想时用矩阵行的初等变换将系数矩阵A约化为具有简单形式的矩阵(上三角矩阵、单位矩阵等),而三角形方程组则可以直接回带求解

用高斯消去法解线性方程组
除法运算步骤为

,加减运算步骤为

。相比之下,传统的克莱姆法则则较为繁琐,如求解20阶线性方程组,克莱姆法则大约要

次乘法,而用高斯消去法只需要3060次乘除法。

在高斯消去法运算的过程中,如果出现abs(A(i,i))等于零或过小的情况,则会导致矩阵元素数量级严重增长和舍入误差的扩散,使得最后的计算结果不可靠,所以目前计算机上常用的解低阶稠密矩阵方程的快速有效的方法时列主元高斯消去法,从而使计算结果更加精确。

2、列主元三角分解法

高斯消去法的消去过程,实质上是将A分解为两个三角矩阵的乘积A=LU,并求解Ly=b的过程。回带过程就是求解上三角方程组Ux=y。所以在实际的运算中,矩阵L和U可以直接计算出,而不需要任何中间步骤,从而在计算过程中将高斯消去法的步骤进行了进一步的简略,大大提高了运算速度,这就是三角分解法

采用选主元的方式与列主元高斯消去法一样,也是为了避免除数过小,从而保证了计算的精

disp(‘原方程为AX=b:’) %显示方程组

A
b
disp(’------------------------’)
n=length(A);
for k=1:n-1 %找列主元

[p,q]=max(abs(A(k:n,k)));
%找出第k列中的最大值,其下标为[p,q]

q=q+k-1; %q在A(k:n,k)中的行号转换为在A中的行号
if
abs§

你可能感兴趣的:(计算方程组的数值解)