雅可比迭代法
Jacobi迭代法

Jacobi 迭代法设方程组Ax=b 中的A 是n n ⨯阶矩阵,x 和b 都是n 维列向量。
若系数矩阵A 为非奇异的且0,1,2,ii a i n ≠=L ,将A 分解为:A=D+L+U其中1122(,,,)nn D diag a a a =L21120000000n n a L a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦L L M M O L, 121200000n n a a a U ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦L L M M OM L 将方程组1,1,2,,nijji j a xb i n ===∑L乘以1iia ,得到等价的方程组 11(),1,2,,ni i ij j j ii j ix b a x i n a =≠=-=∑L简记为:X Bx f =+其中 B=I-D1-A=-D1-(L+U), f= D1-b我们称()x Bx f ϕ=+为迭代函数,任取初始向量(0)x x =,按照(1)()k k xBx f +=+用矩阵运算表示,完成这一步骤相当于用k L 左乘以第k-1步所形成的方程组,即形式,称这种迭代方法为Jacobi 迭代法。
Jacobi 迭代法算法简单描述:(0)(0)(0)(0)12(,,,),T n x x x x =L ( 向量初始)For 1,2,k =L For 1,2,,k n =L如果()(1)k k xx ε--≤ 停止,否则Next k用Jacobi 迭代法求解方程组实例为:1231231222213225x x x x x x x x x +-=⎧⎪++=⎨⎪++=⎩,的解,初始向量(0)(0,0,0),T x = 解 由公式知,Jacobi 迭代法为:(1)()()123(1)()()213(1)()()3121223522k k k k k k k k k x x x x x x x x x +++⎧=-+⎪=--⎨⎪=--⎩ 由初始向量(0)(0,0,0),T x=迭代可得(1)(1,3,5),T x =(2)(5,3,3),T x =--(3)(1,1,1),T x =(4)(1,1,1),T x =所以方程组的解为(1,1,1)T x =。
雅可比迭代法和高斯塞德尔迭代法对比

雅可比迭代法和高斯塞德尔迭代法对比
雅可比迭代法和高斯塞德尔迭代法都是用来解决线性方程组的迭代算法。
不同之处在于,雅可比迭代法将方程组中的每个未知数都独立地迭代求解,即在每个迭代中,只使用上一次迭代中的所有未知数的初始值,而不考虑它们在这次迭代中的更新值。
这样,每次迭代都需要计算整个方程组的解,迭代的收敛速度比较慢。
而高斯塞德尔迭代法则是从第一个未知数开始进行迭代,每个未知数在这次迭代中使用已经计算出的先前未知数的更新值,并且在下一次迭代中更新自己的值。
这样每次迭代只需要计算方程组的一部分,因此迭代的收敛速度比雅可比迭代法更快。
综上所述,虽然两种方法都可以解决线性方程组的问题,但高斯塞德尔迭代法是一个更优秀的算法,具有更快的收敛速度。
jacobi迭代法原理

jacobi迭代法原理Jacobi迭代法是一种解线性方程组的方法,用于求解形如Ax=b的线性方程组。
其基本原理是通过迭代逼近的方法逐步优化解的精度,直至满足所需的精度要求。
假设我们要求解的线性方程组为n个未知数,即有n个方程。
Jacobi迭代法的关键思想是将每个未知数的解按照某种次序进行更新,并且在更新过程中以当前的解作为项的更新依据,而不是使用“全局”的解。
首先,我们将线性方程组表示为一个矩阵形式:Ax=b,其中A是n×n的系数矩阵,x是n×1的未知数向量,b是n×1的常数向量。
然后,我们将A矩阵分解为两个矩阵D和R,其中D是A的对角线矩阵,R是A去掉对角线元素后的剩余矩阵。
即A=D+R。
接下来,我们将方程组改写为迭代的形式:Dx^{(k+1)} = -R*x^{(k)} + b,其中x^{(k)}表示第k次迭代的解。
根据上述迭代公式,我们可以得到每次迭代的更新公式为x_i^{(k+1)} = (-1/D_{ii}) * (Sum(R_{ij} * x_j^{(k)}) - b_i),其中Sum表示对j的求和,i表示第i个未知数。
Jacobi迭代法的迭代过程就是根据上述更新公式,依次对每个未知数进行更新,直至解满足所需精度要求或达到最大迭代次数。
需要注意的是,为了Jacobi迭代法的收敛,系数矩阵A中的对角线元素必须非零,并且非对角线元素的绝对值之和必须小于每个对角线元素的绝对值。
总的来说,Jacobi迭代法通过逐个更新未知数的解,通过迭代逼近的方式求解线性方程组。
它的优点是易于理解和实现,但缺点是收敛速度较慢,对于大型问题可能需要较多的迭代次数。
第八节 雅可比迭代法

