迭代法和GaussSeidel迭代法资料课件.ppt
3.2 Jacobi3.2 Jacobi迭代法和迭代法和Gauss-SeidelGauss-Seidel迭代法迭代法本节主要内容本节主要内容 Jacobi Jacobi迭代法迭代法 Gauss-Seidel Gauss-Seidel迭代法迭代法3.2.1 Jacobi3.2.1 Jacobi迭代法迭代法【解解】kk000030.99500.98500.990010.90000.70000.800040.99850.99750.997020.97000.95000.940050.99980.99920.9995卡尔卡尔.雅可比雅可比其中A是n阶非奇异矩阵.且其主对角元素 从而得到Jacobi迭代法的分量形式:下面推导Jacobi迭代法的矩阵形式:把系数矩阵A分解成三部分:任取向量 ,则Jacobi迭代法可写成如下的矩阵形式:称矩阵J 为Jacobi迭代法的迭代矩阵迭代矩阵.3.2.3.2.2 2 算法与程序算法与程序算法算法3.1 Jacobi迭代法说明:为简单起见,假定系数矩阵A非奇异,且 ,且假设Jacobi迭代法收敛.步骤步骤1 输入系数矩阵A,右端向量b,以及初始向量 算法算法3.3.1 1的的 M Matlab atlab 程序程序%Jacobi.mfunction x=Jacobi(A,b,x0,eps,N)%功能:用Jacobi迭代法解n 阶线性方程组 Ax=b n=length(b);x=ones(n,1);k=0;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)N warning(算法超出最大迭代次数!);else disp(迭代次数=,num2str(k)x end例例3.2.23.2.2用Jacobi迭代法程序Jacobi.m求解线性方程组:编写M文件调用函数Jacobi.m,并运行【解解】clc clear allformat longA=10,-1,2,0;-1,11,-1,3;2,-1,10,-1;0,3,-1,8;b=6;25;-11;15;x0=0;0;0;0;eps=1e-3;N=300;x=Jacobi(A,b,x0,eps,N);计算结果为 迭代次数=10 x=1.000118598691415 1.999767947010035 -0.999828142874476 0.9997859784600503.2.3.2.3 3 Gauss-Seidel Gauss-Seidel迭代法迭代法Gauss-SeidelGauss-Seidel迭代法的矩阵形式迭代法的矩阵形式 Gauss-SeidelGauss-Seidel迭代法的迭代矩阵迭代法的迭代矩阵 例例 3.2.3 3.2.3 表表3.23.2kk000030.995700.997850.9995710.900000.700000.8000040.999790.999890.9999820.970000.957000.9914051.000000.999991.000003.2.4 Gauss-Seidel3.2.4 Gauss-Seidel迭代法的步骤与程序迭代法的步骤与程序算法算法3.23.2的的M Matlabatlab程序程序 例例3.2.4 3.2.4