解线性方程组的Jacobi迭代法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选 x (0) = (0, 0, 0)T 作为初值和 ε = 10−6 作为控制精度,选 2-范数来衡量误差。迭代 到第 16 次,有
x (16) = (1.0000, 2.0000,3.0000)T
以下为 Jacobi 迭代法 Matlab 程序 分量形式:
function [x,k]=jacobi1(A,b,x0,e) %本算法用 Jacobi 迭代求解 Ax=b,用分量形式 %A 为系数矩阵,b 为常数项,x0 为初始迭代向量,e 为控制精度 n=length(b); %向量 b 的维数 k=1; % k 用于记录迭代次数 for i=1:n x(i)=b(i); for j=1:i-1 x(i)=x(i)-a(i,j)*x0(j); end for j=i+1:n x(i)=x(i)-a(i,j) *x0(j);
⎛ a11 ⎜ 其中, D = ⎜ ⎜ ⎜ ⎝ a22
a22
⎞ ⎛ 0 ⎟ ⎜ ⎟ + ⎜ a21 ⎟ ⎜ ⎟ ⎜ ann ⎠ ⎝ an1
0 an 2
⎞ ⎛ 0 a12 ⎟ ⎜ 0 ⎟+⎜ ⎟ ⎜ ⎟ ⎜ … 0⎠ ⎝
a1n ⎞ ⎟ a2 n ⎟ ⎟ ⎟ 0 ⎠ a1n ⎞ ⎟ a2 n ⎟ 。 ⎟ ⎟ 0 ⎠
⎛ 0 ⎞ ⎜ ⎟ a ⎟ , L = ⎜ 21 ⎜ ⎟ ⎜ ⎟ ann ⎠ ⎝ an1
0 an 2
⎞ ⎛ 0 a12 ⎟ ⎜ 0 ⎟ ,U = ⎜ ⎟ ⎜ ⎟ ⎜ … 0⎠ ⎝
因此,原方程化为
Ax = Dx + ( L + U ) x = b , Dx = b − ( L + U ) x
也就是
x = D −1b − D −1 ( L + U ) x = LJ x + f
2
end x(i)=x(i)/a(i,i); end while norm(x-x0)>e x0=x; for i=1:n x(i)=b(i); for j=1:i-1 x(i)=x(i)-a(i,j)*x0(j); end for j=i+1:n x(i)=x(i)-a(i,j) *x0(j); end x(i)=x(i)/a(i,i); end k=k+1; end disp(x); disp(p);
【解答】
迭代wenku.baidu.com式为
(k ) (k ) ⎛ 3 + 2 x2 ⎞ + x3 ⎜ ⎟ 10 ⎟ ⎛ x1( k +1) ⎞ ⎜ (k ) ⎟ ⎜ ( k +1) ⎟ ⎜ 15 + 2 x1( k ) + x3 ⎟ ⎜ x2 ⎟ = ⎜ 10 ( k +1) ⎟ ⎜ ⎟ ⎜ x3 ( ⎝ ⎠ ⎜ 10 + x k ) + 2 x ( k ) ⎟ 1 2 ⎜ ⎟ 5 ⎝ ⎠
矩阵形式:
function [x,k]=jacobi2(A,b,x0,e) n=length(b); D=diag(A); D=diag(D); L=zeros(n,n); U=zeros(n,n); x=zeros(n,1); k=1; for i=2:n for j=1:i-1
3
L(i,j)=A(i,j); end end for i=1:n-1 for j=i+1:n U(i,j)=A(i,j); end end x=-inv(D)*(L+U)*x0+inv(D)*b; while norm(x-x0)>e x0=x; x=-inv(D)*(L+U)*x0+inv(D)*b; k=k+1; end disp(x); disp(k);
Jacobi 迭代法
若 A 为非奇异矩阵且 aii ≠ 0 , i = 1, 2, ⋅⋅⋅, n 。
⎛ a11 ⎜ a A = ⎜ 21 ⎜ ⎜ ⎝ an1 a12 a22 an 2 a1n ⎞ ⎟ a2 n ⎟ ⎟ ⎟ … ann ⎠
将原方程组等价变形为
bi − xi =
于是,可以作出如下的迭代格式
1
其中, LJ = − D −1 ( L + U ) , f = D −1b 。
例 1.试用 Jacobi 迭代法解线性方程组
⎛ 10 −2 −1⎞ ⎛ x1 ⎞ ⎛ 3 ⎞ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ −2 10 −1⎟ ⎜ x2 ⎟ = ⎜ 15 ⎟ ⎜ −1 −2 5 ⎟ ⎜ x ⎟ ⎜ 10 ⎟ ⎝ ⎠⎝ 3 ⎠ ⎝ ⎠
4
j =1, j ≠ i
∑
aii
n
aij x j
, i = 1, 2, ⋅⋅⋅, n
bi − xi( k +1) =
称其为 Jacobi 迭代法。
j =1, j ≠ i
∑
n
aij x (jk )
, i = 1, 2, ⋅⋅⋅, n
aii
Jacobi 迭代法还可以写成矩阵形式。事实上,
a1n ⎞ ⎛ a11 ⎛ a11 a12 ⎜ ⎟ ⎜ a21 a22 a2 n ⎟ ⎜ ⎜ A= = ⎜ ⎟ ⎜ ⎜ ⎟ ⎜ ⎝ an1 an 2 … ann ⎠ ⎝ = D + L +U