1)
1( 5
x1(k1)
x2( k 1)
4.2)
取 x(0)=(0,0,0)T 计算如下:
k
x1(k)
1
0.72
x2(k) 0.902
…
…
…
8 1.099998 1.199999
x3(k) 1.1644
… 1.3
上页 下页 返回
三 迭代收敛的充分条件
第三章 第八节
定理 1 在下列任一条件下,雅克比迭代法收敛。
上页 下页 返回
a i j1 ii
1
ji
时,高斯——塞德尔迭代法收敛
定义
若 | aii | | aij | ji
( i 1 , 2 , , n )
或 | a jj | | aij |
i j
( j 1 , 2 , , n )
称矩阵 A 行(或列)严格对角占优。
上页 下页 返回
第三章 第八节
定理3 若矩阵 A 行(或列)严格对角占优,则
则有x* =Bx*+f , 即x*为原方程组Ax=b 的解,B
称为迭代格式(1)的迭代矩阵。
上页 下页 返回
第三章 第八节
问题: 如何构造迭代格式,迭代法产生的 向量 序列{ x(k) }的收敛条件,收敛速度,误差估计等。
一 雅可比迭代法
设方程组
a11x1 a12 x2 a1n xn b1
Seidel 迭代法收敛。
证 A =D-L-LT , BG =(D-L) -1LT ,设 为BG 的特
征值, y 为对应的特征(复)向量,即
(D-L) -1LT y = y , LT y = (D-L) y ,则
[LT y, y ]= [ (D-L) y , y ]
类矩阵两种迭代法的收敛性比较

类矩阵两种迭代法的收敛性比较引言:在科学计算中,线性方程组的求解是很普遍的问题。
尤其是在大型科学计算中,线性方程组的求解是最重要的任务之一。
线性方程组的求解有很多种方法,例如高斯消元法、LU分解法、迭代法等等,其中迭代法是一种高效的方法。
迭代法的思想是从一个初值解开始,逐步改进解的准确度,直到满足误差要求。
在本文中,我们将讨论两种类矩阵迭代法的收敛性比较,即雅可比迭代法和高斯-赛德尔迭代法。
1.雅可比迭代法(Jacobi Iterative Method):雅可比迭代法是最简单的迭代法之一。
它是基于线性方程组的矩阵形式 Ax=b,将 A 分解成 A=D-L-U(D为A的对角线元素,L为A的下三角矩阵,U为A的上三角矩阵),其中 D 为对角线元素,L为严格下三角矩阵,U 为严格上三角矩阵。
则有如下迭代关系式: x^{(k+1)}=D^{-1}(L+U)x^{(k)}+D^{-1}b (1)其中,x^{(k)} 为 k 次迭代后的解,x^{(0)} 为初始解。
雅可比迭代法的迭代矩阵为M = D^{-1}(L+U)。
以下是雅可比迭代法的收敛性分析:定理1:若矩阵 A 为对称正定矩阵,则雅可比迭代法收敛。
证明:由于 A 为对称正定矩阵,所以存在唯一的解。
假设迭代后得到的解为 x^{(k)},则我们可以用误差向量 e^{(k)} = x-x^{(k)} 表示剩余项,则有 Ax^{(k)}-b = e^{(k)}。
对 (1) 式两边同时乘以 A^-1,得:x^{(k+1)}=x^{(k)}-A^{-1}e^{(k)}。
(2)将 (2) 式代入 Ax^{(k)}-b = e^{(k)} 中,得:Ax^{(k+1)}-b = Ae^{(k)}.(3)由于 A 为对称正定矩阵,则存在 A=Q\\Lambda Q^{-1},其中Q 为正交矩阵,\\Lambda 为对角矩阵。
因此,我们可以将 (3) 式转化为:\\| x^{(k+1)}-x \\|_{A} =\\| Q^{-1}A^{-1}Qe^{(k)}\\|_{\\Lambda} \\leq \\rho (Q^{-1}A^{-1}Q)\\|e^{(k)}\\|_{A}。
(完整版)第八节雅可比迭代法与高斯-塞德尔迭代法综述.doc

