雅可比迭代法求解稀疏矩阵

2017-06-05 15:11江苏省南京林业大学理学院信息与计算科学系钱耀飞
数学大世界 2017年13期
关键词:清华大学出版社迭代法林业大学

江苏省南京林业大学理学院信息与计算科学系 钱耀飞

雅可比迭代法求解稀疏矩阵

江苏省南京林业大学理学院信息与计算科学系 钱耀飞

本文在求解大型稀疏线性代数方程组时,通过Mathematica软件,判断雅可比迭代法的谱半径和迭代精度达到的迭代次数。

雅可比迭代;稀疏矩阵;谱半径;迭代次数

给定n阶线性代数方程组Ax=b,其中:

当n=5,10,20,50,100,200时,判断雅可比迭代法的谱半径和迭代精度达到时的迭代次数。

对于本题中给定的三对角线性方程组Ax=b,雅可比迭代法的迭代格式为:

由此可以计算编写程序为:

n=10;

b=ConstantArray[0,n];

b[[1]]=1;b[[n]]=1;

x0=ConstantArray[0,n];

x1=x0;err=1;k=0;

While[err>10^(-8)&&k<25000,

x1[[1]]=(b[[1]]+x0[[2]])/2;

Do[x1[[i]]=(b[[i]]+x0[[i-1]]+x0[[i+1]])/2,{i,2,n-1}];

x1[[n]]=(b[[n]]+x0[[n-1]])/2;

err=Max[Abs[x1-x0]];

x0=x1;

k++];Print[“k=”,k,”err=”,N[err]];N[x1]

k=375err=9.74235*10^-9(*迭代次数以此迭代的误差*)

{1.,1.,1.,1.,1.,1.,1.,1.,1.,1.}(*求得的解*)

我们可以看到,当n=10时,雅可比迭代法在迭代了k=375次后,达到了题目给的精度要求。我们假设A=D-L-U,其中D,-L,-U分别为A的对角线元素,严格下三角部分和严格上三角部分,则可以得到雅可比迭代法的迭代矩阵为J=D-1(L+D)。

给出下面的程序,计算上述雅可比迭代的迭代矩阵的谱半径。

n=10;

A=SparseArray[{Band[{2,1}]->-1,Band[{1,1}]->2,

Band[{1,2}]->-1},n];

d=Diagonal[A];

(*构造矩阵A,对角线元素为2,下次和上次对角线元素均为-1*)

Diag=DiagonalMatrix[d];

(*Diag表示构造的对角矩阵*)

L=-A*SparseArray[{i_,j_}/;j<i->1,{n,n}];

U=-A*SparseArray[{i_,j_}/;j>i->1,{n,n}];

A==Diag-L-U(*检验矩阵分解是否正确*)

True(*结果为True,说明矩阵分解是正确的*)

J=Inverse[Diag].(L+U);(*计算雅可比迭代矩阵*)

Max[Abs[Eigenvalues[N[J]]]](*计算雅可比迭代矩阵的谱半径*)

0.959493

当n等于其他值时,雅可比方法的迭代次数和迭代矩阵谱半径如下表所示:

雅可比迭代法的迭代次数和迭代矩阵的谱半径与方程组阶数n的关系

?

由上表可知,当雅可比迭代法的迭代次数随着n的增大而急剧增加,误差也越来越小,原因在于迭代矩阵半径越来越小,接近于1。因此我们现在核心的问题就是减少谱半径,从而减少迭代的次数。

[1]李庆阳,王能超,易大义.数值分析[M].北京:清华大学出版社,2008.

[2]王同科,张东丽,王彩华.Mathematica与数值分析实验[M].北京:清华大学出版社,2011.

book=38,ebook=40

猜你喜欢
清华大学出版社迭代法林业大学
《南京林业大学学报(自然科学版)》第九届编辑委员会
《南京林业大学学报(自然科学版)》征稿简则
迭代法求解一类函数方程的再研究
《东北林业大学学报》稿约
H-矩阵线性方程组的一类预条件并行多分裂SOR迭代法
Desperate Love towards the Dark Lady in Shakespeare’s Sonnets
多种迭代法适用范围的思考与新型迭代法
《秘书工作手记》
Translation and Dissemination of Critique of the Gotha Program in China in the Early Times〔* 〕
线性系统的预条件GAOR迭代法