资源描述:
《第4章 线性方程组迭代求解.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章线性方程组迭代求解雅可比迭代法高斯—赛德尔迭代法14.1引言求解线性方程组的迭代方法常用于求解高阶稀疏矩阵。线性方程组的直接求解和迭代求解有很大不同。线性方程组的直接求解的主要思想是对线性方程组做同解变换,直到方程组易解为止;线性方程组的迭代求解采用了类似非线性方程迭代求根(见第2章)的方法,构造1个迭代公式,取某个向量作为迭代初值,然后反复迭代。如果收敛,就会收敛于解向量。线性方程组的迭代求解需要求向量的极限。定义:设有矩阵序列A(k)=(aij(k))m×n,(i∈[1,m],j∈[1,n]),k=0,1,
2、2……,若存在矩阵A*=(aij*)m×n,对A(k)所有元素aij(k)有aij(k)=aij*,则称矩阵序列A(k)=A(0),A(1),A(2),……收敛于A*,或称矩阵序列A(k)的极限是A*,即:A(k)=A*。定义:设有向量序列b(k)=(bi(k))m,(i∈[1,m]),k=0,1,2……,若存在向量b*=(bi*)m,对b(k)所有元素bi(k)有bi(k)=bi*,则称向量序列b(k)=b(0),b(1),b(2),……收敛于b*,或称向量序列b(k)的极限是b*,即b(k)=b*。2雅可比(Ja
3、cobi)迭代法需要对这个线性方程组进行同解变形,使方程i的等号左端只有xi,等号右端不出现xi,其中i=1,2,……,n。4.2雅可比迭代法一、雅可比迭代法的主要思想由上式构造雅可比迭代法的迭代公式:即:=(bi-)/aii,其中i=1,2,……,n,k=0,1,2,……。取迭代初值为向量x(0),代入迭代公式反复迭代,得到向量序列x(0),x(1),x(2),……。如果这个向量序列收敛于向量x*,那么向量x*就是原线性方程组的精确解向量。3雅可比迭代法的算法输入原方程组的阶数n。输入原方程组的系数矩阵a[n][n
4、],右端向量b[n]。输入迭代初始向量oldx[n],最大迭代次数maxk,误差要求ε。for(k=1;k<=maxk;k++)循环1次完成1轮迭代for(i=0;i<=n-1;i++)①雅可比迭代s=0;for(j=0;j<=n-1;j++)j≠iYNs+=a[i][j]*oldx[j];x[i]=(b[i]-s)/a[i][i];e=0;②计算误差for(i=0;i<=n-1;i++)e<
5、x[i]-oldx[i]
6、YNe=
7、x[i]-oldx[i]
8、e<εYNbreak;for(i=0;i<=n-1;i++)③
9、暂存迭代结果oldx[i]=x[i];k<=maxkYN输出原方程组的解向量x[n]。迭代次数超过上限,退出。44.2雅可比迭代法雅可比迭代法对应的程序(1/2)#include#include#defineMAXSIZE50voidinput(doublea[MAXSIZE][MAXSIZE],doubleb[MAXSIZE],longn);voidoutput(doublex[MAXSIZE],longn);voidmain(void){doublea[MAXSIZE][MAXS
10、IZE],b[MAXSIZE],x[MAXSIZE],oldx[MAXSIZE];doubleepsilon,e,s;longn,i,j,k,maxk;printf("请输入原方程组的阶数:");scanf("%ld",&n);input(a,b,n);printf("请输入迭代初始向量:");for(i=0;i<=n-1;i++)scanf("%lf",&oldx[i]);printf("请输入最大迭代次数:");scanf("%ld",&maxk);printf("请输入误差上限:");scanf
11、("%lf",&epsilon);for(k=1;k<=maxk;k++){for(i=0;i<=n-1;i++){s=0;for(j=0;j<=n-1;j++)if(j!=i)s+=a[i][j]*oldx[j];x[i]=(b[i]-s)/a[i][i];}54.2雅可比迭代法雅可比迭代法对应的程序(2/2)e=0;for(i=0;i<=n-1;i++)if(e12、+)oldx[i]=x[i];}if(k<=maxk)output(x,n);elseprintf("迭代次数已超过上限。");}voidinput(doublea[MAXSIZE][MAXSIZE],doubleb[MAXSIZE],longn){longi,j;printf("请输入原方程组的增广矩阵:");for(i=0;i<