解线性方程组的基本思想
线性方程组的几种求解方法

线性方程组的几种求解方法1.高斯消元法高斯消元法是求解线性方程组的一种常用方法。
该方法的基本思想是通过对方程组进行一系列简化操作,使得方程组的解易于求得。
首先将方程组表示为增广矩阵,然后通过一系列的行变换将增广矩阵化为行简化阶梯形,最后通过回代求解出方程组的解。
2.列主元高斯消元法列主元高斯消元法是在高斯消元法的基础上进行改进的方法。
在该方法中,每次选取主元时不再仅仅选择当前列的第一个非零元素,而是从当前列中选取绝对值最大的元素作为主元。
通过选取列主元,可以避免数值稳定性问题,提高计算精度。
3.LU分解法LU分解法是一种将线性方程组的系数矩阵分解为一个下三角矩阵L 和一个上三角矩阵U的方法。
首先进行列主元高斯消元法得到行阶梯形矩阵,然后对行阶梯形矩阵进行进一步的操作,得到L和U。
最后通过回代求解出方程组的解。
4.追赶法(三角分解法)追赶法也称为三角分解法,适用于系数矩阵是对角占优的三对角矩阵的线性方程组。
追赶法是一种直接求解法,将系数矩阵分解为一个下三角矩阵L和一个上三角矩阵U,然后通过简单的代数运算即可求得方程组的解。
5.雅可比迭代法雅可比迭代法是一种迭代法,适用于对称正定矩阵的线性方程组。
该方法的基本思想是通过不断迭代求解出方程组的解。
首先将方程组表示为x=Bx+f的形式,然后通过迭代计算不断逼近x的解。
6.高斯-赛德尔迭代法高斯-赛德尔迭代法是雅可比迭代法的改进方法。
该方法在每一次迭代时,使用已经更新的解来计算新的解。
相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。
7.松弛因子迭代法松弛因子迭代法是一种对高斯-赛德尔迭代法的改进方法。
该方法在每一次迭代时,通过引入松弛因子来调节新解与旧解之间的关系。
可以通过选择合适的松弛因子来加快迭代速度。
以上是一些常用的线性方程组求解方法,不同的方法适用于不同类型的线性方程组。
在实际应用中,根据问题的特点和要求选择合适的求解方法可以提高计算的效率和精度。
计算方法3_线性方程组迭代解法

计算方法3_线性方程组迭代解法线性方程组的迭代解法是解决线性方程组的一种常见方法,常用于大规模的线性方程组求解。
该方法通过不断迭代更新解的近似值,直到满足一定的收敛准则为止。
线性方程组的迭代解法有很多种,其中最经典的是雅可比迭代法、高斯-赛德尔迭代法和超松弛迭代法。
本文将分别介绍这三种迭代解法及其计算方法。
雅可比迭代法是一种比较简单的线性方程组迭代解法,它的基本思想是先将线性方程组转化为对角占优的形式,然后通过迭代求解逐渐接近精确解。
雅可比迭代法的迭代公式为:其中,x^(k+1)是第k+1次迭代的近似解,n是未知数的个数,a_ij 是系数矩阵A的元素,f_i是方程组的右端向量的元素。
雅可比迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式,即保证矩阵A的对角元素绝对值大于其它元素的绝对值。
2.初始化向量x^(0),设定迭代终止准则。
3.根据雅可比迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
高斯-赛德尔迭代法是雅可比迭代法的改进方法,它的基本思想是在每次迭代计算x^(k+1)时,利用已经计算出的近似解作为x的一部分。
高斯-赛德尔迭代法的迭代公式为:其中,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
高斯-赛德尔迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式。
2.初始化向量x^(0),设定迭代终止准则。
3.根据高斯-赛德尔迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
超松弛迭代法是对高斯-赛德尔迭代法的一种改进方法,它引入了松弛因子ω,通过调整参数ω的值,可以加快迭代的收敛速度。
超松弛迭代法的迭代公式为:其中,0<ω<2,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
线性方程的概念与解法

