资源描述
实验报告实验一线性方程组迭代法实验一、实验目的1、通过本实验学习线性方程组的迭代解法。掌握高斯-赛德尔迭代法、 雅可比迭代法、SOR迭代法的编程与应用,对比分析在不同条件下三种迭代法 的收敛情况并得出一般结论。2、培养编程与上机调试能力。二、实验题目1、迭代法的收敛速度实验题目:用迭代法分别对n=20,n=200解方程组Ax=b其中r4-1/3-1/5)-1/34-1/3-1/5-1/5-1/34-1/3-1/5A=.-1/5-1/34-1/3-1/5-1/34J(1)选取不同的初值x和不同的右端向量b,给定迭代误差,用两种迭代 法计算,观测得到的迭代向量并分析计算结果给出结论;(2)取定初值x和右端向量b,给定迭代误差,将A的主对角元成倍放大, 其余元素不变,用Jacobi迭代法计算多次,比较收敛速度,分析计算结果给出结 论.2、SOR迭代法松弛因子的选取实验题目用超松弛(SOR)迭代法解方程组Ax=b,其中r 12-2-2121-21)r: 1入r 5 5A =1-2 12.-2.1.2尤3.=5.1-212-21尤51-212-2198尤51进行计算,观测得到的 近似解向量并分析计算结果,给出你的结论;(2) 给定迭代误差,选取不同的超松弛因子1进行计算,观测得到的 近似解向量并分析计算结果,给出你的结论.三、实验原理1、算法原理:Jacobi迭代法function x=majacobi(A,b,x0,ep,N) n=length(b);if nargin5,N=500;endif nargin4,ep=1e-6;endif nargin3,x0=zeros(n,1);end%用途:用Jacobi迭代法解线性方程组Ax=b%格式:x=majacobi(A,b,x0,ep,N) A为系数矩阵,b为右端向量,% x0为初始向量(默认零向量),ep为精度(默认1e-6),N为% (默认500次),x返回近似解向量 x=zeros(n,1); k=0;while kNfor i=1:nx(i) = (b(i)-A(i,1:i-1,i+1:n)*x0(1:i-1,i+1:n)/A(i,i); endif norm(x-x0,inf)ep,break;end x0=x;k=k+1;endif k=N,Warning(已达到迭代次数上限);end disp(k= ,num2str(k)2、算法原理:Seidl迭代法 %maseidel.mfunction x=majacobi(A,b,x0,ep,N) n=length(b);if nargin5,N=500;endif nargin4,ep=1e-6;endif nargin3,x0=zeros(n,1);end%用途:用Jacobi迭代法解线性方程组Ax=b%格式:x=majacobi(A,b,x0,ep,N) A为系数矩阵,b为右端向量,% x0为初始向量(默认零向量),ep为精度(默认1e-6),N为% (默认500次),x返回近似解向量 x=zeros(n,1); k=0;while kNfor i=1:n x(i) = (b(i)-A(i,1:i-1,i+1:n)*x0(1:i-1,i+1:n)/A(i,i);endif norm(x-x0,inf)ep,break;end x0=x;k=k+1;endif k=N,Warning(已达到迭代次数上限);enddisp(k= ,num2str(k)3、算法原理:SOR迭代法%masor.mfunction x=masor(A,b,omega,x0,ep,N)%用途:用SOR法解线性方程组Ax=b%格式:x=masor(A,b,omega,x0,ep,N) A为系数矩阵,b为右端向量,% omega为松弛因子(默认1.5),x0为初始向量(默认零向量),% ep为精度(默认1e-6),N为(默认500次),x返回近似解向量 n=length(b);if nargin6,N=500;endif nargin5,ep=1e-6;endif nargin4,x0=zeros(n,1);endif nargin3,omega=1.5;end x=zeros(n,1); k=0;while kNfor i=1:nif i=1x1(1) = (b(1)-A(1,2:n)*x0(2:n)/A(1,1);else if i=nx1(n) = (b(n)-A(n,1:n-1)*x(1:n-1)/A(n,n);elsex1(i) = (b(i)-A(i,1:i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n)/A(i,i); endendx(i) = (1-omega)*x0(i)+omega*x1(i);endif norm(x0-x,inf)l;kl=9k2=7b(i)=2;kl= 10k2=7b(i)=100;kl= 13k2=10b(i)=1000;kl= 15k2= 11b(i)=1000000kl=20k2= 15 将A的主对角元成倍放大,其余元素不变,用Jacobi迭代法计算多次 当 n=20,b(i)=l; x o =zeros(n,l)取主对角元a=4 , k= 10取主对角兀a=8, k= 7取主对角兀a=16, k=6取主对角兀a=32, k=5取主对角元a=512, k=3 当 n=200, b(i)=l;x 0 =zeros(n9l)取主对角元a=4 , k= 10取主对角兀a=8, k= 6取主对角兀a=16, k=5取主对角兀a=32, k=4取主对角元a=512, k=22.SOR迭代法松弛因子的选取 当SOR迭代法松弛因子1时1、3=1.5K=262、co = 1.75K=643、co =1.25K=144、co = 1.03K=85、(o=l .01K=8 当SOR迭代法松弛因子1时,越大时,迭代法的迭代次数越大, 收敛速度越慢,越趋近于1时,迭代法的迭代次数越小,收敛越快.2、当SOR迭代法松弛因子1时,越小时,迭代法的迭代次数越大, 收敛速度越慢,越趋近于1时,迭代法的迭代次数越小,收敛越快.六、实验结果分析1、当右端向量b不变,初值x改变时对Jacobi迭代法的迭代次数影响较大,对Seidel迭代法的迭代次数影响较小。当初值x不变为0向量,右端向量b改 变时对Jacobi和Seidel迭代法的迭代次数影响较大.2、总体趋势上看Seidel迭代法的收敛速度总是比Jacobi迭代法快,更加优 越.3、当初值x不变为0向量,右端向量b不变,将A的对角元a成倍放大时 对Jacobi迭代次数影响很大。A的对角元a越大时,两种迭代法的迭代次数越小, 收敛速度越快.4、n对Jacobi和Seidel迭代法的迭代次数影响较小.5、SOR迭代法松弛因子的范围是02.快.6、SOR迭代法松弛因子越趋近于1时,迭代法的迭代次数越小,收敛越
展开阅读全文