1、实验2数值实验报告一、实验名称研究解线性方程组迭代法收敛速度的实验2、实验目的 认识迭代法收敛的含义以及迭代法初值和方程组系数矩阵性质对收敛速度的影响3、实验内容用迭代法求解,其中为五对角矩阵四、实验要求(1)选取不同的初始向量X及右端向量b,给定迭代误差要求,用Jacobi迭代法和Gauss-Seidel迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。(2)用SOR迭代法求上述方程组的解,松驰系数取的不同值,在时停止迭代,记录迭代次数,分析计算结果与松驰系数的关系并得出你的结论。(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令x=in
2、v(A)*b,即可求出上述各个方程组的解,并与上述方法求出的解进行比较。五、算法描述(1)选取初始向量X0=zeros(20,1);b=ones(20,1),要求在时停止迭代,分别用Jacobi迭代法(jacdd.m)和Gauss-Seidel迭代法(gsdddy.m)求解,并记录迭代次数。(2)用SOR迭代法(cscdd.m)求上述方程组的解,松驰系数分别取1.05,1.25,1.5,1.75和1.95,在时停止迭代,记录迭代次数。六、程序流程图由于实验方案明显、简单,实现步骤及流程图省略。7、实验结果及分析(1)用雅可比法和高斯-塞德尔法计算的结果(方程组的精确解)(雅克比)(高斯-塞德尔
3、)( 0.48163585111630, 0.57341458710909, 0.63280103917742, 0.65210126472166, 0.66094491535118, 0.66430868049368, 0.66571805460602,0.66627696128807, 0.66650045635753, 0.66657783303607, 0.66657783303607, 0.66650045635753, 0.66627696128807, 0.66571805460602,0.66430868049368, 0.66094491535118, 0.652101264
4、72166, 0.63280103917742, 0.57341458710909, 0.48163585111630)(0.48149925807798, 0.57318414045544 , 0.63247578818642, 0.65169589923144, 0.66047217753091, 0.66378258046180, 0.66515170676526,0.66568231113468, 0.66588798054841, 0.66595678916218, 0.66595678916218, 0.66588798054841, 0.66568231113468, 0.665
5、15170676526,0.66378258046180, 0.66047217753091, 0.65169589923144, 0.63247578818642, 0.57318414045544, 0.48149925807798)(0.48106176892956, 0.57268415989011, 0.63197019037190, 0.65122761886703, 0.66004984128777, 0.66340396639139, 0.66480953690344,0.66536867802378, 0.66559727815187, 0.66568937900901, 0
6、.66572498362226, 0.66572075017089, 0.66561692817288, 0.66520973880328,0.66395292423069, 0.66071789953771, 0.65196968659271, 0.63273251256528, 0.57338391769522, 0.48162502899631)K(迭代次数)106实验结果分析:对于该方程组,用Jacobi迭代法求解达到给定精度的迭代次数为k=10,而用Gauss-Seidel迭代法求解达到相同给定精度的迭代次数为k=6,两种求解方法都收敛,但对于给定的系数矩阵A,用Gauss-Seid
7、el迭代法求解比用Jacobi迭代法求解来得快,迭代次数少。因此Gauss-Seidel迭代法用来解本题比较好。 两种方法求得的解与精确解jX比较,,,用Jacobi迭代法比用Gauss-Seidel迭代法求得的值更接近精确解,而用Gauss-Seidel迭代法比用Jacobi迭代法求得的值更接近精确解。(2)用SOR迭代法求解的结果迭代次数i谱半径mH近似解1.0510 0.17273794361353 (0.48163534904485, 0.57341397431419, 0.63280037676105, 0.65210062314822, 0.66094434361910, 0.66
8、430821578562, 0.66571770827055, 0.66627671934518, 0.66650029507922, 0.66657773085412, 0.66657777131672, 0.66650042024912, 0.66627694105413, 0.66571804372578, 0.66430867481073, 0.66094491256457, 0.65210126340023, 0.63280103860833, 0.57341458688793, 0.48163585104861)1.2511 0.31610430711766 ( 0.4816358
9、5433847, 0.57341458857133, 0.63280101528571, 0.65210119819162, 0.66094487830912, 0.66430884877685, 0.66571834336000, 0.66627680740015, 0.66649983567731, 0.66657787475240, 0.66657858877953, 0.66650036392068, 0.66627643440268, 0.66571833409356, 0.66430872684700, 0.66094474330603, 0.65210143674640, 0.6
10、3280093445135, 0.57341463268375, 0.48163583862534)1.522 0.55313247434076 (0.48163578917065, 0.57341416982896, 0.63280099914970, 0.65210188312638, 0.66094485695449, 0.66430788126986, 0.66571833206330, 0.66627755459330, 0.66649995561005, 0.66657781727968, 0.66657814363101, 0.66650009850505, 0.66627714
11、101470, 0.66571810261613, 0.66430851350166, 0.66094511130404, 0.65210110449372, 0.63280113774921, 0.57341453934705, 0.48163586550671,)1.7552 0.77896614602893(0.48163661554533, 0.57341507255944, 0.63280080003644, 0.65210218916884, 0.66094474755441, 0.66430895606765, 0.66571858533312, 0.66627670810843
12、, 0.66650113490977, 0.66657771104184, 0.66657805132270, 0.66650075437178, 0.66627686670965, 0.66571841427976, 0.66430844933236, 0.66094532764555, 0.65210113929976, 0.63280111974080, 0.57341464084014, 0.48163592673139)1.952840.95636918724600( 0.48163644771989, 0.57341449178558, 0.63280120820697, 0.65
13、210148161569, 0.66094503239922, 0.66430864883593, 0.66571816829045, 0.66627686061170, 0.66650051247556, 0.66657796868118, 0.66657720833101, 0.66650117901600, 0.66627605203597, 0.66571861842499, 0.66430807409467, 0.66094508721156, 0.65210112687482, 0.63280059042380, 0.57341496126752, 0.48163521156374
14、)方程组的精确解实验结果分析:从实验结果来看,当松驰系数分别取1.05,1.25,1.5,1.75和1.95在相同的精度要求下用SOR迭代法求解均收敛。其实我们用eig(A)求得系数矩阵A的特征值均为正数,系数矩阵A为正定矩阵,由定理2.21知用的用SOR方法求解必收敛,所以实验中松驰系数取的不同值得到的结果都是收敛的。 比较取不同松驰系数的迭代次数,当时,收敛速度最快,迭代10次,随着的增大,收敛速度逐渐减慢,迭代次数逐渐增加。当时,迭代次数为11次,得到的方程组的近似解与方程组的精确解误差比取1.05,1.5,1.75和1.95时的误差都要小。可见,当取12范围内靠近1的值时,用SOR迭代
15、法求解达到给定精度时的迭代次数较少,但得到的近似解与方程组精确解的误差不一定是最小的。附录:(1)用Jacobi迭代法求解:function X=jacdd(A,b,X0,P,wucha,max1)n m=size(A); for j=1:ma(j)=sum(abs(A(:,j)-2*(abs(A(j,j);endfor i=1:nif a(i)=0disp(请注意:系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛)Return,endendif a(i)0disp(请注意:系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 )endfor k=1:max1k for j=1:
16、mX(j)=(b(j)-A(j,1:j-1,j+1:m)*X0(1: j-1,j+1:m)/A(j,j); end X,djwcX=norm(X-X0,P); X0=X;X1=inv(A)*b; if (djwcXwucha)disp(请注意:雅可比迭代次数已经超过最大迭代次数max1 )enda;X=X;jX=X1, format rata1=(-1/4)*ones(18,1);a2=(-1/2)*ones(19,1);a3=3*ones(20,1);a11=diag(a1,-2);a22=diag(a2,-1);a33=diag(a3);A=a11+a22+a33+a11+a22; b=o
17、nes(20,1); format long X0=zeros(20,1);X=jacdd(A,b,X0,inf,0.001,100)请注意:系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 k = 1X = Columns 1 through 7 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 Columns 8 through 14 0.33333333333333 0.333333333
18、33333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 Columns 15 through 20 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333 0.33333333333333k = 2X = Columns 1 through 7 0.41666666666667 0.47222222222222 0.50000000000000 0.5000
19、0000000000 0.50000000000000 0.50000000000000 0.50000000000000 Columns 8 through 14 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 Columns 15 through 20 0.50000000000000 0.50000000000000 0.50000000000000 0.50000000000000 0.472222
20、22222222 0.41666666666667k = 3X = Columns 1 through 7 0.45370370370370 0.52777777777778 0.57175925925926 0.58101851851852 0.58333333333333 0.58333333333333 0.58333333333333 Columns 8 through 14 0.58333333333333 0.58333333333333 0.58333333333333 0.58333333333333 0.58333333333333 0.58333333333333 0.58
21、333333333333 Columns 15 through 20 0.58333333333333 0.58333333333333 0.58101851851852 0.57175925925926 0.52777777777778 0.45370370370370k = 4X = Columns 1 through 7 0.46894290123457 0.55266203703704 0.60455246913580 0.61844135802469 0.62364969135802 0.62480709876543 0.62500000000000 Columns 8 throug
22、h 14 0.62500000000000 0.62500000000000 0.62500000000000 0.62500000000000 0.62500000000000 0.62500000000000 0.62500000000000 Columns 15 through 20 0.62480709876543 0.62364969135802 0.61844135802469 0.60455246913580 0.55266203703704 0.46894290123457k = 5X = Columns 1 through 7 0.47582304526749 0.56378
23、600823045 0.61956661522634 0.63615612139918 0.64300411522634 0.64506172839506 0.64568865740741 Columns 8 through 14 0.64581725823045 0.64583333333333 0.64583333333333 0.64583333333333 0.64583333333333 0.64581725823045 0.64568865740741 Columns 15 through 20 0.64506172839506 0.64300411522634 0.6361561
24、2139918 0.61956661522634 0.56378600823045 0.47582304526749k = 6X = Columns 1 through 7 0.47892821930727 0.56891128686557 0.62655928497942 0.64449909979424 0.65230758101852 0.65494657707476 0.65588295181756 Columns 8 through 14 0.65616158693416 0.65623526448903 0.65624866040809 0.65624866040809 0.656
25、23526448903 0.65616158693416 0.65588295181756 Columns 15 through 20 0.65494657707476 0.65230758101852 0.64449909979424 0.62655928497942 0.56891128686557 0.47892821930727k = 7X = Columns 1 through 7 0.48036515489255 0.57128950903064 0.62983804780378 0.64846596632802 0.65677779921125 0.65975347936671
26、0.66089659779378 Columns 8 through 14 0.66128597250800 0.66141267557585 0.66144705843479 0.66144705843479 0.66141267557585 0.66128597250800 0.66089659779378 Columns 15 through 20 0.65975347936671 0.65677779921125 0.64846596632802 0.62983804780378 0.57128950903064 0.48036515489255k = 8X = Columns 1 t
27、hrough 7 0.48103475548875 0.57240603097672 0.63138782540176 0.65035622353562 0.65893112808225 0.66209172773717 0.66335578154471 Columns 8 through 14 0.66381825704506 0.66398414317618 0.66403484300876 0.66403484300876 0.66398414317618 0.66381825704506 0.66335578154471 Columns 15 through 20 0.66209172
28、773717 0.65893112808225 0.65035622353562 0.63138782540176 0.57240603097672 0.48103475548875k = 9X = Columns 1 through 7 0.48134999061293 0.57293344877639 0.63212419938297 0.65126130547349 0.65996995912434 0.66322902498622 0.66456127006858 Columns 8 through 14 0.66506720168231 0.66525806872176 0.6653
29、2003104926 0.66532003104926 0.66525806872176 0.66506720168231 0.66456127006858 Columns 15 through 20 0.66322902498622 0.65996995912434 0.65126130547349 0.63212419938297 0.57293344877639 0.48134999061293k = 10X = Columns 1 through 7 0.48149925807798 0.57318414045544 0.63247578818642 0.65169589923144
30、0.66047217753091 0.66378258046180 0.66515170676526 Columns 8 through 14 0.66568231113468 0.66588798054841 0.66595678916218 0.66595678916218 0.66588798054841 0.66568231113468 0.66515170676526 Columns 15 through 20 0.66378258046180 0.66047217753091 0.65169589923144 0.63247578818642 0.57318414045544 0.48149925807798请注意:雅可比迭代收敛,此方程组的精确解jX和近似解X如下:jX = Columns 1 through 7 0.48163585111630 0.57341458710909 0.63280103917742 0.65210126472166 0.66094491535118 0.66430868049368 0.66571805460602 Columns 8