线性方程的概念与解法线性方程是我们在数学中经常遇到的一类方程,其基本形式为ax + b = 0,其中a和b是已知的实数,x是未知数。
解线性方程的目标是找到满足方程的x的值。
解线性方程的方法有多种,下面将介绍常见的几种解法。
直接法:对于简单的线性方程,我们可以直接通过变量的运算来解得x的值。
例如,对于方程3x + 2 = 5,我们可以通过减去2,再除以3的操作来求解x,即x = (5-2)/3 = 1。
消元法:对于一般的线性方程组,我们可以通过消元法来求解。
消元法的基本思想是通过逐步的变换,使得方程组中的某个变量逐渐消失,从而简化方程组的解法。
我们可以通过适当的加减法来将方程组化为更简单的形式,直到最后得到只包含一个变量的方程,从而求解出该变量的值。
例如,考虑方程组:2x + 3y = 74x - y = 5我们可以通过消元法来求解该方程组。
首先,我们可以将第二个方程中的y的系数变为3,即将第二个方程乘以3,得到:12x - 3y = 15然后,我们可以将第一步得到的新方程与第一个方程相减,消去y 这个变量,得到新的方程:10x = 8最后,我们可以将方程两边同时除以10,求解出x的值为0.8。
将x的值代入方程2x + 3y = 7,可以求出y的值为2.2。
因此,该方程组的解为x = 0.8,y = 2.2。
矩阵法:对于包含多个方程的线性方程组,我们可以利用矩阵的方法求解。
矩阵法的基本思想是将线性方程组表示成矩阵的形式,然后通过矩阵的运算求解未知数。
考虑以下线性方程组:2x + 3y - z = 4x - 2y + 3z = 13x + y - 2z = 5我们可以将其表示为矩阵形式:⎡ 2 3 -1 ⎤⎡ x ⎤⎡ 4 ⎤⎢ 1 -2 3 ⎥ ·⎢ y ⎥ = ⎢ 1 ⎥⎣ 3 1 -2 ⎦⎣ z ⎦⎣ 5 ⎦然后,我们可以对这个矩阵进行行变换,将它化为上三角矩阵的形式。
通过适当的行变换操作,我们可以将第一列下方的元素变为0。
线性方程组解法归纳总结

线性方程组解法归纳总结在数学领域中,线性方程组是一类常见的方程组,它由一组线性方程组成。
解决线性方程组是代数学的基础知识之一,广泛应用于各个领域。
本文将对线性方程组的解法进行归纳总结。
一、高斯消元法高斯消元法是解决线性方程组的基本方法之一。
其基本思想是通过逐步消元,将线性方程组转化为一个上三角形方程组,从而求得方程组的解。
具体步骤如下:1. 将线性方程组写成增广矩阵的形式,即将系数矩阵和常数向量合并成一个矩阵。
2. 选取一个非零的主元(通常选取主对角线上的元素),通过初等行变换将其它行的对应位置元素消为零。
3. 重复上述步骤,逐步将系数矩阵转化为上三角形矩阵。
4. 通过回代法,从最后一行开始求解未知数,逐步得到线性方程组的解。
高斯消元法的优点是理论基础牢固,适用于各种规模的线性方程组。
然而,该方法有时会遇到主元为零或部分主元为零的情况,需要进行特殊处理。
二、克拉默法则克拉默法则是一种用行列式求解线性方程组的方法。
它利用方程组的系数矩阵和常数向量的行列式来求解未知数。
具体步骤如下:1. 求出系数矩阵的行列式,若行列式为零则方程组无解。
2. 对于每个未知数,将系数矩阵中对应的列替换为常数向量,再求出替换后矩阵的行列式。
3. 用未知数的行列式值除以系数矩阵的行列式值,即可得到该未知数的解。
克拉默法则的优点是计算简单,适用于求解小规模的线性方程组。
然而,由于需要计算多次行列式,对于大规模的线性方程组来说效率较低。
三、矩阵法矩阵法是一种将线性方程组转化为矩阵运算的方法。
通过矩阵的逆运算或者伴随矩阵求解线性方程组。
具体步骤如下:1. 将线性方程组写成矩阵的形式,其中系数矩阵为A,未知数矩阵为X,常数向量矩阵为B。
即AX=B。
2. 若系数矩阵A可逆,则使用逆矩阵求解,即X=A^(-1)B。
3. 若系数矩阵A不可逆,则使用伴随矩阵求解,即X=A^T(ATA)^(-1)B。
矩阵法的优点是适用于各种规模的线性方程组,且运算速度较快。
2.6线性方程组解的一般理论

