您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > matlab-Jacobi迭代法Gauss-seidel和SOR迭代
1.Jacobi迭代法例1用jacobi迭代法求解代数线性代数方程组,保留四位有效数字(err=1e-4)其中A=[8-11;210-1;11-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);fork=1:Nfori=1:n―――――――endifnorm(x-x0,inf)eps%迭代终止条件%if(max(abs(x-x0)))epsbreak;endx0=x;end编写主程序如下formatlongclearA=[8-11;210-1;11-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-11;210-1;11-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);fork=1:Nfori=1:n――――――endifnorm(x-x0,inf)eps%迭代终止条件%if(max(abs(x-x0)))epsbreak;endx0=x;end编写主程序如下formatlongclearA=[8-11;210-1;11-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-11;210-1;11-5];b=[1;4;3]。保留四位有效数字(err=1e-4)解:编写SOR迭代法的函数文件,保存为sor.mfunction[x,k]=sor(A,b,x0,eps,N,w)%求解Ax=b;x0为初始列向量;eps为误差容限;%N为最大迭代次数;w为松弛因子%输出x为近似解;k为迭代次数n=length(A);x=zeros(n,1);fork=1:Nfori=1:n―――――――――――endifnorm(x-x0,inf)eps%迭代终止条件%if(max(abs(x-x0)))epsbreak;endx0=x;end编写主程序如下formatlongclearA=[8-11;210-1;11-5];b=[1;4;3];x0=[0.125;0.4;-0.6];%x0为初始列向量N为最大迭代次数err=1e-4;%err为误差容限N=25;%N为最大迭代次数w=1.005;[x,k]=sor(A,b,x0,err,N,w)输出结果为x=0.224939731517440.30562311707823-0.49388742187146k=5四.实验题目:1.分别用Jacobi,Gauss-Seidel和SOR迭代法(松驰因子w=1.08,1.12,1.3)求解方程组要求精度,初始,最大迭代次数N=25,试比较这几种迭代法的迭代次数和收敛速度。A=[4-10-100;-14-10-10;0-1400-1;-1004-10;0-10-14-1;00-10-14];b=[0506-26]';n=length(A);x0=zeros(n,1);eps=1e-5;N=25;
本文标题:matlab-Jacobi迭代法Gauss-seidel和SOR迭代
链接地址:https://www.777doc.com/doc-1725392 .html