第八节 雅可比迭代法与高斯 —塞德尔迭代法一 雅可比迭代法设线性方程组Ax b(1)的系数矩阵 A 可逆且主对角元素 a 11,a 22,...,ann 均不为零 ,令D diag a 11 ,a 22 ,...,a nn并将 A 分解成AA D D(2)从而 (1) 可写成Dx D A x b令x B 1 xf 1其中 B 1I D 1 A, f 1 D 1b .(3)以B 1为迭代矩阵的迭代法(公式 )xk 1B 1 x kf 1(4)称为雅可比 (Jacobi) 迭代法 ( 公式 ), 用向量的分量来表示,(4) 为x i( k 1)1 n(j k )b ia i j xaiij 1j ii 1,2,...n,k 0,1,2,...(5)T其中 xx 1 0 ,x 20 ,...x n 0为初始向量 .由此看出 , 雅可比迭代法公式简单 , 每迭代一次只需计算一次矩阵和向量的乘法. 在电算时需要两组存储单元 , 以存放 x k及 x k 1 . 例1例1 用雅可比迭代法求解下列方程组10 x 1x 2 2x 3 7.2x 1 10x 22x 3 8.3x 1x 2 5x 34.2解将方程组按雅可比方法写成x 10.1x 20.2x 3 0.72 x 2 0.1x 1 0.2x 30.83x 30.2x 10.2x 20.84取初始值 xx 1 0 ,x 20 , x 3 0TT0,0,0, 按迭代公式x 1 k 10.1x 2 k0.2x 3k 0.72 x 2k 1 0.1x 1 k0.2x 3 k0.83 x 3k 1 0.2x 1 k 0.2x 2k0.84进行迭代,其计算结果如表1 所示表 1k 0 1 2 34 56 7x 1 k 00.720.9711.0571.08531.09511.0983x 2 k0.831.0701.157 1.18531.19511.19831x 3 k0.841.1501.248 1.28281.29411.29802二 高斯 — 塞德尔迭代法由雅可比迭代公式可知 , 在迭代的每一步计算过程中是用x k的全部分量来计算xk 1 的所有分量 , 显然在计算第 i 个分量 x ik 1时 , 已经计算出的最新分量 x 1 k 1 ,...,x i 1 k 1 没有被利 用,从直观上看 , 最新计算出的分量可能比旧的分量要好些. 因此,对这些最新计算出来的第 k 1的分量 xjk 1加以利用 , 就得到所谓解方程组的高斯— 塞德( Gauss-Seidel )次近似 xk 1迭代法 .把矩阵 A 分解成A DL U(6)其中Ddiag a 11 ,a 22 ,...,a nn,L , U分别为 A 的主对角元除外的下三角和上三角部分 , 于是 , 方程组 (1) 便可以写成DL x Ux b即x B 2 x f 2其中B 2 D L 1f 2U , 以B 2为迭代矩阵构成的迭代法( 公式 )xk1B x kf1D L b(7)2 2称为高斯 — 塞德尔迭代法 ( 公式 ), 用 量表示的形式为x i( k 1 )1i 1(j k 1 )b ia ij x n(8)a ij x (j k )a iij1j i 1i 1,2,n,k 0,1,2,...(9)由此看出 , 高斯 — 塞德尔迭代法的一个明显的优点是 , 在电算时 , 只需一组存储单元 ( 计算出k 1kk 1kx i后 x i 不再使用 , 所以用 x i 冲掉 x i, 以便存放近似解 .例 2 例 2 用高斯 —— 塞德尔迭代法求解例 1.取初始值x 0x 1 0 ,x 20 , x 3T解0,0,0, T,按迭代公式x 1 k 10.1x 2k0.2x 3 k 0.72 x 2k 1 0.1x 1 k 10.2x 3k0.83x 3 k 1 0.2x 1 k 10.2x 2 k 10.84进行迭代,其计算结果如下表2表 2k0 1 23456 7 x 1 k0.721.04308 1.093 1.099131.099891.099991.113x 2 k0.902 1.167191.1951.199471.199931.199991.272x 3 k1.164 1.28205 1.2971.299721.299961.31.3477从此例看出 , 高斯 — 塞德尔迭代法比雅可比迭代法收敛快( 达到同样的精度所需迭代次数少 ), 但 这个结论 , 在一定条件下才是对的 , 甚至有这样的方程组 , 雅可比方法收敛,而高斯 — 塞德尔迭代法却是发散的 .三 迭代收敛的充分条件定理 1在下列任一条件下, 雅可比迭代法 (5) 收敛 .B 1 max na ij1a iiij j1i①;B 1naij11maxaiiji 1②j i;I D 1ATmax naij1ji 1 a jj③i j定理 2设 B 1,B 2 分别为雅可比迭代矩阵与高斯 — 塞德尔迭代矩阵 , 则B 2B 1(10)从而,当B1naij1maxa iiijj 1i时,高斯 — 塞德尔迭代法 (8) 收敛 .证明由 B 1,B 2的定义 ,它们可表示成B 1D 1 L UB 21D L 1U I D 1L D 1U用 e 表示 n 维向量e1,1,...,1 T , 则有不等式B 1 e B 1 eB 1D 1 LD 1U这里 , 记号|·|表示其中矩阵的元素都取绝对值, 而不等式是对相应元素来考虑的, 于是D 1U eB 1 D 1L eID 1 L1B 1Ie容易验证nnD 1LD 1 L所以,ID1L 及ID 1L 可逆,且ID 1L 1I D 1 L ...n 1D 1 LID 1 Ln11... D 1LI D 1LID 1L1I从而有B 2 e ID 1L 1D 1U eID 1L1I D 1L 1 B I e1I1 B 1IID 1 L 1eB 1 e因此必有B 2B 1因为已知B 1 1所以 B 2 1 .即高斯 — 塞德尔迭代法收敛 .若矩阵 A 为对称,我们有 定理 3 若矩阵 A 正定 , 则高斯 — 塞德尔迭代法收敛 . 证明把实正定对称矩阵 A 分解为A D LL TUL T, 则 D 为正定的 , 迭代矩阵B 2D L 1 L T设 是B 2的任一特征值 , x 为相应的特征向量 , 则D L 1xxL T以 D L 左乘上式两端 , 并由 A D L L T 有1 L T x Ax 用向量 x 的共轭转置左乘上式两端 , 得1x T L T xx T Ax(11)求上式左右两端的共轭转置, 得1x T L x x T Ax以1和1分别乘以上二式然后相加, 得1 1 x T L TL x2x T Ax由 AD L L T ,得11x T D A x2x T Ax即221x T L x1x T Ax(12)因为 A 和 D 都是正定的 , 且 x 不是零向量 , 所以由 (11) 式得1, 而由 (12) 式得12, 即1, 从而B 21, 因而高斯 — 塞德尔迭代法收敛 .定义 1 设 Aa ijn n为 n 阶矩阵 .① ①如果na ij ,i 1,2,...na iij ij i(13)即 A 的每一行对角元素的绝对值都严格大于同行其他元素绝对值之和, 则称 A 为严格对角优势矩阵.② ②如果na ij ,aiii 1,2,...nj ij i且至少有一个不等式严格成立 , 则称 A 为弱对角优势矩阵 .2 1 0 1 1 0 13 1 1 2 1例如13 是严格对角优势矩阵,13 是弱对角优势矩阵 .A 11A 12定义 2设 A a ijn n是 n 阶矩阵,如果经过行的互换及相应列的互换可化为 0A22,即存在 n 阶排列矩阵 P, 使P T APA 11 A 120 A 22其中A 11,A22 为方阵,则称A 是可约的 , 否则称 A 为不可约的 .A 是可约矩阵 , 意味着Ax b 可经过若干次行列重排, 化为两个低阶方程组 ,事实上 ,Ax b 可化为 P T AP P T x P T b , 记P T y1 , d x y2 P T b dy d12于是,求解 Ax b 化为求解 A 11 y1A 12 y2 dA 22 y 2d1 2可以证明 , 如果 A 为严格对角优势矩阵或为不可约弱对角优势矩阵 , 则 A 是非奇异的 .定理 4 如果 A 为严格对角优势矩阵或为不可约弱对角优势矩阵, 则对任意 x 0 , 雅可比迭代 法(4) 与高斯 — 塞德尔迭代法 (8) 均为收敛的 .证明 下面我们以 A 为不可约弱对角优势矩阵为例, 证明雅可比迭代法收敛, 其他证明留给 读者 .要证明雅可比迭代法收敛,只要证 B 11,B 1是迭代矩阵 .用反证法 , 设矩阵B 1有某个特征值, 使得1, 则 det IB 10,由于 A 不可约,且具有弱对角优势,所以D 1 存在,且I B 1IID 1AD 1D A D从而det D A D另一方面,矩阵DAD与矩阵 A 的非零元素的位置是完全相同的,所以D AD也是不可约的 , 又由于1, 且 A 弱对角优势,所以na iia iia ij ,i 1,2,...nj ij i并且至少有一个 i 使不等号严格成立. 因此 , 矩阵D AD弱对角优势,故DA D为不可约弱对角优势矩阵 . 从而det D A D 0矛盾,故B1的特征值不能大于等于1,定理得证 .。
第八节 雅可比与高斯—塞德尔迭代法.ppt

建 立 迭 代 格
x
( k 1) 1
1 a 11
(
a
12
x
(k 2
)
a
13
x
(k 3
)
a
1n
x
(k) n
b1
)
x
( k 1) 2
1 a 22
(a
21
x
( k 1) 1
a
23
x
(k 3
)
a
2n
x
(k) n
b2
)
式
x
( k 1) n
1 a nn
(a
n1
x
(k 1
1)
a
n
n1
x
( k 1) n1
x2(k)
取
1 0.72
0.83
x3(k) 0.84
x(0) (0,0,0)T 2 0.971
1.07
1.15
计算如下
……
…
…
11 1.099993 1.199993 1.299991
12 1.099998 1.199998 1.299997
数学学院 信息与计算科学系
例2 用Gauss—Seidel 迭代法解上题。
B2 = BG =(D-L)-1U
数学学院 信息与计算科学系
例如 已知线性方程组 Ax=b 的矩阵为
A
2 1
1 1.5
其G-S迭代矩阵为
BG ( D L)1U
2 1
01 0
3 2
0
1 0
1 3
3 2
1
0 0 2 0
1 0
0 0
1 2
1 3
雅克比迭代法

雅克比迭代法马来西亚雅克比迭代法(Marey Jacobs Iterative Method)是一种功能最优化的数值分析方法,又称无约束最优化算法,其目的是找到函数最优值,这是一种全局最优解法,可以有效求解多变量非线性方程和非凸优化问题。
1. 雅克比迭代法的概念雅克比迭代法是数值分析方法的一种,他可以搜索多变量非线性函数的最优值。
该方法的核心思想是:在每次迭代中,通过计算函数的梯度(或偏导数)来找到新的最优值,以及搜索方向。
它基于雅克比矩阵求解多元非线性方程组,需要迭代计算,来自动找到变量最优值点,比如从一个初始点开始,沿着局部函数增加最快的方向,一直搜索到某一程度,就可以得到全局最优结果。
2. 雅克比迭代法的特点①雅克比迭代法可以基于非凸优化,这就使得在多元变量函数中找到最优解更加容易。
②它的收敛速度极快,一般只需一定的迭代周期就可以解出比较精确的解。
③雅克比迭代法具有很大的数值稳定性,它可以适应多元函数的各种变化而取得精确的结果。
3. 雅克比迭代法的应用(1)雅克比迭代法可以用于非线性最优化,用于非线性方程组和非凸优化问题。
(2)它可以用于解决多元、非线性优化问题,特别是在功能最优化技术中经常应用。
(3)它广泛应用于多目标最优化,在这种问题中,可以使用雅可比迭代法来求解最优值。
(4)它可以有效地解决期望、约束类优化问题,其中,约束可以通过增加惩罚函数的系数来改变。
4. 雅克比迭代法的缺点(1)雅可比迭代法的最佳初值特征和求解准确度有较大的依赖,这意味着对于不同的情况,要使用不同的参数,这就耗费了较多的时间;(2)雅可比迭代法因为受函数从原点出发的假定条件,所以只能较不理想的收敛到局部最优解,而不能较好的收敛到全局最优解;(3)雅可比迭代法实现起来较为复杂,对于复杂的非凸优化问题,往往可能导致求解的困难;(4)雅可比迭代法有一定的假定条件,一旦这些假定发生变化,那么最终计算出的结果就可能发生改变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)
a22
, L =- ann
0 a21 a31 an1 0 a32 an 2 0 an ,n 1
0
0 U =-
a12 0
a13 a23
x 0 初始向量, k 1 B0 x k f , x
其中 B0 称为雅可比方法迭代矩阵。
二、算法框图
开始
输入 x0:;
开始迭代for(k=0; k<m; ++k)
false
for(i=0; i<n; ++i)
true
for(j=0; j<n; ++j)
true
2013-2014(1)专业课程实践论文
题目:雅可比迭代法
一、算法理论
设有方程组 aij x j bi (i 1,2..., n),
j 1 n
记作 Ax b,
A 为非奇异阵且 aij 0(i 1,2,..., n), 将 A 分裂为 A D L U ,其中
a11 D=
(2)
简记作 其中
x B0 x f ,
B0 I D 1 A D 1 L U , f D 1b.
对方程组(2)应用迭代法,得到解式(1)的雅可比迭代公式
x 0 x 0 , x 0 ,... x 0 t 初始向量, 1 2 n n 1 k 1 k bi aij x j , xi aii i 1 j i
if(j!=i)
false true tempห้องสมุดไป่ตู้= temp + a[i][j]*frovalue[j]; false
x[i] = ( b[i] - temp ) / a[i][i];
结束
三、算法程序
#include "stdlib.h" #include "stdio.h" #include "conio.h" #include "string.h" #include "math.h" #define N 100 void Table(int n,float a[N][N],float b[N]) { int i,j; float c[N][N]; printf("Please input the matrix A by row!\n"); for(i=0;i<n;i++) { printf("Row %d:",i+1); for(j=0;j<n;j++) scanf("%f",&a[i][j]); } printf("Please input the vector b:"); for(i=0;i<n;i++) scanf("%f",&b[i]); for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i==j) { c[i][j]=0; continue; } c[i][j]=-a[i][j]/a[i][i]; } printf("\nThe matrix A and vector b:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%10.5f",a[i][j]); printf("%10.5f",b[i]); printf("\n");
0
a1n a2 n an 1,n 0
将式(1)第 i(i 1,2....n) 个方程用 aii 去除再移项,得到等价方程组
1 xi aii n bi aij x j i 1,2,..., n , j 1 j i
} printf("\nThe Jacobi iterative scheme:\n"); for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%10.5f",c[i][j]); printf("%10.5f",b[i]/a[i][i]); printf("\n"); } } void init_vec(int n,float x[N]) { int i; printf("Please input the initial iteration vector x:"); for(i=0;i<n;i++) scanf("%f",&x[i]); printf("\nThe initial iteration vector x:\n"); for(i=0;i<n;i++) printf("%10.5f",x[i]); printf("\n"); } void jacobi(int n,float a[N][N],float b[N],float x[N]) { int i,j,k; float tmp,x2[N]; for(k=0;;k++) { for(i=0;i<n;i++) x2[i]=x[i]; for(i=0;i<n;i++) { tmp=0.0; for(j=0;j<n;j++) { if(j==i) continue; tmp+=a[i][j]*x2[j]; } x[i]=(b[i]-tmp)/a[i][i];
(3)
其中 x k x1k , x2k ,... xnk , 为第 k 次迭代向量。设 x k 已经算出,由式(3)可
T
k 1 计算下一次迭代向量 x k 0,1,2,...; i 1,2,..., n ,
显然迭代公式(3)的矩阵形式为
} for(i=0,j=0;i<n;i++) if(fabs(x2[i]-x[i])<0.00001) j++; if(j==n) { printf("\nThis Jacobi iterative scheme is convergent!\n"); printf("Number of iterations: %d",k+1); break; } if(k==499) { printf("\nThis Jacobi iterative scheme may be not convergent!"); break; } } printf("\nThe results:\n"); for(i=0;i<n;i++) printf("%12.7f",x[i]); } int main() { int n; float x[N],a[N][N],b[N]; printf("Input n:"); scanf("%d",&n); Table(n,a,b); init_vec(n,x); jacobi(n,a,b,x); getch(); return 0; }