x4
0
,
1
,
0
x5 0 0 1
2 2 6
1
1
5
1
1
,2
0
,3
0
0
1
0
0
0
1
一般解 c11 c22 c33
(c1, c2, c3为任意常数.)
8
三、非齐次线性方程组解的结构
x11 x22 xnn (I) 0 (II)
第二章 线性方程组 §2.6 线性方程组解的一般理论
一、线性方程组有解的判定定理 二、齐次线性方程组解的结构 三、非齐次线性方程组解的结构
1
一、线性方程组有解的判定定理
定理1 线性方程组 x11 x22 xnn (I) 有解
r( A) r( A) 推论1 线性方程组(I)无解 r(A) r( A) 推论2 线性方程组(I)有唯一解 r(A) r(A) n 推论3 线性方程组(I)有无穷多解 r(A) r(A) n
方程组的三个解向量 1,2 ,3满足
1
0
1
1 2 2, 2 3 1, 3 1 0
3
1
1
求 非 齐 次 线 性 方 程 组 一 的 般 解.
19
解 A是m 3矩阵, r(A) 1,
导出组的基础解系中有 含3 1 2个线性无关的解向量.
令1 2 a, 2 3 b, 3 1 c,则
其中k1 , k 2为任意实数.
21
A
2 1
3 0
1 2
1 2
3 6
0 0
0 0
1 0
1 0
1 0
5 0
0
0
4
5
3
数值分析第三章线性方程组迭代法

数值分析第三章线性方程组迭代法线性方程组是数值分析中的重要问题之一,涉及求解线性方程组的迭代法也是该领域的研究重点之一、本文将对线性方程组迭代法进行深入探讨。
线性方程组的一般形式为AX=b,其中A是一个n×n的系数矩阵,x和b是n维向量。
许多实际问题,如电路分析、结构力学、物理模拟等,都可以归结为求解线性方程组的问题。
然而,当n很大时,直接求解线性方程组的方法计算量很大,效率低下。
因此,我们需要寻找一种更高效的方法来求解线性方程组。
线性方程组迭代法是一种基于迭代思想的求解线性方程组的方法。
其基本思想是通过构造一个序列{xn},使得序列中的每一项都逼近解向量x。
通过不断迭代,可以最终得到解向量x的一个近似解。
常用的线性方程组迭代法有雅可比迭代法、高斯-赛德尔迭代法和逐次超松弛迭代法等。
雅可比迭代法是其中的一种较为简单的迭代法。
其基本思想是通过分解系数矩阵A,将线性方程组AX=b转化为x=Tx+c的形式,其中T是一个与A有关的矩阵,c是一个常向量。
然后,通过不断迭代,生成序列xn,并使序列中的每一项都逼近解向量x。
高斯-赛德尔迭代法是雅可比迭代法的改进方法。
其核心思想是利用当前迭代步骤中已经求得的近似解向量的信息。
具体而言,每次迭代时,将前一次迭代得到的近似解向量中已经计算过的分量纳入计算,以加速收敛速度。
相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。
逐次超松弛迭代法是高斯-赛德尔迭代法的改进方法。
其核心思想在于通过引入一个松弛因子ω,将高斯-赛德尔迭代法中的每次迭代变为x[k+1]=x[k]+ω(d[k+1]-x[k])的形式,其中d[k+1]是每次迭代计算得到的近似解向量的一个更新。
逐次超松弛迭代法可以根据问题的特点调整松弛因子的值,以获得更好的收敛性。
除了以上提到的三种迭代法,还有一些其他的线性方程组迭代法,如SOR迭代法、共轭梯度法等。
这些方法都具有不同的特点和适用范围,可以根据问题的具体情况选择合适的迭代法。
数学教案线性方程组的解法

数学教案线性方程组的解法数学教案:线性方程组的解法一、引言数学是一门理科学科,它的基础知识被广泛应用于各个领域。
其中,线性方程组作为数学的重要内容之一,具有较广泛的应用背景。
本教案将围绕线性方程组的解法展开,通过分析实际生活中的问题,引导学生理解和应用线性方程组的求解方法。
二、知识概述1. 线性方程组的定义:线性方程组是由一组线性方程构成的方程组,其中每个方程都是形如a₁x₁+a₂x₂+...+aₙxₙ=b的线性方程。
2. 解的概念:线性方程组的解是使得方程组中所有方程都成立的数值组合,也就是使得所有方程的左边等于右边的组合。
3. 解的形式:线性方程组的解可以有无穷个,也可能没有解,还可能只有唯一解。
4. 解的表示方式:线性方程组的解可以用数学符号表示,也可以用文字描述。
三、解法一:代入法1. 基本思想:选取方程组中的一个方程,将其它方程中的变量用这个方程中的变量表示,然后得到一个只含有一个变量的方程,通过求解这个方程得到一个解,再将这个解代入到其它方程中,验证是否满足。
2. 解题示例:解方程组2x + 3y = 8x - 2y = -1选取第一个方程,得到x = (8 - 3y) / 2,然后将x代入第二个方程中,得到(8 - 3y) / 2 - 2y = -1,通过求解这个方程可以得到y = 2,将y的值代入x的表达式中,可得到x = 1。
3. 优缺点:代入法操作简单,容易理解,但当方程较多时,计算量较大。
四、解法二:消元法1. 基本思想:利用多个方程之间的等价变换,将方程组转化为简化的三角形方程组,然后通过逐步求解,得到方程组的解。
2. 解题示例:解方程组x + 3y = 52x - y = 4通过第一个方程的乘以2,得到2x + 6y = 10,并将其与第二个方程相减,得到7y = 6,解得y = 6 / 7,将y的值代入第一个方程,可得到x = 5 - 3 * (6 / 7)。
3. 优缺点:消元法能够准确快速地求得解,并且适用于任意行列数的方程组,但需要较强的计算能力。
线性方程组的解的结构与性质

