Jacobi迭代法和GaussSeidel迭代法 ppt课件
5.2.2Jacobi迭代法和Gauss-Seidel迭代法的收敛性
i k j J ik (i I Ei )k Ck i Ei j Ckjik j Ei j j 0 j 0 k ni 1
第五章线性方程组迭代解法
ik
kik 1
ik
ni 1 k ni 1 Ck i , k 1 ki k i ni ni
lim e
k
(k )
0 ,即 lim x
k
(k )
x 。
*
k
第五章线性方程组迭代解法
再证必要性。设对任意初始向量x ( 0 ) 和右端顶 f ,均有 lim x ( k ) x * , 则得 x Bx f , x
* *
k
x ) 。因此,对任意 x 都有 lim B k ( x ( 0) x* ) 0 ,由此推出 lim B k 0 ,即得 ( B ) 1 。定理得证。
其中, Ei0 I , Ckj k! / j!(k j )! 。 由于 lim k s k 0( 1, s 0), 所以 lim J ik 0 的充分必要条件
是
i 1(i 1,2,, r) 。定理得证。
k
k
Байду номын сангаас
定理 5.2 对于任意的初始向量 x ( 0 )和右端向量 f ,解方程组(5.1.2) 的迭代法(5.1.3)收敛的充分必要条件是 ( B ) 1 。 证 先证充分性。设 ( B ) 1,则矩阵 I B 非奇异,方程组 (5.1.2)有惟一解 x* ,从而的(5.2.1)。由定理 5.1 知 lim B k 0 ,因此 ,
* e( k ) x ( k ) x ,则有
第八节 雅可比与高斯—塞德尔迭代法.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
数值分析5-用Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组上课讲义
return; end sum=0; for j=1:n
if j~=i sum=sum+A(i,j)*x0(j);
end end x1(i)=(b(i)-sum)/A(i,i); end k=k+1; r=max(abs(x1-x0)); x0=x1;
= ( 2)
= Jacobi迭代法:
流程图
开始
判断 b 中的最大值
给 x 赋初值 进行迭代 求出 x,弱到 100 次还没到,警告不收
结束 仅供学习与交流,如有侵权请联系网站删除 谢谢 2
精品资料
程序
clear;clc; A=[8,-1,1;2,10,01;1,1,-5]; b=[1;4;3]; e=1e-6; x0=[0;0;0]'; n=length(A); x=zeros(n,1); k=0; r=max(abs(b)); while r>e
fprintf(' 第%d 次迭代: ',k)
fprintf('\n 与上次计算结果的距离 :%f \n',r)
disp(x1); if k>100
warning('不收敛 ');
end end x=x0;
仅供学习与交流,如有侵权请联系网站删除 谢谢 3
精品资料
程序结果
( 1)
仅供学习与交流,如有侵权请联系网站删除 谢谢 4
品资料
( 2)
仅供学习与交流,如有侵权请联系网站删除 谢谢 5
精品资料
Gauss-Seidel迭代法:
第六章 解线性方程组的迭代法.ppt
称 J 为解 Ax b的雅可比迭代法的迭代阵.
(2.5)
15
研究雅可比迭代法(2.5)的分量计算公式.
记 x(k ) ( x1(k ) ,, xi(k ) ,, xn(k ) )T ,
由雅可比迭代公式(2.5), 有
Dx(k1) (L U )x(k ) b,
或
i1
n
aii
9
定义1 (1) 对于给定的方程组 x Bx f,用公式(1.6) 逐步代入求近似解的方法称为迭代法(或称为一阶定常迭代 法,这里 B与 k无关).
(2) 如果 lim x(k) 存在(记为 x * ),称此迭代法收敛, k
显然 x *就是方程组的解,否则称此迭代法发散. 研究 {x(k )}的收敛性. 引进误差向量
22
例2 用高斯-塞德尔迭代法解线性方程组(1.2).
8x1 3x2 2x3 4x1 11x2 x3
20, 33,
6x1 3x2 12x3 36.
(1.2)
取 x(0) (0, 0, 0)T, 按高斯-塞德尔迭代公式
x ( k 1) 1
记为 Ax b , 其中
(1.2)
8 A4
6
3 2 11 1, 3 12
x1 x x2 ,
x3
20 b 33 .
36
方程组的精确解是 x* (3, 2, 1)T . 现将(1.2)改写为
4
12
于是,求解 Ax b转化为求解 Mx Nx b,即求解
Ax b 求解x M 1Nx M 1b.
可构造一阶定常迭代法
3.2Jacobi迭代法和Gauss-Seidel迭代法.
步骤1 输入系数矩阵A,右端向量b,以及初始向量 x0 ,
精度 , 最大迭代次数 N .令 k 1.
步骤2 当k N时,执行步骤2.1 2.2.
步骤2.1 对i 1, 2, , n,计算
x k 1 i
1 aii
n
aij xkj
j1, ji
bi
.
aii 0 (i 1, 2, , n)
下面考虑一般的情形:
Ax b,
(3.2.1)
其中A是n阶非奇异矩阵. 且其主对角元素 aii 0 (i 1, 2, , n).
方程组(3.2.1)的分量形式为
n
aij x j bi , i 1, 2, , n.
j 1
因aii 0, 所以有
卡尔.雅可比
以上迭代法称为Jacobi迭代法.
卡尔 雅可比(Carl Gustav Jacobi, 1804--1851) 是一位德国数学家. 1804年生于波茨坦.
Jacobi是历史上最伟大的数学家之一,他在数学 方面的突出成就是和挪威数学家 Abel 相互独立地奠 定了椭圆函数论的基础.Jacobi的工作还包括代数学、 变分法、复变函数论、微分方程和数学史等方面. Jacobi 在数值计算方面的主要贡献是提出求解线性方程组的 迭代法以及求解矩阵的特征值和特征向量的方法等.
计算结果见下表:
k
x1k
00
x2k
x3k
0
0
k
x1k
x2k
x3k
3 0.9950 0.9850 0.9900
1 0.9000 0.7000 0.8000 4 0.9985 0.9975 0.9970
雅克比与高斯-塞得迭代法
( 0) ( 0) ( 0) T ,反复 选定初始向量 x(0) x1(0) , x2 , x3 ........ xn
不断地使用迭代式逐步逼近方程组的精确解,
只带满足精度要求位置,这种方法称之为迭
代法。
迭代法收敛的必要条件: (1)、矩阵B的谱半径 (B) 1 (2)、矩阵B的某种范数 B q 1
雅克比迭代法
Ax b ( D L U ) x b Dx ( L U ) x b x D1 ( L U ) x D1b
A=
D
U
L
Jacobi 迭代阵
B
f
x( k 1) D1 ( L U ) x( k ) D1b
雅克比迭代法收敛的充要条件:
(J) 1
J 1
其中:
J D (L U )
1
例1 :
5 x1 2 x2 x3 -12 - x1 4 x2 2 x3 20 2 x 3x 10x 3 2 3 1
设
x0 (0 0 0)
T
高斯-塞德尔(Gauss-Seidel)迭代法
计算公式:
x ( 0) ( x1( 0) ,..... xn ( 0) ), 初始向量 i 1 n ( k 1) ( k 1) (k ) (bi aij xi aij x j ) / aii , xi j 1 j i 1 i 1,2..... n; k 0,1......
写成矩阵形式:
x( k 1) D1 ( Lx( k 1) Ux( k ) ) D1b ( D L) x ( k 1) Ux ( k ) b x ( k 1) ( D L)1Ux( k ) ( D L)1 b
解(1)用Jacobi迭代法得到迭代序列{x(k)}列表如下PPT课件
a a 1
(1)若 A 正定,a 的取值范围;
1 a 1 a2 0, 1 a 1 a1 1aa a 1 a 2a3 3a2 1 2a3 2a2 a2 1 2a2(a 1) (a 1)(a 1) aa1 (a 1)2(2a 1) 0 a 1 2, 1 2 a 1
提示语
, (BJ ) 1 2
1.
(2)推导用塞德尔迭代法收敛的充要条件
BS
(D
L)1U
a11 a21
0
1
0
a22
0
a12 0
0 0
a12 a11
0
I BS 0
a12 a11
2
a12 a11
, (BS
)
1
2
a12 a11
1.
1
5.设 A a
a 1
a a
,
a为实数;
k
15
16
17
18
19
20
21
x1 5.7109 5.7129 5.7305 5.7314 5.7402 5.7451 5.7454 x2 -8.4258 -8.4609 -8.4629 -8.4805 -8.4814 -8.4907 -8.4951 x3 6.2109 6.2129 6.2305 6.2314 6.2402 6.2451 6.2454
2.用SOR法解方程组,取 0.9 ,与取 1
(即Gauss-Seidel法)作比较.
5 2 1 x1 12
1
4
2
x2
20
2 3 10 x3 3
解:用SOR法( 0.9 )迭代法得到迭代序列
{x(k)}列表如下
k0 1
2
6.3迭代法的收敛定理PPT课件
只要断定系数矩阵满足收敛条件,尽管多次迭代 计算工作量大一些,却能达到预定精度。
([保障措施] 高速计算机能胜任那些程序简单、重复
量大的迭代计算,况且还有许多加速收敛的办法 做保障。)
返回节2021/3/10
2021/3/10
8
反复利用 || X (k+1) - X*||=||BX (k)- BX*||=||B(X (k)- X*)|| ≤‖B‖.‖X (k)- X*‖,
可以得到
||X (k)- X*||≤‖B‖k ·‖X(0)- X*‖,
可见X (0)越接近X*,序列{ X (k)}收敛越快,收敛速度 与初值X (0)的选取有关。
矩 阵 A 的 谱 半 径 不 超 过 矩 阵 的 任 何 一 种 算 子 范 数 !
2021/3/10
7
进一步,我们可以推知:
X(k)X* Bk X(1)X(0) 1B
式(1)说明,当||B||<1 且不接近1并且相邻两次迭 代向量X(k+1) 与 X (k)很接近时,则X(k)与精确解X *很 接近。因此,在实际计算中,用|| X (k+1) - X (k) ||≤ε 作为迭代终止条件是合理的。
可见
X(k+1)=BX(k)+f 及 X *=B X *+f
εk+1 = X (k+1) - X *= B(X (k) - X *)
= ·············
= B k+1(X(0) -X *)
=
B
k+1
ε 0
X(k) X* B k 0
雅克比高斯赛德尔迭代法
第八节 雅可比迭代法与高斯—塞德尔迭代法一 雅可比迭代法设线性方程组b Ax = (1) 的系数矩阵A 可逆且主对角元素nn a ,...,a ,a 2211均不为零,令()nna ,...,a ,a diag D 2211=并将A 分解成()D D A A +-= (2)从而(1)可写成 ()b x A D Dx +-=令11f x B x +=其中b D f ,A D I B 1111--=-=. (3) 以1B 为迭代矩阵的迭代法(公式)()()111f x B x k k +=+ (4)称为雅可比(Jacobi)迭代法(公式),用向量的分量来表示,(4)为⎩⎨⎧[],...,,k ,n ,...,i x a ba xnij j )k (j j i iii)k (i21021111==∑-=≠=+ (5)其中()()()()()Tn x ,...x ,x x 002010=为初始向量.由此看出,雅可比迭代法公式简单,每迭代一次只需计算一次矩阵和向量的乘法.在电算时需要两组存储单元,以存放()k x 及()1+k x . 例1 例1 用雅可比迭代法求解下列方程组⎪⎩⎪⎨⎧=+--=-+-=--2453821027210321321321.x x x .x x x .x x x解 将方程组按雅可比方法写成⎪⎪⎩⎪⎪⎨⎧++=++=++=8402020830201072020*******2321.x .x .x .x .x .x .x .x .x取初始值()()()()()()T T ,,,x ,x ,x x 0000302010==按迭代公式()()()()()()()()()⎪⎪⎩⎪⎪⎨⎧++=++=++=+++840202083020107202010211331123211.x .x .x .x .x .x .x .x .x k k k k k k k k k进行迭代,其计算结果如表1所示表1二 高斯—塞德尔迭代法由雅可比迭代公式可知,在迭代的每一步计算过程中是用()k x的全部分量来计算()1+k x的所有分量,显然在计算第i 个分量()1+k i x 时,已经计算出的最新分量()()1111+-+k i k x ,...,x 没有被利用,从直观上看,最新计算出的分量可能比旧的分量要好些.因此,对这些最新计算出来的第1+k 次近似()1+k x的分量()1+k jx 加以利用,就得到所谓解方程组的高斯—塞德(Gauss-Seidel )迭代法.把矩阵A 分解成U L D A --= (6)其中()nn a ,...,a ,a diag D 2211=,U ,L --分别为A 的主对角元除外的下三角和上三角部分,于是,方程组(1)便可以写成 ()b Ux x L D +=-即 22f x B x +=其中()()b L D f ,U L D B 1212---=-= (7)以2B 为迭代矩阵构成的迭代法(公式)()()221f x B x k k +=+ (8)称为高斯—塞德尔迭代法(公式),用 量表示的形式为⎩⎨⎧[],...,,k ,n ,,i x a x a b a xi j n i j )k (j ij )k (j ij i ii)k (i21021111111==∑∑--=-=+=++ (9)由此看出,高斯—塞德尔迭代法的一个明显的优点是,在电算时,只需一组存储单元(计算出()1+k ix 后()k ix 不再使用,所以用()1+k i x 冲掉()k ix ,以便存放近似解.例2 例2 用高斯——塞德尔迭代法求解例1.解 取初始值()()()()()()TT,,,x ,x ,x x 0000302010==,按迭代公式()()()()()()()()()⎪⎩⎪⎨⎧++=++=++=++++++840202083020107202010121113311123211.x .x .x .x .x .x .x .x .x k k k k k k k k k进行迭代,其计算结果如下表2从此例看出,高斯—塞德尔迭代法比雅可比迭代法收敛快(达到同样的精度所需迭代次数少),但这个结论,在一定条件下才是对的,甚至有这样的方程组,雅可比方法收敛,而高斯—塞德尔迭代法却是发散的.三 迭代收敛的充分条件定理1 在下列任一条件下,雅可比迭代法(5)收敛.①111<∑=≠=∞nij j iiij ia a max B ;②1111<∑=≠=nij i iiij ja a max B ;③ 111<∑=-≠=∞-nji i jjij jTa a max AD I定理2 设21B B ,分别为雅可比迭代矩阵与高斯—塞德尔迭代矩阵,则∞∞≤12B B (10)从而,当111<∑=≠=∞nij j iiij ia a max B时,高斯—塞德尔迭代法(8)收敛. 证明 由21B B ,的定义,它们可表示成()U L D B +=-11()()U D L D I U L D B 11112-----=-=用e 表示n 维向量()T,...,,e 111=,则有不等式eB e B ∞≤11UD L D B 111--+=这里,记号|·|表示其中矩阵的元素都取绝对值,而不等式是对相应元素来考虑的,于是()()()Ie B L D I eL D B e U D ∞------≤-=111111容易验证()11==--nnL D L D所以,L D I 1--及L D I 1--可逆,且()()()1111111111-----------=++≤+++=-L D I LD ...L D I L D ...L D I LD I n n()I L D I ≥---11从而有()()((){}e I B L D I L D I eU D LD I e B ∞----------≤⋅-≤111111121{()()}eB eL D I I B I ∞--∞≤-⋅--=11111因此必有∞∞≤12B B因为已知11<∞B 所以12<∞B .即高斯—塞德尔迭代法收敛.若矩阵A 为对称,我们有定理3 若矩阵A 正定,则高斯—塞德尔迭代法收敛.证明 把实正定对称矩阵A 分解为T L L D A --=()TL U =,则D 为正定的,迭代矩阵()T L L D B 12--=设λ是2B 的任一特征值,x 为相应的特征向量,则()()x x L L D T λ=--1以L D -左乘上式两端,并由T L L D A --=有()Ax x L T λλ=-1用向量x 的共轭转置左乘上式两端,得()Ax x x L xTTT--=-λλ1 (11)求上式左右两端的共轭转置,得Ax x x L x T T ----=⎪⎭⎫ ⎝⎛-λλ1以λ--1和λ-1分别乘以上二式然后相加,得()()Axx x L L x T T T -----⎪⎭⎫ ⎝⎛-+=+⎪⎭⎫ ⎝⎛--λλλλλλ211 由TL L D A --=,得()()Axx x A D x T T -----⎪⎭⎫ ⎝⎛-+=-⎪⎭⎫ ⎝⎛--λλλλλλ211即()Ax x x L x TT---=-λλλ2211 (12)因为A 和D 都是正定的,且x 不是零向量,所以由(11)式得1≠λ,而由(12)式得012>-λ, 即1<λ,从而()12<B ρ,因而高斯—塞德尔迭代法收敛.定义1 设()nn ij a A ⨯=为n 阶矩阵.① ①如果n,...,i ,a a nij i j ij ii 21=∑>≠= (13)即A 的每一行对角元素的绝对值都严格大于同行其他元素绝对值之和,则称A 为严格对角优势矩阵.② ②如果n,...,i ,a a nij i j ij ii 21=∑≥≠=且至少有一个不等式严格成立,则称A 为弱对角优势矩阵.例如⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-310131012是严格对角优势矩阵,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--310121011是弱对角优势矩阵. 定义2 设()nn ij a A ⨯=是n 阶矩阵,如果经过行的互换及相应列的互换可化为⎥⎦⎤⎢⎣⎡2212110A A A ,即存在n 阶排列矩阵P,使⎥⎦⎤⎢⎣⎡=2212110A A A AP P T其中2211A ,A 为方阵,则称A 是可约的,否则称A 为不可约的.A 是可约矩阵,意味着b Ax =可经过若干次行列重排,化为两个低阶方程组,事实上,b Ax =可化为 ()b P x P AP P TT T =,记()()()()⎥⎦⎤⎢⎣⎡==⎥⎦⎤⎢⎣⎡==2121d d d b P ,y y y x P TT于是,求解b Ax =化为求解()()()()()⎪⎩⎪⎨⎧=+=+22221212111d y A d y A y A可以证明,如果A 为严格对角优势矩阵或为不可约弱对角优势矩阵,则A 是非奇异的.定理4 如果A 为严格对角优势矩阵或为不可约弱对角优势矩阵,则对任意()0x ,雅可比迭代法(4)与高斯—塞德尔迭代法(8)均为收敛的.证明 下面我们以A 为不可约弱对角优势矩阵为例,证明雅可比迭代法收敛,其他证明留给读者.要证明雅可比迭代法收敛,只要证()11<B ρ,1B 是迭代矩阵.用反证法,设矩阵1B 有某个特征值μ,使得1≥μ,则()01=-B I det μ,由于A 不可约,且具有弱对角优势,所以1-D 存在,且 ()()D A D D A D I I B I -+=--=---μμμ111从而()0=-+D A D detμ另一方面,矩阵()D A D -+μ与矩阵A 的非零元素的位置是完全相同的,所以()D A D -+μ也是不可约的,又由于1≥μ,且A 弱对角优势,所以n,...,i ,a a a nij i j ij ii ii 21=∑≥≥≠=μ并且至少有一个i 使不等号严格成立.因此,矩阵()D A D -+μ弱对角优势,故()D A D -+μ为不可约弱对角优势矩阵.从而()0≠-+D A D det μ矛盾,故1B 的特征值不能大于等于1,定理得证.。
matlab Jacobi迭代法Gauss-seidel和SOR迭代
1.Jacobi迭代法例1 用jacobi迭代法求解代数线性代数方程组,保留四位有效数字(err=1e-4)其中A=[8 -1 1;2 10 -1;1 1 -5];b=[1 ;4; 3]。
解:编写jacobi迭代法的函数文件,保存为jacobi.mfunction [x,k]=jacobi(A,b,x0,eps,N)% 求解Ax=b;x0为初始列向量;eps为误差容限;N为最大迭代次数% 输出x为近似解;k为迭代次数n=length(A);x=zeros(n,1);for k=1:Nfor i=1:n―――――――endif norm(x-x0,inf)<eps % 迭代终止条件% if (max(abs(x-x0)))<epsbreak;endx0=x;end编写主程序如下format longclearA=[8 -1 1;2 10 -1;1 1 -5];b=[1 ;4; 3];x0=[0.125; 0.4 ;-0.6 ]; % x0为初始列向量N为最大迭代次数err=1e-4; % err为误差容限N=25; % N为最大迭代次数[x,k]=jacobi(A,b,x0,err,N)得到结果如下x =0.224923156250000.30561995000000-0.49388680000000k =62.Gauss-seidel迭代法例2 用Gauss-seidel迭代法求解代数线性代数方程组,保留四位有效数字(err=1e-4) 其中A=[8 -1 1;2 10 -1;1 1 -5];b=[1 ;4; 3]。
解:编写Gauss-seidel迭代法的函数文件,保存为gaus.mfunction [x,k]=gaus(A,b,x0,eps,N)% 求解Ax=b;x0为初始列向量;eps为误差容限;N为最大迭代次数% 输出x为近似解;k为迭代次数n=length(A);x=zeros(n,1);for k=1:Nfor i=1:n――――――endif norm(x-x0,inf)<eps % 迭代终止条件% if (max(abs(x-x0)))<epsbreak;endx0=x;end编写主程序如下format longclearA=[8 -1 1;2 10 -1;1 1 -5];b=[1 ;4; 3];x0=[0.125; 0.4 ;-0.6 ]; % x0为初始列向量N为最大迭代次数err=1e-4; % err为误差容限N=25; % N为最大迭代次数[x,k]=gaus(A,b,x0,err,N)输出结果为x =0.224939378906250.30562326171875-0.49388747187500k =53.SOR迭代法例3 用SOR迭代法求解代数线性代数方程组,松驰因子w=1.005,其中A=[8 -1 1;2 10 -1;1 1 -5];b=[1 ;4; 3]。
迭代Jacobi_Guass-Seidel雅克比_高斯赛德尔
计算方法实验报告Jacobi,Gauss_Seidel迭代法班级:学号:姓名:一、实验目的利用Jacobi(Gauss-Seidel)迭代法的算法,解n阶线性方程组。
二、程序功能输入方程组(矩阵A,b),最大迭代次数以及误差限若结果可以收敛,则输出,若不可收敛则返回迭代失败信息。
三、迭代算法流程图Jacobi Gauss-Seidel四、代码(见附录)五、运行情况分析Jacobi(freopen) Gauss_Seidel(手动输入数据)比较分析:相同的测试数据,Gauss_Seldel的迭代次数明显要比Jacobi少得多。
六、附录#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#define N 1000using namespace std;double A[N][N],b[N],ans[N],ans_f[N],e;int n,num;bool ansnot(){for(int i=1;i<=n;i++){if(fabs(ans[i]-ans_f[i])>e)return 1;}return 0;}void inputX(){for(int i=1;i<=n;i++)scanf("%lf",&ans[i]);}bool Jacobi(){int i,j,k;printf("-----请输入最大迭代次数和误差线:-----\n");scanf("%d%lf",&num,&e);printf("-----请输入ans初始值:-----\n");inputX();i=0; //迭代次数do{for(j=1;j<=n;j++)ans_f[j]=ans[j];for(j=1;j<=n;j++){if(A[j][j]==0){printf("算法失败,");return 0;}ans[j]=b[j];for(k=1;k<=n;k++){if(k!=j)ans[j]-=A[j][k]*ans_f[k];//Gauss_seldel修改ans[k]}ans[j]/=A[j][j]; }i++;}while(ansnot()&&i<num);if(i<=num){printf("迭代次数为:%d\n",i);return 1;}printf("迭代失败,");return 0;}void init(){memset(A,0,sizeof(A));memset(b,0,sizeof(b));memset(ans,0,sizeof(ans));printf("请输入矩阵A:\n");for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%lf",&A[i][j]);printf("请输入矩阵b:\n");for(int i=1;i<=n;i++)scanf("%lf",&b[i]);//Print();}int main(){freopen("in.txt","r",stdin);int index=1;while(1){printf("请输入阶数n:\n");scanf("%d",&n);if(n<1) break;printf("------------------test %d------------------\n",index++); init();if(!Jacobi())printf("no answer!!!");elsefor(int i=1;i<=n;i++)printf("x[%d] = %lf\n",i,ans[i]); printf("\n\n");}return 0;}。
雅克比迭代法和高斯-塞德尔迭代法
一、 向量范数
定义:设 f ( x是) Rn的一R个映射,若对
x Rn
存在唯一实数 x与之对应,且满足
非负性: x 0,x Rn 且 x 0 x 0
❖齐次性: x x ,x Rn , R
三角不等性:x y x y , x, y Rn
则称 x为 中Rn向量 的x范数。
A Rnn,存在唯一实数 A与之对应,且满足
非负性:A 0,A Rnn且 A 0 A 0
❖齐次性: A A , A Rnn , R
三角不等性: A B A B , A, B Rnn AB A B A, B Rnn
则称 A为 R中n矩n 阵 的范A数。
➢常用的几种矩阵范数: 记 A (aij )nn
非负实值 函数
➢常用的几种向量范数:
n
设
x
( x1,
x2 ,
, xn )T
1-范数: x 1
xi
i 1
❖ 2-范数:
n
x ( 2
xi2
)
1 2
(x, x)i 1 Nhomakorabea-范数:
x
max
1 i n
xi
上述3种向量范数统称为P-范数
n
x ( p
xi p ) 1 p
1 p
i 1
二、 矩阵范数
定义:设 f ( A是) Rnn的一个R映射,若对
x3(k ) ) 10
x ( k 1) 2
(5
2 x1(k1)
3x3(k) ) (10)
x ( k 1) 3
(14
x ( k 1) 1
3x2(k1) ) 10
雅克比迭代法 取初值 x (0 0 0)T
迭代解法(全章)讲解ppt课件
10/18/2023
第六章 线性方程组的迭代解法
21
§3 常用的三种迭代解法
一、 Jacobi迭代法
对于线性方程组 Ax=b
(1)
设 det(A)≠ 0 ,aii ≠ 0,i=0,1,2,…,n ,按照如下方式对A
进行分裂:
A=L+D+U
(2)
10/18/2023
第六章 线性方程组的迭代解法
22
则由 Ax=b 得到 (L+D+U) x=b >D x=-(L+U)x+b
或 向量序列 {x(k)} 收敛于向量 x* ,当且仅当它的每一 个分量序列收敛于x* 的对应分量,即
10/18/2023
第六章 线性方程组的迭代解法
7
二、矩阵的范数
矩阵范数是反映矩阵“大小”的一种度量,具体定义如下。 定义6.3 设||·||是以n阶矩阵为变量的实值函数,且满足 条件:
(1) || A ||≥0,且|| A ||=0时,当且仅当A=0
矩阵1-范数:
列和
矩阵2-范数:
矩阵∞-范数:
行和
以上三种范数都满足矩阵范数的条件,通常将这三种 矩阵范数统一表示为||A ||p,P=1 ,2 ,∞。
10/18/2023
第六章 线性方程组的迭代解法
9
例6.2 设矩阵
求矩阵A的范数||A ||p,P=1 ,2 ,∞ 。 解 根据定义
由于 则它的特征方程为:
25
对于 n 元线性方程组 其一般式为:
从中解出:
得Jacobi迭代格式
通过|| x(k+1)-x(k)||<ε 控制迭代次数。
10/18/2023
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本节主要内容
➢ Jacobi迭代法 ➢ Gauss-Seidel迭代法
3.2.1 Jacobi迭代法
先 看 下 面 一 个 简 单 的 例 子 .
例 3 .2 .1考 虑 线 性 方 程 组
10 1 0 x1 9
1 10
2
x2
7,
0 2 10x3 8
disp([' 迭代次数= ', num2str(k)]) x end
例3.2.2
用Jacobi迭代法程序Jacobi.m求解线性方程组:
10 1 2 0 x1 6
1 11
1 0.9000 0.7000 0.8000 4 0.9985 0.9975 0.9970
2 0.9700 0.9500 0.9400 5 0.9998 0.9992 0.9995
从 计 算 结 果 看 出 , 向 量 序 列 收 敛 到 方 程 组 的 精 确 解 x * 1 , 1 , 1 T .
即
xD 1(LU )xD 1 b .
任取向量 x 0 ,则Jacobi迭代法可写成如下的矩阵形式: x k 1 D 1 ( L U ) x k D 1 b , k 0 , 1 , 2 , L
若 记 B D 1 ( L U ) I D 1 A J , f D 1 b , 则 有
xk1 Jxk f
称矩阵J 为Jacobi迭代法的迭代矩阵.
(3.2.8)
J D 1 (L U ) I D 1 A
3.2.2 算法与程序
算法3.1 Jacobi迭代法
说明:为简单起见,假定系数矩阵A非奇异,且 a ii 0 ( i 1 ,2 ,L ,n ),且假设Jacobi迭代法收敛.
步骤1 输入系数矩阵A,右端向量b,以及初始向量 x 0 ,
从而得到Jacobi迭代法的分量形式:
x ik 1a 1 ii j 1 n ,j ia ijxjk b i ,i 1 ,2 ,L,n .
(3.2.2)
下面推导Jacobi迭代法的矩阵形式:
把系数矩阵A分解成三部分:
ADLU,
其中
D d i a g ( a 1 1 , a 2 2 , L , a n n ) ,
精 度 , 最 大 迭 代 次 数 N . 令 k 1 .
步 骤 2 当 k N 时 , 执 行 步 骤 2 . 1 2 . 2 .
步 骤 2 . 1 对 i 1 , 2 , L , n , 计 算
xik1a1ii j1n,jiaijxkj
bi .
算法3.1的 Matlab 程序
步 骤 2 .2若 x k 1 x k , 则 算 法 停 止 , 输 出
while k<=N for i=1:n % 步骤 2 x(i)=(b(i)-A(i,[1:i-1,i+1:n])*x0([1:i-1,i+1:n]))/A(i,i); end k=k+1 If norm(x-x0,inf)<eps, break; end x0=x;
end if k>N
warning(‘算法超出最大迭代次数!’); else
x1k1
1 10
x2k
9 10
x2k1
1 10
x1k
1 5
x3k
7, 10
x3k1
15x2k
4 5
k 0, 1, 2, L
x kk 132
直 到xk1xk 103.
计 算 结 果 见 下 表 :
k
x
k 1
00
x
k 2
x
k 3
k
x
k 1
x
k 2
x
k 3
0
0
3 0.9950 0.985Байду номын сангаас 0.9900
其 精 确 解 为 x * 1 , 1 , 1 T .
【解】 把 线 性 方 程 组 改 写 为
10x1 x2
9
x1 10x2 2x3 7
2x2 10x3 8
进一步改写为
x1
1 10
x2
9 10
x
2
1 10
x1
1 5
x3
7 10
x
3
1 5
x2
4 5
取 x 0 = [ 0 , 0 , 0 ] T , 由 上 式 可 构 造 迭 代 公 式 如 下
J a c o b i在 数 值 计 算 方 面 的 主 要 贡 献 是 提 出 求 解 线 性 方 程 组 的 迭 代 法 以 及 求 解 矩 阵 的 特 征 值 和 特 征 向 量 的 方 法 等 .
a ii 0 ( i 1 ,2 ,L ,n )
下 面 考 虑 一 般 的 情 形 :
Ax b,
卡尔.雅可比
以 上 迭 代 法 称 为 J a c o b i 迭 代 法 .
卡尔g雅可比(Carl GustavJacobi, 1804--1851) 是一位德国数学家. 1804年生于波茨坦.
Jacobi是历史上最伟大的数学家之一,他在数学 方面的突出成就是和挪威数学家Abel 相互独立地奠 定了椭圆函数论的基础.Jacobi的工作还包括代数学、 变分法、复变函数论、微分方程和数学史等方面.
方 程 组 的 近 似 解 x k 1 ; 否 则 , 令 x k: x k 1 ,k: k 1 . 步 骤 3 输 出 信 息 “ 算 法 超 出 最 大 迭 代 次 数 ! ” , 算 法 终 止 .
M atlab程 序 如 下 :
%Jacobi.m function x = Jacobi (A, b, x0, eps, N) % 功能:用Jacobi迭代法解n 阶线性方程组 Ax=b n=length(b); x=ones(n,1); k=0;
(3.2.3) (3.2.4)
0
a21
0
L M M O
,
an1,1 an1,2 L
0
an1 an2 L an,n1 0
0 a12 L
0L
a1,n1 a2,n1
a1n
a2n
U
O M M
0
an1,n
0
(3.2.5)
于 是 方 程 组 (3 .2 .1 )改 写 为
D x(LU )xb
( 3 .2 .1)
其中A是n阶非奇异矩阵. 且其主对角元素 aii 0 (i 1 , 2 , L , n ).
方 程 组 (3 .2 .1 ) 的 分 量 形 式 为
n
aijxj bi , i1, 2, L,n.
j1
因 aii 0, 所 以 有
xia 1 ii j 1 n ,j ia ijxjb i , i 1 ,2 ,L,n .