实验报告2:解线性方程组的直接法
姓名:杜娟学号:08012324班级勘查083班一.上机题目
用高斯列主元消去法和LU分解法解线性方程组
二.目的要求
掌握用高斯列主元消去法和LU分解法设计程序,从而实现解线性方程组。
三.方法原理
1如果在一列中选取按模最大的元素,将其调到主干方程位置再做消元,则称为列主元消元法。调换方程组的次序是为了使运算中做分母量的绝对值尽量地大,减少舍入误差的影响。2由高斯消元法得到启发,对消元的过程相当于将分解为一个上三角矩阵和一个下三角矩阵的过程。如果直接分解得到和,;再由。这时方程化为,令,由解出
,解出。这就是直接分解法。
四.算法步骤
列主元消元法算法1.输入:方程组阶数
,方程组系数矩阵A和常数向量项b。
f2.fork1to
1选择sakkmkforuk1to
选主元的消元过程
ifauksthe
musaukforvkto
takvakvamvamvttbkbkbmbmtforik1to
taikakkforjk1to
aijaijtakjbibitakj3.fori
TO1回代求解交换第k行和第m行
4.输出方程组的解xii12…
。如果对于第k步,从k行至
行和从k列至
列中选取按模最大的,对第行和第行交换,对第列和第v列交换,这就是全主元消元法。k列和第v列交换时,在还要记录下v的序号,以便恢复未知量xk和xv的位置。
fLU分解法1计算的第一行元素要计算系式:则列出式(320)等号两边的第1行第1列元素的关
故
。一般地,由的第一行元素的关系式
得到
2计算的第一列元素要计算系式:,则列出式(320)等号两边的第2行第1列元素的关
故
。一般地,由的第1列元素的关系式
得到
f3计算的第2行元素4计算的第2列元素……若已算出的前行,的前列的元素,则
5计算的第行元素由的第行元素的关系式:
是上三角矩阵,列标
行标。
得到
6计算的第列元素由的第列元素的关系式:
∵是下三角矩阵,∴行标标
行标。
f得到
一直做到的第
列,的第行为止。
五.C语言程序及变量说明
列主元消元法算法列主元消元法算法i
cludestdiohi
cludestdlibhdefi
eN10矩阵大小范围floatgetmfloataNNfloatxNi
tii
t
floatm0i
trforri1r
rmairxrretur
m
ffloatgetxfloataNNfloatbNfloatxNi
tii
t
floatresultifi
1resultfloatb
1a
1
1elseresultfloatbigetmaxi
aiiretur
resultvoidmai
floataNN系数矩阵floatbN右端项floatxN方程组解i
tijki
t
Nr