线性方程组的解的结构与性质线性方程组是数学中常见的问题,它在各个领域都有广泛的应用。
解决线性方程组问题需要了解其解的结构与性质,这将有助于我们更好地理解和应用线性方程组。
一、线性方程组的定义与基本性质线性方程组由一组线性方程组成,每个方程都是关于未知数的一次多项式,并且未知数的次数都为1。
线性方程组的一般形式可以表示为:a₁₁x₁ + a₁₂x₂ + ... + a₁ₙxₙ = b₁a₂₁x₁ + a₂₂x₂ + ... + a₂ₙxₙ = b₂...aₙ₁x₁ + aₙ₂x₂ + ... + aₙₙxₙ = bₙ其中,a₁₁、a₁₂、...、aₙₙ为系数,x₁、x₂、...、xₙ为未知数,b₁、b₂、...、bₙ为常数。
线性方程组的基本性质包括:1. 线性方程组可以有唯一解、无解或无穷多解。
2. 若线性方程组有解,则其解可以表示为一个向量。
3. 若线性方程组有解,则其解的个数与未知数的个数之间存在关系。
二、线性方程组的解的结构线性方程组的解的结构与其系数矩阵的秩有关。
系数矩阵是指将线性方程组的系数按顺序排列形成的矩阵。
1. 若系数矩阵的秩等于未知数的个数,即rank(A) = n,则线性方程组有唯一解。
解向量可以通过高斯消元法或矩阵求逆的方法求得。
2. 若系数矩阵的秩小于未知数的个数,即rank(A) < n,则线性方程组有无穷多解。
此时,解向量可以表示为特解加上齐次方程的解的线性组合。
特解可以通过高斯消元法或矩阵求逆的方法求得。
3. 若系数矩阵的秩小于未知数的个数,并且存在某个未知数的系数全为0,则线性方程组无解。
三、线性方程组的解的性质线性方程组的解具有以下性质:1. 若线性方程组有唯一解,则解向量是唯一确定的。
不同的线性方程组可能具有相同的解向量。
2. 若线性方程组有无穷多解,则解向量可以表示为特解加上齐次方程的解的线性组合。
特解可以通过高斯消元法或矩阵求逆的方法求得。
3. 若线性方程组有无穷多解,则解向量的个数与未知数的个数之间存在关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四:基本方法基本思路将在解题的过程中得到体现。
1.(求线性方程组的唯一解或特解),这类问题的求法分为两类:一类主要用于解低阶稠密矩阵——直接法;一类是解大型稀疏矩阵——迭代法。
1.1利用矩阵除法求线性方程组的特解(或一个解)方程:AX=b,解法:X=A\b,(注意此处’\’不是’/’)例1-1 求方程组的解。
解: A = ; = ;b=(1,0,0,0,1)’由于>>rank(A)=5,rank( )=5 %求秩,此为R(A)=R()>=n的情形,有唯一解。
>>X= A\b %求解X =(2.2662, -1.7218, 1.0571,-0.5940, 0.3188)’ 或用函数rref求解,>>sv=rref(A:b);所得sv的最后一列即为所要求的解。
1.2 利用矩阵的LU、QR和cholesky分解求方程组的解这三种分解,在求解大型方程组时很有用。
其优点是运算速度快、可以节省磁盘空间、节省内存。
I) LU分解又称Gauss消去分解,可把任意方阵分解为下三角矩阵的基本变换形式(行交换)和上三角矩阵的乘积。
即A=LU,L为下三角阵,U为上三角阵。
则:A*X=b 变成L*U*X=b所以X=U\(L\b) 这样可以大大提高运算速度。
命令[L,U]=lu (A)在matlab中可以编如下通用m 文件:在Matlab中建立M文件如下% exp1.mA;b;[L,U]=lu (A);X=U\(L\b)II)Cholesky分解若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即:其中R为上三角阵。
方程A*X=b 变成所以在Matlab中建立M文件如下% exp2.mA;b;[R’,R]=chol(A);X=R\(R’\b)III)QR分解对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即:A=QR方程A*X=b 变形成QRX=b所以X=R\(Q\b)上例中[Q, R]=qr(A)X=R\(Q\B)在Matlab中建立M文件如下% exp3.mA;b;[Q,R]=qr(A);X=R\(Q\b)2.求线性齐次方程组的通解(A*X=0)在Matlab中,函数null用来求解零空间,即满足A•X=0的解空间,实际上是求出解空间的一组基(基础解系)。
在Matlab中建立M文件如下% exp4.mformat rat %指定有理式格式输出A;b=0;r=rank(A);bs=null(A,‘r’); %一组基含(n-r)个列向量% k ,k ,……,k% X= k *bs(:,1)+ k *bs(:,2)+……+ k *bs(:,n-r) 方程组的通解pretty(X) %让通解表达式更加精美3 求非齐次线性方程组的通解(A*X=b)非齐次线性方程组需要先判断方程组是否有解,若有解,再去求通解。
因此,步骤为:第一步:判断AX=b是否有解,(利用基本思路的第一条)若有解则进行第二步第二步:求AX=b的一个特解第三步:求AX=0的通解第四步:AX=b的通解为:AX=0的通解加上AX=b的一个特解。
在Matlab中建立M文件如下% exp4.mclear allA;b; %输入矩阵A,b[m,n]=size(A);R=rank(A);B=[A b];Rr=rank(B);format ratif R==Rr&R==n % n为未知数的个数,判断是否有唯一解x=A\b;elseif R==Rr&R<n %判断是否有无穷解x=A\b %求特解C=null(A, r ) %求AX=0的基础解系,所得C为n-R列矩阵,这n-R列即为对%应的基础解系% 这种情形方程组通解xx=k(p)*C(:,P)(p=1…n-R)else X= No solution! % 判断是否无解end第3章线性方程组的迭代解法3.1实验目的理解线性方程组计算机解法中的迭代解法的求解过程和特点,学习科学计算的方法和简单的编程技术。
3.2概念与结论1.n阶线性方程组如果未知量的个数为n ,而且关于这些未知量x1,x2, …,x n的幂次都是一次的(线性的)那末, n 个方程a11x1+a12x2+ …+a1n x n=b1┆┆┆(1)a n1x1+a n2x2+ …+a nn x n=b n构成一个含n个未知量的线性方程组,称为n阶线性方程组。
其中,系数a11,…,a1n,a21, …,a2n, …,a n1, …,a nn和b1, …,b n都是给定的常数。
方程组(1)也常用矩阵的形式表示,写为Ax=b其中,A是由系数按次序排列构成的一个n阶矩阵,称为方程组的系数矩阵,x和b都是n维向量,b称为方程组的右端向量。
2. n阶线性方程组的解使方程组(1)中每一个方程都成立的一组数x1*,x2*, …,x n*称为式(1)的解,把它记为向量的形式,称为解向量.3. 向量范数的三种常用范数4.矩阵的四种常用范数5.谱半径 设 n ⨯n 阶矩阵A 的特征值为λ i (i=1,2,3……n),则称ρ (A) = MAX | λi |1≤i ≤ n为矩阵A 的谱半径.矩阵范数与谱半径之间的关系为: ρ (A) ≤ ||A||6.严格(行)对角占优阵A如果 矩阵 A=(a ij )满足n⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛====∑∑=≤≤∞=n n k k k nk n k kx x x x x x x x x x 21122111m ax .211222211121112111111maxmax最大特征值是行范数列范数A A A a a a a a a a a a A a A a A a A T nn n n n n n k kj n j f n k jk n j n k kj n j λλ=⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛====∑∑∑∑===≤≤∞=≤≤|a ii | > ∑ |a ij | i=1,2,……n,j=1,j ≠i则称方阵A 是严格(行)对角占优的.7.收敛定理对任意初始向量x (0)及任意右端向量 g ,由迭代x (k+1) =B x (k) +g 产生的迭代向量序列{x (k)}收敛的充要条件是谱半径ρ(B )<18.收敛判别条件判别条件1:若||B||<1, 则迭代x (k+1) =B x (k) +g 对任何初始向量x (0)都收敛.判别条件2:如果A 为严格对角占优阵,则其 Jacobi 迭代和Seidel 迭代对任何初始向量x (0)都收敛。
判别条件3:如果A 为对称正定阵,则其 Seidel 迭代对任何初始向量x (0)都收敛。
9.迭代法的误差估计若||B||<1,则对迭代格式 x (k+1) =B x (k) +g 有3.3 程序中Mathematica 语句解释a*matrix 数a 与矩阵matrix 相乘matrix1+matrix2 矩阵matrix1和矩阵matrix2相加(注意矩阵的大小相同)matrix1.matrix2 矩阵matrix1和矩阵matrix2相乘(注意矩阵乘法的规则)Transpose[matrix] 求矩阵matrix 转置Inverse[matrix] 求矩阵(方阵) matrix 的逆)()1(*)()1()(*)(1.21.1o k k k k k x x BB x x x x B B x x --≤---≤--DiagonalMatrix[list] 使用列表list 中的元素生成一个对角矩阵.IdentityMatrix[n] 生成n 阶单位矩阵Max[x] 求向量x 中元素的最大值3.4 方法、程序、实验解线性方程组的迭代法是将线性方程组 Ax=b 化为等价线性方程组x=Bx+f再由矩阵迭代格式x (k+1)=Bx (k)+f构造向量序列{x (k)}来求线性方程组解的。
如果得出的向量序列{x (k)}收敛至某个向量x *,则可得该向量x *就是所求方程组 Ax=b 的准确解.线性方程组的迭代法主要有Jocobi 迭代法、Seidel 迭代法和超松弛(Sor)迭代法。
1. Jocobi 迭代法1) Jocobi 迭代法的构造过程假设a ii ≠0,依次在第i 个方程解出x i , i=1,2,⋯,n 并令c ij = -a ij /a ii (i ≠j) , g i = b i /a ii就得到如下Jocobi 迭代格式:x 1(k+1)= c 12x 2(k)+c 13x 3(k)+⋅⋅⋅⋅ +c 1n x n (k)+g 1x 2(k+1)=c 21x 1(k) +c 23x 3(k)+⋅⋅⋅⋅ +c 2n x n (k)+g 2。
x n (k+1)=c n1x 1(k) +c n2x 2(k)+⋅⋅⋅⋅ +c n(n-1)x n-1(k) + g n若令⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n n n n n n J g g g g x x x x c c c c c c B 212121221112000则有Jocobi 迭代的矩阵格式:x (k+1) = B J x (k) +g JB J 称为Jocobi 迭代矩阵。
Jocobi 迭代可以写成如下紧凑格式:在给定初始迭代向量x (0)后就可以进行Jocobi 迭代求解了。
2) Jacobi 迭代算法1.输入变量个数n 、初值向量x(0)、迭代精度eps 、系数矩阵A 、常数项b 和迭代最大次数nmax 2 For i=1,2,…,n2.1 如果|a ii |<eps1,则输出“迭代失败”提示并终止3. Bj ⇐ E-D -1A4. g j ⇐ D -1b5.For k=1,2,…,nmax5.1 x ⇐Bj.x0+ g j5.2 如果||x-x0||<eps ,输出解向量x ,终止;否则x(0) ⇐ x6. 如果||x-x0||>eps ,输出迭代失败,终止。
3) Jacobi 迭代法程序Clear[a,b,x];nmax=500;n=Input[“线性方程组阶数n=”];a=Input["系数矩阵A="];b=Input["常数项b="];x0=Input["输入迭代初值向量x0"];eps1=0.;eps=Input["输入精度控制eps="]; ni ni j j ii i k j ii ij k i a b x a a x ,,2,11)()1( =≠=+∑--=Do[If[Abs[a[[i,i]]]<eps1,t1=1;Return[],t1=0],{i,1,n}];If[t1==1,Print["Jacobi迭代法失效"],d=DiagonalMatrix[Table[a[[i,i]],{i,1,n}]];d1=Inverse[d];bj=IdentityMatrix[n]-d1.a;gj=d1.b;Do[ x=bj.x0+gj;err=Max[Abs[x-x0]];Print["x=",x//N," i=",i," err=",err//N];If[N[err]<eps,Break[],x0=x],{i,1,nmax}];If[err>=eps,Print["迭代失败"]]]说明本程序用于求线性方程组Ax=b的解。