第10章计算机数学基础下线性方程组的数值解法
计算方法_线性方程组的解法

计算方法_线性方程组的解法利用对角占优知由定理41知非奇异从而A非奇异证毕系数矩阵为对角占优阵的线性方程组称作对角占优方程组定理85 对角占优线性方程组的雅可比迭代公式和高斯-赛德尔迭代公式均收敛证雅可比迭代公式的迭代矩阵为由定理44知这时再由定理43知迭代收敛再考察高斯-赛德尔迭代公式的迭代矩阵令则有即写出分量形式有设而由上式得由此整理得利用对角占优条件知上式右端小于1 如果右端大于1 则得出与对角占优条件矛盾的结果故有据定理83知G-S收敛若方程组的系数矩阵A是正定的则G-S 迭代法收敛如则SOR迭代法收敛定理86 例86 设求解线性方程组的雅可比迭代求证当 1时相应的高斯-塞德尔迭代收敛证由于B是雅可比迭代的迭代矩阵故有又 1故有则∴系数矩阵为对角占优阵故G-S迭代收敛例87 设证明求解方程组的Jacobi迭代与G-S迭代同时收敛或发散证雅可比迭代矩阵其谱半径 G-S迭代矩阵其谱半径显然和同时小于等于或大于1因而Jacobi迭代法与G-S迭代法具有相同的收敛性例88 设求解线性方程组的雅可比迭代 x k1 B x k f k 01 求证当‖B‖ 1时相应的G-S迭代收敛证这里以‖B‖为例‖B‖1类似由于B是雅可比迭代的迭代矩阵故有∴ Ax b 的系数矩阵按行严格对角占优故高斯-塞德尔迭代收敛例89 考察用雅可比迭代法和高斯-塞德尔迭代法解线性方程组Ax b的收敛性其中解先计算迭代矩阵求特征值 B 0 1 ∴用雅可比迭代法求解时迭代过程收敛雅可比矩阵 1 02 23 2 G1 2 1 ∴用高斯-塞德尔迭代法求解时迭代过程发散高斯-塞德尔迭代矩阵求特征值例810 设有迭代格式 X k1 B X k g k 012 其中B I-A 如果A和B的特征值全为正数试证该迭代格式收敛分析根据A B和单位矩阵I之间的特征值的关系导出 1 从而说明迭代格式收敛证因为B I-A 故 BI - A 1 - A A B 1 由于已知 A 和 B 全为正数故0 B 1 从而 B 1 所以该迭代格式收敛例811 设方程组写出解方程组的Jacobi迭代公式和迭代矩阵并讨论迭代收敛的条件写出解方程组的Gauss-Seidel迭代矩阵并讨论迭代收敛的条件解①Jacobi迭代公式和Jacobi矩阵分别为当时a 1时Jacobi矩阵GJ∞ 1对初值x 0 均收敛② Gauss-Seidel矩阵为当时a 1时 Gauss-Seidel矩阵 Gs∞ 1 所以对任意初值x 0 均收敛也可用矩阵的谱半径p GS 1来讨论解先计算迭代矩阵例812 讨论用雅可比迭代法和高斯-塞德尔迭代法解线性方程组Ax b的收敛性求特征值雅可比矩阵 B 1 ∴用雅可比迭代法求解时迭代过程不收敛 1 - 1 23 12 求特征值高斯-塞德尔迭代矩阵 G1 03536 1 ∴用高斯-塞德尔迭代法求解时迭代过程收敛1 0 求解AX b当取何值时迭代收敛解所给迭代公式的迭代矩阵为例813 给定线性方程组 AX b 用迭代公式 X K1 X K b-AX K k01 即 2- 2-5 1- 5 4 2 0 2- 2-5 1- 1-4 0 [- 1- ][- 1-4 ] 0 1 1- 2 1-4 B 1- 1-4 1 取0 12迭代收敛例814 设求解线性方程组Ax b的简单迭代法 x k1 Bx k g k 01 2 收敛求证对0 1 迭代法 x k1 [ 1- IB]x k g k 01 2 收敛证设C 1- I B C 和 B 分别为C和B 的特征值则显然 C 1- B 因为0 1C 是1和 B 的加权平均且由迭代法 x k1 Bx k g k 01 2 收敛知 B 1 故 C 1 从而 C 1 即 x k1 [ 1- I B]x k g k01 2 收敛 k 01 本章小结本章第一部分介绍了解线性方程组的直接法直接法是一种计算量小而精度高的方法直接法中具有代表性的算法是高斯Gauss消去法在第一章提到的克莱姆算法也是一种直接法但该算法用于高阶方程组时计算量太大而不实用其它算法大都是它的变型这类方法是解具有稠密矩阵或非结构矩阵零元分布无规律方程组的有效方法选主元的算法有很好的数值稳定性从计算简单出发实际中多选用列主元法解三对角矩阵方程组A的对角元占优的追赶法解对称正定矩阵方程组的平方根法都是三角分解法且都是数值稳定的方法这些方法不选主元素也具有较高的精度向量矩阵的范数矩阵的条件数和病态方程组的概念是数值计算中一些基本概念线性方程组的病态程度是其本身的固有特性因此即使用数值稳定的方法求解也难以克服严重病态导致的解的失真在病态不十分严重时用双精度求解可减轻病态的影响 83 雅可比Jacobi迭代法 com迭代法算法构造例82 用雅可比迭代法求解方程组解从方程组的三个方程中分离出和建立迭代公式取初始向量进行迭代可以逐步得出一个近似解的序列 k 1 2 直到求得的近似解能达到预先要求的精度则迭代过程终止以最后得到的近似解作为线性方程组的解当迭代到第10次有计算结果表明此迭代过程收敛于方程组的精确解x 3 2 1 T 考察一般的方程组将n元线性方程组写成若分离出变量据此建立迭代公式上式称为解方程组的Jacobi迭代公式 com 雅可比迭代法的矩阵表示设方程组的系数矩阵A非奇异且主对角元素则可将A分裂成记作 A L D U 则等价于即因为则这样便得到一个迭代公式令则有 k 012 称为雅可比迭代公式 B称为雅可比迭代矩阵其中在例23中由迭代公式写出雅可比迭代矩阵为雅可比迭代矩阵表示法主要是用来讨论其收敛性实际计算中要用雅可比迭代法公式的分量形式即 k 012 84 高斯-塞德尔Gauss-Seidel迭代法 com 高斯-塞德尔迭代法的基本思想在Jacobi迭代法中每次迭代只用到前一次的迭代值若每次迭代充分利用当前最新的迭代值即在求时用新分量代替旧分量就得到高斯-赛德尔迭代法其迭代法格式为 i 12n k 012 例83 用GaussSeidel 迭代格式解方程组精确要求为ε 0005 解 GaussSeidel 迭代格式为取初始迭代向量迭代结果为 x ≈ x ≈ com GaussSeidel 迭代法的矩阵表示将A分裂成A LDU则等价于 LDU x b 于是则高斯塞德尔迭代过程因为所以则高斯-塞德尔迭代形式为故令 85 超松弛迭代法SOR方法使用迭代法的困难在于难以估计其计算量有时迭代过程虽然收敛但由于收敛速度缓慢使计算量变得很大而失去使用价值因此迭代过程的加速具有重要意义逐次超松弛迭代Successive Over relaxatic Method简称SOR方法法可以看作是带参数的高斯塞德尔迭代法实质上是高斯-塞德尔迭代的一种加速方法 com迭代法的基本思想超松弛迭代法目的是为了提高迭代法的收敛速度在高斯塞德尔迭代公式的基础上作一些修改这种方法是将前一步的结果与高斯-塞德尔迭代方法的迭代值适当加权平均期望获得更好的近似值是解大型稀疏矩阵方程组的有效方法之一有着广泛的应用其具体计算公式如下⑴用高斯塞德尔迭代法定义辅助量⑵把取为与的加权平均即合并表示为式中系数ω称为松弛因子当ω 1时便为高斯-塞德尔迭代法为了保证迭代过程收敛要求0 ω 2 当0 ω 1时低松弛法当1 ω 2时称为超松弛法但通常统称为超松弛法 SOR com 超松弛迭代法的矩阵表示设线性方程组的系数矩阵A非奇异且主对角元素则将A分裂成A LDU 则超松弛迭代公式用矩阵表示为或故显然对任何一个ω值 DωL 非奇异因为假设于是超松弛迭代公式为令则超松弛迭代公式可写成例84 用SOR法求解线性方程组取ω 146要求解SOR迭代公式 k 012 该方程组的精确解只需迭代20次便可达到精度要求如果取ω 1 即高斯塞德尔迭代法和同一初值要达到同样精度需要迭代110次初值 86 迭代法的收敛性我们知道对于给定的方程组可以构造成简单迭代公式雅可比迭代公式高斯-塞德尔迭代公式和超松弛迭代公式但并非一定收敛现在分析它们的收敛性对于方程组经过等价变换构造出的等价方程组在什么条件下迭代序列收敛先引入如下定理定理81 对给定方阵G 若则为非奇异矩阵且证用反证法若为奇异矩阵则存在非零向量x 使即有由相容性条件得由于两端消去有与已知条件矛盾假设不成立命题得证又由于有即将G分别取成G和-G再取范数又已知有定理82 迭代公式收敛的充分必要条件是迭代矩阵G的谱半径证必要性设迭代公式收敛当k→∞时则在迭代公式两端同时取极限得记则收敛于0 零向量且有于是由于可以是任意向量故收敛于0当且仅当收敛于零矩阵即当时于是所以必有充分性设则必存在正数ε使则存在某种范数使则所以即故收敛于 0 收敛于由此定理可知不论是雅可比迭代法高斯塞德尔迭代法还是超松弛迭代法它们收敛的充要条件是其迭代矩阵的谱半径事实上在例81中迭代矩阵G 其特征多项式为特征值为 -2-3 所以迭代发散定理83 迭代法收敛的充分条件若迭代矩阵G的一种范数则迭代公式收敛且有误差估计式且有误差估计式及证矩阵的谱半径不超过矩阵的任一种范数已知因此根据定理82可知迭代公式收敛又因为则det I-G ≠0 I-G为非奇异矩阵故x=Gx+d有惟一解即与迭代过程相比较有两边取范数∴由迭代格式有两边取范数代入上式得证毕由定理知当时其值越小迭代收敛越快在程序设计中通常用相邻两次迭代ε为给定的精度要求作为控制迭代结束的条件例85 已知线性方程组考察用Jacobi 迭代和G-S迭代求解时的收敛性解⑴雅可比迭代矩阵故Jacobi迭代收敛⑵将系数矩阵分解则高斯-塞德尔迭代矩阵故高斯塞德尔迭代收敛定理84 设n阶方阵为对角占优阵则非奇异证因A为对角占优阵其主对角元素的绝对值大于同行其它元素绝对值之和且主对角元素全不为0 故对角阵为非奇异作矩阵矩阵范数定义的另一种方法是这是由于同样矩阵范数和向量范数密切相关向量范数有相应的矩阵范数即定义7矩阵的谱半径设的特征值为称为A的谱半径例 14 计算方阵的三种常用范数解先计算所以从而例15 计算向量x和矩阵A的范数其中解定理11 设A为n阶方阵则对任意矩阵范数都有证设为A的特征值x是对应于的特征向量则 x Ax两端取范数并依据其性质得由于x≠0故所以 7 解的精度估计与方程组的误差分析 71 方程组的性态在建立方程组时其系数往往含有误差如观测误差或计算误差就是说所要求解的运算是有扰动的方程组因此需要研究扰动对解的影响如果方程组系数矩阵或右端向量的微小变化扰动引起解的巨大变化称这样的方程组为病态方程组相应的系数矩阵为关于解方程或求逆的病态矩阵否则为良态方程组和良态矩阵考察方程组它的准确解对右端稍加修改方程组成为其解为它与原方程组的着却解毫无相似之处可见原始数据的微小变化引起解的巨大变化故可认定方程组是病态的例16 考察方程组和上述两个方程组尽管只是右端项有微小扰动但解大不相同第1个方程组的解是第2个方程组的解是这类方程组称为病态的定义9 矩阵条件数设A为非奇异矩阵称为矩阵A条件数定义8 A或b的微小变化又称扰动或摄动引起方程组Ax b解的巨大变化则称方程组为病态方程组矩阵A称为病态矩阵否则方程组是良态方程组矩阵A也是良态矩阵为了定量地刻画方程组病态的程度要对方程组Ax b进行讨论考察A或b微小误差对解的影响为此先引入矩阵条件数的概念常用的条件数有称为A的谱条件数容易验证矩阵A的条件数有如下基本性质如果c为非零常数则如果A为对角矩阵则如果A为对称矩阵则则如果A为正定矩阵其中为A的绝对值最大和绝对值最小特征值其中为A的最大和最小特征值如果Q为n阶正交矩阵则如果B为n阶非奇异矩阵则如果A为正交矩阵则例17 计算矩阵A的条件数其中解由于及例15的结果得我们先来考察常数项b的微小误差对解的影响设A是精确的 b有误差或扰动δb 显然方程组的解与x有差别记为即有即由设Ax b≠0 于是 18 又∵ Ax b≠0则有由18式及19式即得如下定理 19 或定理 12 b 的扰动对解的影响设A非奇异 Ax b≠0且则有证设A精确且非奇异b有扰动δb使解x有扰动δx 则消去Ax b有又相比较可得定理 13 当方程组的系数矩阵A非奇异和常数项b为非零向量时且同时有扰动δAδb满足若x和xδx分别是方程组 Ax b 及的解则设及非奇异当即可上式展开得取范数并整理得证利用有如果则或者写成如果充分小则上式不等式成为例18 线性方程组的系数矩阵带误差成为如下方程组求方程组系数矩阵的条件数并说明方程组的性态解因为所以因此方程组是良态的 72 精度分析求得方程组Ax b的一个近似解以后希望判断其精度检验精度的一个简单办法是将近似解再回代到原方程组去求出余量r r b-A 如果r很小就认为解是相当精确的定理314 设是方程组Ax b的一个近似解其精确解记为 r为的余量则有例19 设A为正交矩阵证明cond2 A 1 分析由正交矩阵和条件数的定义便可推得解因为A是正交矩阵故ATA AAT I A-1 AT从而例20 设AB为n阶矩阵证明cond AB ≤ cond A · cond B 分析由矩阵范数性质和条件数定义便可证明证 cond AB AB · AB -1 ≤ A · BA-1 · B-1 A · A-1 B · B-1 cond A · cond B 例21 设AB为n阶非奇异矩阵表示矩阵的任一种范数证明 A-1-B-1 ≤ A-1 B-1 A-Bcond AB ≤ cond A · cond B 分析由矩阵范数的基本性质即可推证证A-1-B-1 A-1 B-A B-1 从而 A-1-B-1 ≤ A-1 B-A B-1 ≤ A-1 · B-A · B-1 ∴ A-1-B-1 ≤ A-1 · B-A · B-1 81 引言在第五章中我们知道凡是迭代法都有一个收敛问题有时某种方法对一类方程组迭代收敛而对另一类方程组进行迭代时就会发散一个收敛的迭代法不仅具有程序设计简单适于自动计算而且较直接法更少的计算量就可获得满意的解因此迭代法亦是求解线性方程组尤其是求解具有大型稀疏矩阵的线性方程组的重要方法之一 8 解线性方程组的迭代法 82 迭代法的基本思想迭代法的基本思想是将线性方程组转化为便于迭代的等价方程组对任选一组初始值按某种计算规则不断地对所得到的值进行修正最终获得满足精度要求的方程组的近似解设非奇异则线性方程组有惟一解经过变换构造出一个等价同解方程组将上式改写成迭代式选定初始向量反复不断地使用迭代式逐步逼近方程组的精确解直到满足精度要求为止这种方法称为迭代法如果存在极限则称迭代法是收敛的否则就是发散的收敛时在迭代公式中当时则故是方程组的解对于给定的方程组可以构造各种迭代公式并非全部收敛例81 用迭代法求解线性方程组解构造方程组的等价方程组据此建立迭代公式取计算得迭代解离精确解越来越远迭代不收敛求解 Ly b 得 y [221]T 求解 Ux y 得 x [ -101 ] T 所以方程组的解为 4 平方根法工程实际计算中线性方程组的系数矩阵常常具有对称正定性其各阶顺序主子式及全部特征值均大于0矩阵的这一特性使它的三角分解也有更简单的形式从而导出一些特殊的解法如平方根法与改进的平方根法定理6 设A是正定矩阵则存在惟一的对角元素均为正数的下三角阵L使A LLT 证因A是正定矩阵 A的顺序主子式 i 0 i 12n 因此存在惟一的分解 A LU L是单位下三角阵 U是上三角阵将U再分解其中D为对角阵 U0为单位上三角阵于是 A L U L D U0 又 A AT U0TD LT 由分解惟一性即得U0T L A L D LT 记又因为det Ak >0 k 12n 故于是对角阵D还可分解其中为下三角阵令L L1定理得证将A LLT展开写成按矩阵乘法展开可逐行求出分解矩阵L的元素计算公式是对于i 12n j i1 i2n 这一方法称为平方根法又称乔累斯基 Cholesky 分解它所需要的乘除次数约为数量级比LU分解节省近一般的工作量例9 平方根法求解方程组解因方程组系数矩阵对称正定设A 即由Ly b解得由解得由此例可以看出平方根法解正定方程组的缺点是需要进行开方运算为避免开方运算我们改用单位三角阵作为分解阵即把对称正定矩阵A分解成的形式其中为对角阵而是单位下三角阵这里分解公式为据此可逐行计算运用这种矩阵分解方法方程组Ax b即可归结为求解两个上三角方程组和其计算公式分别为和求解方程组的上述算法称为改进的平方根法这种方法总的计算量约为即仅为高斯消去法计算量的一半例10 用改进的平方根LDLT法解方程组解方程组系数阵由矩阵乘法得由得由得 5 追赶法在数值计算中有一种系数矩阵是三对角方程组简记为Ax fA满足条件1 2 3 用归纳法可以证明满足上述条件的三对角线性方程组的系数矩阵A非奇异所以可以利用矩阵的直接三角分解法来推导解三对角线性方程组的计算公式用克洛特分解法将A分解成两个三角阵的乘积设A LU 可依次计算按乘法展开则可计算可依次计算当由上式可惟一确定L和U 例11 用追赶法求解三对角方程组由Ly f 解出y 又由Ux y 解出x 6 向量和矩阵的范数为了研究线性方程组近似解的误差估计和迭代法的收敛性有必要对向量及矩阵的大小引进某种度量----范数的概念向量范数是用来度量向量长度的它可以看成是二三维解析几何中向量长度概念的推广用Rn 表示n维实向量空间定义对任一向量XRn 按照一定规则确定一个实数与它对应该实数记为X 若X满足下面三个性质 1 X0X 0当且仅当X 0 2 对任意实数 X X 对任意向量YRnXY XY 则称该实数X为向量X的范数在Rn中常用的几种范数有记笔记其中x1x2 xn分别是X的n个分量以上定义的范数分别称为1-范数2-范数和-范数可以验证它们都是满足范数性质的其中是由内积导出的向量范数当不需要指明使用哪一种向量范数时就用记号泛指任何一种向量范数有了向量的范数就可以用它来衡量向量的大小和表示向量的误差设x为Ax b的精确解x为其近似解则其绝对误差可表示成x- x 其相对误差可表示成或例12 证明对任意同维向量x y 有证即例13 设x 1 0 -1 2 T 计算解 10-12 4 定理7 对于任意向量x 有证∵∴即当 p→∞∴定义4 向量序列的极限设为中的一向量序列记如果 i 12 n 则称收敛于向量记为定理8 向量范数的等价性设为上任意两种向量范数则存在常数C1 C2 0 使得对任意恒有定理9 其中为向量中的任一种范数证由于而对于上的任一种范数由定理37 知存在常数C1C2使于是可得从而定理得证定义5矩阵的范数如果矩阵的某个非负的实值函数满足则称是上的一个矩阵范数或模矩阵范数的性质可由向量范数定义直接验证 1 设A≠0 x≠0 使Ax≠0根据向量范数的性质Ax 0 所以 0 x≠0 使Ax 0 则 0 当A 0时矩阵范数的性质可由向量范数定义直接验证∴ 2 根据向量范数的性质矩阵范数的性质可由向量范数定义直接验证 3 全主元素消去法是通过方程或变量次序的交换使在对角线位置上获得绝对值尽可能大的系数作为称这样的为主元素尽管它的算法更稳定但计算量较大实际应用中大多数使用列主元素消去法即可满足需要全主元素法不是按列选主元素而是在全体待选系数中选取则得全主元素法例3 用全主元素法解下列线组 10x1 - 19x2 - 2x3 3 1 -20x1 40x2 x3 4 2 x1 4x2 5x3 53 解选择所有系数中绝对值最大的40作为主元素交换第一二行和交换第一二列使该主元素位于对角线的第一个位置上得 40x2 - 20x1 x3 4 4-19x210x1 - 2x3 3 5 4x2 x1 5x3 5 6 计算m21 -19400475m31 440 01 5 - m21 4 6 - m31 4 消去x2 得 05x1 –1525 x3 497 3x1 49 x3 46 8 选49为主元素 49 x3 3x1 469 1525 x3 05x1 49 10 计算m32 -152549 -031122 10 - m32 9 消去x2得 143366x1 6 33161 11 记笔记保留有主元素的方程 40x2 - 20x1 x3 4 4 49x3 3x1 469 143366x1 6 33161 11 进行回代 x1 441634 x3-176511 x2 235230 com 列主元素法列主元素法就是在待消元的所在列中选取主元经方程的行交换置主元素于对角线位置后进行消元的方法例4 用列主元素法解下列线性方程组 10x1 - 19x2 - 2x3 3 1 -20x1 40x2 x3 4 2 x1 4x2 5x3 5 3 解选择-20作为该列的主元素 -20x1 40x2x3 3 4 10x1 - 19x2 - 2x3 4 5 x1 4x2 5x3 5 6计算m21 10-20 -05 m31 1-20 -005 5 - m21 4 6 - m31 4 得 x2– 15x3 5 7 6x2 505x3 52 8 选6为主元素 6x2 505x3 529 x2 – 15x3 5 10 计算m32 16 016667 10 - m32 9 得-234168x3 413332 11 保留有主元素的方程 -20x1 40x2 x34 4 6x2 505x3 52 9 -234168x3 413332 11 进行回代 x3 -176511 x2 235230 x1 441634 记笔记列选主元素的计算方法与高斯消去法完全一样不同的是在每步消元之前要按列选出主元例5 用矩阵的初等行变换求解解方程组解用矩阵的初等行变换求解对增广矩阵下面带下划线元素为主元素 25 高斯-约当Jordan消去法高斯消去法有消元和回代两个过程消去的是对角线下方的元素当对消元过程稍加改变便可使方程组化为对角阵 8 这时求解就不需要回代了这种将主元素化为1并用主元将其所在列的冗余元素全都消为0即消去对角线上方与下方的元素这种方法称为高斯-约当消去法这时等号右端即为方程组的解例6 用高斯-约当Jordan 消去法求方程组的解解方程组相应的增广矩阵列选主元故得定理4 设A为非奇异矩阵方程组AX I的增广矩阵为 C A I 如果对C应用高斯-约当消去法化为 I B则 B 例7 用高斯-约当Jordan消去法求的逆矩阵解 C A I 3 矩阵三角分解法矩阵三角分解法是高斯消去法解线性方程组的一种变形解法 31 矩阵三角分解原理应用高斯消去法解n阶线性方程组Ax b 经过n步消元之后得出一个等价的上三角型方程组 A n x b n 对上三角形方程组用逐步回代就可以求出解来上述过程可通过矩阵分解来实现将非奇异阵A分解成一个下三角阵L和一个上三角阵U的乘积 A LU 称为对矩阵A的三角分解又称LU分解其中方程组Ax b的系数矩阵A经过顺序消元逐步化为上三角型A n 相当于用一系列初等变换左乘A的结果事实上第1列消元将A 1 A化为A 2若令则根据距阵左乘有L1A 1 A 2 第2列消元将A 2 化为A 3 若令经计算可知 L2A 2 A 3 依此类推一般有LkA k A k1 mi1 a 1 i1 a 1 11i 23n 于是矩阵经过消元化为上三角阵的过程可表示为上述矩阵是一类初等矩阵它们都是单位下三角阵且其逆矩阵也是单位下三角阵只需将改为就得到即于是有其中 L为由乘数构成的单位下三角阵U为上三角阵由此可见在的条件下高斯消去法实质上是将方程组的系数矩阵A分解为两个三角矩阵的乘积A LU这种把非奇异矩阵A分解成一个下三角矩阵L和一个上三角矩阵U的乘积称为矩阵的三角分解又称LU分解显然如果由行列式的性质知方程组系数矩阵A的前n-1个顺序主子矩阵非奇异即顺序主子式不等于零即其中 A的主子阵反之可用归纳法证明如果A的顺序主子式则于是得到下述定理定理5 设如果A顺序各阶主子式则A可惟一地分解成一个单位下三角阵L和一个非奇异的上三角阵U的乘积证由于A各阶主子式不为零则消元过程能进行到底前面已证明将方程组的系数矩阵A用初等变换的方法分解成两个三角矩阵的乘积A LU的过程现仅证明分解的惟一性设A有两种LU分解其中为单位下三角阵为上三角阵∵ A的行列式均为非奇异矩阵有上式两边左边同乘右边同乘得上式左边为单位下三角阵右边为上三角阵故应为单位阵即惟一性得证把A分解成一个单位上三角阵L和一个下三角阵U的乘积称为杜利特尔Doolittle分解其中若把A分解成一个下三角阵L和一个单位上三角阵U的乘积称为克洛特分解 Crout 其中 32 用三角分解法解方程组求解线性方程组Ax b时先对非奇异矩阵A进行LU分解使A LU那么方程组就化为 LU x b 从而使问题转化为求解两个简单的的三角方程组 L y b 求解 y U x y 求解 x 这就是求解线性方程组的三角分解法的基本思想下面只介绍杜利特尔Doolittle分解法设A LU为由矩阵乘法规则由此可得U的第1行元素和L的第1列元素再确定U的第k行元素与L的第k列元素对于k 23。
第10章计算机数学基础下线性方程组的数值解法

第10章 线性方程组的数值解法设线性方程组a 11x 1+ a 12x 2+ a 13x 3+……+ a 1n x n =b 1a 21x 1+ a 22x 2+ a 23x 3+……+ a 2n x n =b 2……a n1x 1+ a n2x 2+ a n3x 3+……+ a nn x n =b n记为矩阵的形式 AX=b 其中 A= X = b=A 是一个n 阶方阵,X 和b 是n ×1的列阵或n 维列向量。
当|A |≠0时,方程组的解存在且唯一。
线性方程组的基本解法一般分为两大类:其一是直接法,如:克莱姆法则和高斯消去法;另一种是迭代法。
一、高斯消去法知道高斯消去法的基本思想,熟练掌握高斯顺序消去法和列主元消去法。
消去法就是按特定顺序进行的矩阵行初等变换法,当消元是按自然顺序进行时,称为高斯顺序消去法。
1.高斯顺序消去法---设线性方程组AX =b ,对增广矩阵[A ┇b ]顺序作初等行变换,使矩阵A 化为上三角形矩阵,再回代,从而求得线性方程组的解。
要求在作初等行变换消元过程中,)1,...,2,1(0)1(-=≠-n k a k kk 。
当|)1(-k kk a |很小时,消元应当停止。
当k=n-1时,消元过程完成。
注意:本章讨论线性方程组解的方法,不讨论解的存在性。
例1:解线性方程组2x 1 + x 2 + x 3 =74x 1 + 5x 2 - x 3=11x 1 - x 2 + x 3 =0解:方程组的矩阵形式为 AX=b ,其中:a 11 a 12 a 13 … a 1na 21 a 22 a 23 … a 2n…… a n1 a n2 a n3 … a nnx 1 x 2 … x n b 1 b 2 …b n2 1 1 7A = 4 5 -1 b= 111 -1 1 0第一步:列出增广矩阵2 1 1 7[A ┇b ]= 4 5 -1 111 -1 1 0第二步:对增广矩阵进行行初等变换,将系数矩阵A 化为上三角形矩阵[A ┇b]= 4 5 -1 11 0 3 -3 -31 -1 1 0 0 -1.5 0.5 -3.5 r 3+(0.5)r2 2 1 1 7 03 -3 -3 0 0 -1 -5 得到同解线性方程组(2x 1 + x 2 + x 3 = 7 3x 2 - 3x 3 =-3 -x 3 =-5第三步:对上述上三角形方程组进行回代求解,得到:x 3 =5 x 2 =4 x 1 =-1从而得到原方程组的解:X =(-1,4,5)T把原方程组化成上三角形方程组的过程称为消元过程。
线性方程组的数值算法C语言实现(附代码)

线性方程组AX=B 的数值计算方法实验一、 实验描述:随着科学技术的发展,线性代数作为高等数学的一个重要组成部分,在科学实践中得到广泛的应用。
本实验的通过C 语言的算法设计以及编程,来实现高斯消元法、三角分解法和解线性方程组的迭代法(雅可比迭代法和高斯-赛德尔迭代法),对指定方程组进行求解。
二、 实验原理:1、高斯消去法:运用高斯消去法解方程组,通常会用到初等变换,以此来得到与原系数矩阵等价的系数矩阵,达到消元的目的。
初等变换有三种:(a)、(交换变换)对调方程组两行;(b)、用非零常数乘以方程组的某一行;(c)、将方程组的某一行乘以一个非零常数,再加到另一行。
通常利用(c),即用一个方程乘以一个常数,再减去另一个方程来置换另一个方程。
在方程组的增广矩阵中用类似的变换,可以化简系数矩阵,求出其中一个解,然后利用回代法,就可以解出所有的解。
2、选主元:若在解方程组过程中,系数矩阵上的对角元素为零的话,会导致解出的结果不正确。
所以在解方程组过程中要避免此种情况的出现,这就需要选择行的判定条件。
经过行变换,使矩阵对角元素均不为零。
这个过程称为选主元。
选主元分平凡选主元和偏序选主元两种。
平凡选主元:如果()0p pp a ≠,不交换行;如果()0p pp a =,寻找第p 行下满足()0p pp a ≠的第一行,设行数为k ,然后交换第k 行和第p 行。
这样新主元就是非零主元。
偏序选主元:为了减小误差的传播,偏序选主元策略首先检查位于主对角线或主对角线下方第p 列的所有元素,确定行k ,它的元素绝对值最大。
然后如果k p >,则交换第k 行和第p 行。
通常用偏序选主元,可以减小计算误差。
3、三角分解法:由于求解上三角或下三角线性方程组很容易所以在解线性方程组时,可将系数矩阵分解为下三角矩阵和上三角矩阵。
其中下三角矩阵的主对角线为1,上三角矩阵的对角线元素非零。
有如下定理:如果非奇异矩阵A 可表示为下三角矩阵L 和上三角矩阵U 的乘积: A LU = (1) 则A 存在一个三角分解。
2线性方程组的数值解法

第二章 线性方程组的数值解法§2.0 引 言在自然科学和工程技术中很多问题的解决常常归结为解线性代数方程组,例如电学中的网络问题,船体数学放样中建立三次样条函数问题,用最小二乘法求实验数据的曲线拟合问题,解非线性方程组问题,用差分法或者有限元方法解常微分方程、偏微分方程边值问题等都导致求解线性代数方程组,而这些方程组的系数矩阵大致分为两种,一种是低阶稠密矩阵(例如,阶数大约为≤150),另一种是大型稀疏矩阵(即矩阵阶数高且零元素较多)。
设有线性方程组Ax = b ,其中⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=nn n n n n a a a a a a a a a A 212222111211为非奇异阵,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n x x x x 21,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n b b b b 21 关于线性方程组的数值解法一般有两类:直接法与迭代法。
1. 直接法就是经过有限步算术运算,可求得方程组精确解的方法(若计算过程中没有舍入误差)。
但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的近似解。
本章将阐述这类算法中最基本的高斯消去法及其某些变形。
这类方法是解低阶稠密矩阵方程组的有效方法,近十几年来直接法在求解具有较大型稀疏矩阵方程组方面取得了较大进展。
2. 迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法。
迭代法具有需要计算机的存贮单元较少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点,但存在收敛性及收敛速度问题。
迭代法是解大型稀疏矩阵方程组(尤其是由微分方程离散后得到的大型方程组)的重要方法。
§2.1 Gauss 消去法高斯(Gauss )消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元(行的初等变换),把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组(简单形式)得原方程组的解。
1. 消元例:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----⇒⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----⇒⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=21567003201111156140320111116122231111]|[b A 下面我们来讨论一般的解n 阶方程组的高斯消去法。
线性方程组的四种数值解法

线性方程组的四种数值解法(电子科技大学物理电子学院,四川 成都 610054)摘要:本文介绍了四种求解线性方程组的数值解法: 雅克比迭代法、高斯赛德尔迭代法、高斯消去法和改进的平方根法的基本原理和算法流程,通过求解具体方程,对四种求解方法进行了对比。
对于雅克比迭代法和高斯赛德尔迭代法,研究了两种算法对求解同一方程组的迭代效率差异,结果表明高斯赛德尔迭代法达到同样精度所需迭代次数较少。
对于高斯消去法,通过选择列主元的方法提高算法的准确度,计算结果表明高斯消去法计算精确,且运算复杂度也不是很高。
对于改进的平方根法,其运算复杂度低,但对于给定的方程组有着严苛的要求。
关键词:雅克比迭代法;高斯赛德尔迭代法;高斯消去法;改进的平方根法;线性方程组引言线性方程组的求解在日常生活和科研中有着极其重要的应用,但在实际运算中,当矩阵的维数较高时,用初等方法求解的计算复杂度随维数的增长非常快,因此,用数值方法求解线性方程组的重要性便显现出来。
经典的求解线性方程组的方法一般分为两类:直接法和迭代法。
前者例如高斯消去法,改进的平方根法等,后者的例子包括雅克比迭代法,高斯赛德尔迭代法等。
这些方法的计算复杂度在可以接受的范围内,因此被广泛采用。
一般来说,直接法对于阶数比较低的方程组比较有效;而后者对于比较大的方程组更有效。
在实际计算中,几十万甚至几百万个未知数的方程组并不少见。
在这些情况下,迭代法有无可比拟的优势。
另外,使用迭代法可以根据不同的精度要求选择终止时间,因此比较灵活。
在问题特别大的时候,计算机内存可能无法容纳被操作的矩阵,这给直接法带来很大的挑战。
而对于迭代法,则可以将矩阵的某一部分读入内存进行操作,然后再操作另外部分。
本文使用上述四种算法求解对应的方程组,验证各种算法的精确度和计算速度。
1 算法介绍1.1 雅克比迭代法 1.1.1 算法理论设线性方程组(1)b Ax的系数矩阵A 可逆且主对角元素 均不为零,令并将A 分解成 (2)从而(1)可写成令其中. (3)以B 1为迭代矩阵的迭代法(公式)(4)称为雅克比(Jacobi)迭代法(公式),用向量的分量来表示,(4)为(5)其中为初始向量.1.1.2 算法描述 1给定迭代初始向量X 0以及误差要求delta 2根据雅克比迭代公式计算出下一组向量 3判断X 是否满足误差要求,即||X k+1 – X k || < delta4若误差满足要求,则停止迭代返回结果;若否,则返回第二步进行下一轮迭代1.2 高斯赛德尔迭代法nna ,...,a ,a 2211()nna ,...,a ,a diag D 2211=()D D A A +-=()b x A D Dx +-=11f x B x +=b D f ,A D I B 1111--=-=()()111f x B x k k +=+⎩⎨⎧[],...,,k ,n ,...,i x a ba xnij j )k (j j i iii)k (i21021111==∑-=≠=+()()()()()Tn x ,...x ,x x 002010=1.2.1 算法理论由雅克比迭代公式可知,在迭代的每一步计算过程中是用的全部分量来计算的所有分量,显然在计算第i 个分量时,已经计算出的最新分量没有被利用,从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第次近似的分量加以利用,就得到所谓解方程组的高斯—塞德尔(Gauss-Seidel )迭代法.把矩阵A 分解成(6)其中,分别为的主对角元除外的下三角和上三角部分,于是,方程组(1)便可以写成即其中(7)以为迭代矩阵构成的迭代法(公式)(8)称为高斯—塞德尔迭代法(公式),用变量表示的形式为(9)1.2.2 算法描述 1给定迭代初始向量X 0以及误差要求delta2根据高斯赛德尔迭代公式计算出下一组向量()k x ()1+k x ()1+k ix ()()1111+-+k i k x ,...,x 1+k()1+k x()1+k jx U L D A --=()nna ,...,a ,a diag D 2211=U ,L --A ()b Ux x L D +=-22f x B x +=()()b L D f ,U L D B 1212---=-=2B ()()221f x B x k k +=+⎩⎨⎧[],...,,k ,n ,,i x a x a b a xi j n i j )k (j ij )k (j ij i ii)k (i21021111111==∑∑--=-=+=++3判断X 是否满足误差要求,即||X k+1 – X k || < delta4若误差满足要求,则停止迭代返回结果;若否,则返回第二步进行下一轮迭代1.3 高斯消去法 1.3.1 算法理论下面三种变换称为初等行变换:1.对调两行;2.以数k ≠0乘某一行中的所有元素;3.把某一行所有元素的k 倍加到另一行对应的元素上去。
线性方程组的数值解法

・3 8 ・
© 1994-2015 China Academic Journal Electronic Publishing House. All rights reserved.
第 3 期 杨凤霞: 线性方程组的数值解法 再做回代可求得 1 3 1 x 1 = , x2 = , x3 = 4 2 4 方法二: 全主元高斯消去法 计算步骤如下: ( 1) 记录未知量的初始顺序: t1 α i, i = 1, 2…, n ( 2) 消元过程: 对 k = 1, 2, …, n - 1 作如下运算 ① 选主元: 确定 r, s 使 Α rs = m ax Α ij k ≤ i, j ≤ n 若Α rs = 0, 说明系数矩阵奇异, 则转结束; ② 行交换和列交换: 若 r > k, 则交换第 r, k 两 行; 若 s > k, 则交换第 s, k 两列, 并交换 t s 和 t k 的值; ③ 消元计算: Α Α ij α Α ij ik Α kj Α kk ( 3) 回代过程: 若 Α nn = 0 则系数矩阵为奇异, 转结 束; 否则对 k = n, n - 1, …, 1 计算 x tk α ( Α k, n+ 1 2 Α kjx tj) Α kk j= k+ 1
u nn 然后按 L y = b, U x = y 解方程组 LU x = b, 从而 求得方程组 A x = b 的解。 现在用此种方法求解上例方程组。 解: 令 1 0 0 u 11 u 12 u 13 l 0 u 22 u 23 = 21 1 0 l31 l32 1 0 0 u 33 1 2 - 1 1 - 1 5 4 1 2 利用矩阵乘法可得到 1 0 0 1 0 0 l21 1 0 = 1 1 0 l31 l32 1 4 7 3 0 u 11 u 12 u 13 1 2 - 1 0 u 22 u 23 = 0 - 3 6 0 0 12 0 0 u 33 这样原方程组就化为依次求下列两个三角形方程组 1 0 0 y1 3 1 1 0 y2 = 0 4 7 3 0 y3 2 x1 y1 1 2 - 1 x 2 = y2 0 - 3 6 0 0 - 12 x 3 y3 最后求得原方程组的解为: 1 3 1 x 1 = , x2 = , x3 = 4 2 4 方 法四、 五属于同一类方法, 使用它们的条件是: 系数矩阵 A 为非奇异并且其各阶主子矩阵均非奇异。 以上列举了求解线性方程组的五类数值方法。 当 n 较小时, 我们用克莱姆法则和求逆矩阵的方法求解 较方便; 当 n 较大时, 我们用上面介绍的五种方法求解 较方便, 特别地, 当 n 很大时, 我们可按这五种方法的 解题思想编制程序, 在计算机上求解, 这是非常有效可 行的方法。
线性方程组数值解法总结

好久没来论坛,刚刚发现以前的帖子现在那么火很欣慰,谢谢大家支持!今天趁着不想做其他事情,把线性方程组的数值解法总结下,有不足的地方希望大神指教!数学建模中也会用到线性方程组的解法,你会发现上10个的方程手动解得话把你累个半死,而且不一定有结果,直接用matlab的函数,可以,关键是你不理解用着你安心吗?你怎么知道解得对不对?我打算开个长久帖子,直到讲完为止!这是第一讲,如有纰漏请多多直接,大家一起交流!线性方程组解法有两大类:直接法和迭代法直接法是解精确解,这里主要讲一下Gauss消去法,目前求解中小型线性方程组(阶数不超过1000),它是常用的方法,一般用于系数矩阵稠密,而有没有特殊结构的线性方程组。
首先,有三角形方程组的解法引入Gauss消去法,下三角方程组用前代法求解,这个很简单,就是通过第一个解第二个,然后一直这样直到解出最后一个未知数,代码如下:前代法:function [b]= qiandai_method(L,b)n=size(L,1); %n 矩阵L的行数for j=1:n-1 %前代法求解结果存放在b中b(j)=b(j)/L(j,j);b(j+1:n)=b(j+1:n)-b(j)*L(j+1:n,j);endb(n)=b(n)/L(n,n);上三角方程组用回代法,和前面一样就是从下面开始解x,代码:后代法:function [y]=houdai_method(U,y)n=size(U,1); %n 矩阵L的行数for j=n:-1:2 %后代法求解结果存放在y中y(j)=y(j)/U(j,j);y(1:j-1)=y(1:j-1)-y(j)*U(1:j-1,j);endy(1)=y(1)/U(1,1);Gauss消去的前提就是这两个算法:具体思想是把任何一个线性方程组的系数矩阵A,分解为一个上三角和一个下三角的乘积,即A=LU,其中L为下三角,U为上三角。
那么具体怎么做呢?有高斯变换,什么是高斯变换?由于时间有限我不可能去输入公式,所以我用最平白的话把它描述出来。
线性方程组的数值解法详解演示文稿

n
非行零交判换断的次元数素最个多数为为::kn1(1nnk1()n12kn)(n
k 1
1)
1 2
n(n
1)
二、矩阵三角分解法
设有线性方程组:AX=b
a11 a12 a1n
x1
b1
A
a21
a22
a2
n
,
X
x2
,
b
b2
.
an1 an2 ann
xn
bn
矩阵三角分解法包括不选主元和选主元两种方法。
1、不选主元三角分解算法 当A非奇异时,可以将A作LU分解:
1 0
0 u11 u12 u1n
A
LU
l21
1
0
0
u22
,
ln1 ln,n1 1 0 0 unn
其中:(矩阵LU分解)
(1) u1 j a1 j (i 1,2,,n), li1 ai1 / u11(i 2,,n),
1
0 0
1
2,y
2 ,
x
0
.
1 1 1 0 0 1
1 1
§3 解线性方程组的迭代法
考虑线性方程组
a11x1 a12x2 a1nxn b1
a21x1
a22x2
a2n xn
b2
an1x1 an2x2 annxn bn
也就是
Ax=b.
进行矩阵分裂
A=M-N,
(2.1) (2.2)
其中
a1(11)
0
0
a1(12) a2(22)
an(22)
a1(1n) a2(2n)
an(2n)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 线性方程组的数值解法设线性方程组a 11x 1+ a 12x 2+ a 13x 3+……+ a 1n x n =b 1a 21x 1+ a 22x 2+ a 23x 3+……+ a 2n x n =b 2……a n1x 1+ a n2x 2+ a n3x 3+……+ a nn x n =b n记为矩阵的形式 AX=b 其中 A= X = b=A 是一个n 阶方阵,X 和b 是n ×1的列阵或n 维列向量。
当|A |≠0时,方程组的解存在且唯一。
线性方程组的基本解法一般分为两大类:其一是直接法,如:克莱姆法则和高斯消去法;另一种是迭代法。
一、高斯消去法知道高斯消去法的基本思想,熟练掌握高斯顺序消去法和列主元消去法。
消去法就是按特定顺序进行的矩阵行初等变换法,当消元是按自然顺序进行时,称为高斯顺序消去法。
1.高斯顺序消去法---设线性方程组AX =b ,对增广矩阵[A ┇b ]顺序作初等行变换,使矩阵A 化为上三角形矩阵,再回代,从而求得线性方程组的解。
要求在作初等行变换消元过程中,)1,...,2,1(0)1(-=≠-n k a k kk 。
当|)1(-k kk a |很小时,消元应当停止。
当k=n-1时,消元过程完成。
注意:本章讨论线性方程组解的方法,不讨论解的存在性。
例1:解线性方程组2x 1 + x 2 + x 3 =74x 1 + 5x 2 - x 3=11x 1 - x 2 + x 3 =0解:方程组的矩阵形式为 AX=b ,其中:a 11 a 12 a 13 … a 1na 21 a 22 a 23 … a 2n…… a n1 a n2 a n3 … a nnx 1 x 2 … x n b 1 b 2 …b n2 1 1 7A = 4 5 -1 b= 111 -1 1 0第一步:列出增广矩阵2 1 1 7[A ┇b ]= 4 5 -1 111 -1 1 0第二步:对增广矩阵进行行初等变换,将系数矩阵A 化为上三角形矩阵[A ┇b]= 4 5 -1 11 0 3 -3 -31 -1 1 0 0 -1.5 0.5 -3.5 r 3+(0.5)r2 2 1 1 7 03 -3 -3 0 0 -1 -5 得到同解线性方程组(2x 1 + x 2 + x 3 = 7 3x 2 - 3x 3 =-3 -x 3 =-5第三步:对上述上三角形方程组进行回代求解,得到:x 3 =5 x 2 =4 x 1 =-1从而得到原方程组的解:X =(-1,4,5)T把原方程组化成上三角形方程组的过程称为消元过程。
将所得同解方程组按逆顺序代入求解上三角形方程组的过程称为回代过程。
这种通过消元过程和回代过程求解线性方程组的方法称为高斯顺序消去法。
高斯顺序消去法就是逐次消去未知数的系数,将方程组AX=b 化为上三角形方程组的过程。
例2:已知线性方程组⎪⎩⎪⎨⎧=+-=-+=-+21863543462321321321x x x x x x x x x解:⎪⎩⎪⎨⎧=+-=-+=-+21863543462321321321x x x x x x x x x2 6 -43 [A ┇b ]= 14 -5 36 -1 18 2⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----−−−→−-+-+7301905.131034621312)3()21(r r r r⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---−−−→−+5.2127005.1310346223)19(r r1574.22/)9888.063796.043(9888.03796.035.13796.0275.21123=⨯+⨯-=-=⨯-=-=-=x x x2.高斯顺序消去法解线性方程组的步骤: A.消元:(1)初始化:记初始给定的线性方程组AX=b 为A (0)X =b (0)(2)第1次消元:从方程组的第2至n 个方程中消去未知数x 1,得到的方程组记作A (1)X =b (1)(3)第k 次消元:计算公式:令)...,3,2,1,()0(n j i a a ij ij ==对k=1到k=n-1,若:,0)1(公式为进行消元≠-k kka由此写出增广矩阵 再变形可将A 部分变为上三角阵),...,3,2,1()0(n i b b i i ==),...,2,1(),...,2,1(0),...,2,1,(),...,2,1(/)1()1()()()1()1()()1()1(n k k i b l b b n k k i an k k j i a l a a n k k i a a l k k ik k i k i k ikk kj ik k ij k ij k kk k ik ik ++=+=++==++=+=++=-=+-----B.回代:0)1(≠-n nna 若 ∑+=----+--=-==ni j i ii j i ij k ii n nnn n n n n i a x a bx a b x 1)1()1()1()1()1()1,2,...,2,1(/)(/当。
,a k kk消元应当停止很小时||)1(- 定理1:高斯顺序消去法消元过程能进行到底的充分必要条件是系数矩阵A的各阶顺序主子式不为零;AX=b 能用高斯顺序消去法求解的充分必要条件是A 的各阶顺序主子式不为0。
例3:用高斯顺序消去法求解线性方程组x 1 + x 2+ x3 = 6x 1 + 3x 2–2x 3 = 15x 1 + x 2 + 4x 3 = 19 解:写出增广矩阵1 1 1 6[A ┇b]= 1 3 -2 1 = [A (0)┇ b (0)]5 1 4 19第一次消元:a 11=1,a 21=1,a 31=5,用l 21=-1/1=-1, l 31=-5/1=-5,乘第1行的各元素分别加到第2,3行上,得到:1 1 1 60 2 -3 -5 = [A (1)┇ b (1)]0 -4 -1 -11第二次消元:l 32=-(-4/2 )= 2乘第2行的各元素加到第3行上,得到:1 1 1 60 2 -3 -5 = [A (2)┇ b (2)]0 0 -7 -21因为07)2(33≠-=a ,回代得到: x 3 = 3721=--x 2 = (-5 + 3×3)/2 = 2x 1 = (6 - 3×1 - 2×1) = 1原方程组的解为:x 1 = 1x 2 = 2x 3 = 33.高斯列主元消去法在高斯顺序消去法中,每次消元之前,先确定主元)(1-k rk a (绝对值最大的元素):)()(max 1-≤≤1-=k ik ni k k rk a a (k =1,2,…,n -1)把第r 行作为主方程,做第k 次消元;若r ≠k ,则对增广矩阵做行初等变换,交换第r 行与第k 列,再进行消元;若r=k 则继续消元。
将增广矩阵的系数部分化为上三角形矩阵,再回代求得线性方程组的解。
当|)(1-k rk a |很小时消元应当停止。
一般先设ε>0,当|)(1-k rk a |<ε时消元停止。
例4:用高斯列主元消去法解线性方程组12x 1 - 3x 2 + 3x 3 = 15-18x 1 + 3x 2 – 1x 3 = -15x 1 + x 2 + x 3 = 6 解:写出增广矩阵12 -3 3 15[A ┇b]= -18 3 -1 -151 1 1 6选取列主元,2,1,18)0(21==-=r k a 即,作行交换(第1行与第2行)得: -18 3 -1 -15[A ┇b]= 12 -3 3 151 1 1 6消元:-18 3 -1 -15)1812(12r r + 0 -1 2.3333 5)181(13r r + 0 1.1667 0.9444 5.1667选取列主元,为主元取1667.1132=)(a ,作行交换(第2行与第3行)得:-18 3 -1 -150 1.1667 0.9444 5.1667 0 -1 2.3333 5消元:-18 3 -1 -15r3+r2(667.11) 0 1.1667 0.9444 5.1667 0 0 3.1428 9.4285回代,得到:x 3=3.0000,x 2=2.0001,x 1=1.0000原方程组的解为:x=(1.0000,2.0001,3.0000)T 严格对角占优矩阵:主对角线上每一元素的绝对值均大于同列其它各元素绝对值之和,这样的矩阵称之。
若系数矩阵A 是对称且严格对角占优矩阵或对称正定矩阵,则消元过程中主元必是)(1-k rk a ,可不必选主元而用顺序消去法求解。
二、解线性方程组的迭代法解线性方程组的迭代法,由于它具有保持迭代矩阵不变的特点,特别适用于求解大型稀疏系数矩阵的线性方程组,其基本思想是构造一串收敛到解的数列,即建立一种从已知近似解到新的近似解的规则。
设线性方程组 AX=b其中A=(a ij )n ×n 为非奇异矩阵,且a ii ≠0(i =1,2,3,…,n ) X=(x 1,x 2,x 3,…,x n )Tb=(b 1,b 2,b 3,…,b n )T将方程组变形为:X=BX+f,建立迭代公式:X (k+1)=BX (k)+f给定初始向量X (0)后,按迭代公式X (k+1)=BX (k)+f 解得解向量序列{X (k)},这就是线性方程组的迭代解法。
若迭代公式的向量序列{X (k)}收敛,设其极限向量为: X *=(x 1*, x 2*, x 3*,…, x n *) 则对迭代格式两边取极限,得到,lim lim )()1(f X X k k k k +=∞-+∞-即:X *=BX *+f ,故X *为方程组的解,此时称迭代法收敛。
1.雅可比迭代法(简单迭代法)设n 元线性方程组AX=b ,其中A=(a ij )n ×n 为非奇异矩阵,且a ii ≠0(i =1,2,3,…,n),其等价方程组如下:⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧----=----=----=--)(1)(1)(11122112323121222213132121111n n n n n n nn n n n n n x a x a x a b a x x a x a x a b a x x a x a x a b a x ΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛ解线性方程组AX =b 的雅可比迭代法公式为:⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧+----=+----=+----=--+++)(1)(1)(1)(11)(22)(11)1(2)(2)(323)(12122)1(21)(1)(313)(21211)1(1n k n n n k n k n nn k nk n n k k k k n n k k k b x a x a x a a x b x a x a x a a x b x a x a x a a x ΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛΛ(k =0,1,2,…) 给出一组初始值X (0)=(x 1(0), x 2(0),…,x n (0))T ,经反复迭代,可以得到一个向量序列{X (k)};如果{X (k)}收敛于X *,每个分量序列{x i (k )}收敛于x i (*)(i=1,2,…,n ), x i (*)(i=1,2,…,n )就是原方程组的解。