实验2.docx
- 文档编号:10587657
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:33
- 大小:69.14KB
实验2.docx
《实验2.docx》由会员分享,可在线阅读,更多相关《实验2.docx(33页珍藏版)》请在冰豆网上搜索。
实验2
数值实验报告
一、实验名称
研究解线性方程组
迭代法收敛速度的实验
2、实验目的
认识迭代法收敛的含义以及迭代法初值和方程组系数矩阵性质对收敛速度的影响
3、实验内容
用迭代法求解
,其中
为五对角矩阵
四、实验要求
(1)选取不同的初始向量X
及右端向量b,给定迭代误差要求,用Jacobi迭代法和Gauss-Seidel迭代法求解,观察得到的序列是否收敛?
若收敛,记录迭代次数,分析计算结果并得出你的结论。
(2)用SOR迭代法求上述方程组的解,松驰系数
取
的不同值,在
时停止迭代,记录迭代次数,分析计算结果与松驰系数
的关系并得出你的结论。
(3)用MATLAB的内部函数inv求出系数矩阵的逆矩阵,再输入命令x=inv(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)
用雅可比法和高斯-塞德尔法计算的结果
(方程组的精确解)
(雅克比)
(高斯-塞德尔)
(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.65210126472166,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.66515170676526,
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.66572498362226,0.66572075017089,0.66561692817288,0.66520973880328,
0.66395292423069,0.66071789953771,0.65196968659271,0.63273251256528,0.57338391769522,0.48162502899631)
K(迭代次数)
10
6
实验结果分析:
对于该方程组,用Jacobi迭代法求解达到给定精度的迭代次数为k=10,而用Gauss-Seidel迭代法求解达到相同给定精度的迭代次数为k=6,两种求解方法都收敛,但对于给定的系数矩阵A,用Gauss-Seidel迭代法求解比用Jacobi迭代法求解来得快,迭代次数少。
因此Gauss-Seidel迭代法用来解本题比较好。
两种方法求得的解与精确解jX比较,
,用Jacobi迭代法比用Gauss-Seidel迭代法求得的值更接近精确解,而
用Gauss-Seidel迭代法比用Jacobi迭代法求得的值更接近精确解。
(2)
用SOR迭代法求解的结果
迭代次数i
谱半径mH
近似解
1.05
10
0.17273794361353
(0.48163534904485,
0.57341397431419,
0.63280037676105,
0.65210062314822,
0.66094434361910,
0.66430821578562,
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.25
11
0.31610430711766
(0.48163585433847,
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.63280093445135,
0.57341463268375,
0.48163583862534)
1.5
22
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.66627714101470,
0.66571810261613,
0.66430851350166,
0.66094511130404,
0.65210110449372,
0.63280113774921,
0.57341453934705,
0.48163586550671,)
1.75
52
0.77896614602893
(0.48163661554533,
0.57341507255944,
0.63280080003644,
0.65210218916884,
0.66094474755441,
0.66430895606765,
0.66571858533312,
0.66627670810843,
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.95
284
0.95636918724600
(0.48163644771989,
0.57341449178558,
0.63280120820697,
0.65210148161569,
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)
方程组的精确解
实验结果分析:
从实验结果来看,当松驰系数
分别取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时的误差都要小。
可见,当
取1~2范围内靠近1的值时,用SOR迭代法求解达到给定精度时的迭代次数较少,但得到的近似解与方程组精确解的误差不一定是最小的。
附录:
(1)用Jacobi迭代法求解:
functionX=jacdd(A,b,X0,P,wucha,max1)
[nm]=size(A);
forj=1:
m
a(j)=sum(abs(A(:
j)))-2*(abs(A(j,j)));
end
fori=1:
n
ifa(i)>=0
disp('请注意:
系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛')
Return,
end
end
ifa(i)<0
disp('请注意:
系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛')
end
fork=1:
max1
k
forj=1:
m
X(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(djwcX disp('请注意: 雅可比迭代收敛,此方程组的精确解jX和近似解X如下: ') break end end if(djwcX>wucha) disp('请注意: 雅可比迭代次数已经超过最大迭代次数max1') end a;X=X;jX=X1', >>formatrat >>a1=(-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=ones(20,1); >>formatlong >>X0=zeros(20,1);X=jacdd(A,b,X0,inf,0.001,100) 请注意: 系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 k= 1 X= Columns1through7 0.333333333333330.333333333333330.333333333333330.333333333333330.333333333333330.333333333333330.33333333333333 Columns8through14 0.333333333333330.333333333333330.333333333333330.333333333333330.333333333333330.333333333333330.33333333333333 Columns15through20 0.333333333333330.333333333333330.333333333333330.333333333333330.333333333333330.33333333333333 k= 2 X= Columns1through7 0.416666666666670.472222222222220.500000000000000.500000000000000.500000000000000.500000000000000.50000000000000 Columns8through14 0.500000000000000.500000000000000.500000000000000.500000000000000.500000000000000.500000000000000.50000000000000 Columns15through20 0.500000000000000.500000000000000.500000000000000.500000000000000.472222222222220.41666666666667 k= 3 X= Columns1through7 0.453703703703700.527777777777780.571759259259260.581018518518520.583333333333330.583333333333330.58333333333333 Columns8through14 0.583333333333330.583333333333330.583333333333330.583333333333330.583333333333330.583333333333330.58333333333333 Columns15through20 0.583333333333330.583333333333330.581018518518520.571759259259260.527777777777780.45370370370370 k= 4 X= Columns1through7 0.468942901234570.552662037037040.604552469135800.618441358024690.623649691358020.624807098765430.62500000000000 Columns8through14 0.625000000000000.625000000000000.625000000000000.625000000000000.625000000000000.625000000000000.62500000000000 Columns15through20 0.624807098765430.623649691358020.618441358024690.604552469135800.552662037037040.46894290123457 k= 5 X= Columns1through7 0.475823045267490.563786008230450.619566615226340.636156121399180.643004115226340.645061728395060.64568865740741 Columns8through14 0.645817258230450.645833333333330.645833333333330.645833333333330.645833333333330.645817258230450.64568865740741 Columns15through20 0.645061728395060.643004115226340.636156121399180.619566615226340.563786008230450.47582304526749 k= 6 X= Columns1through7 0.478928219307270.568911286865570.626559284979420.644499099794240.652307581018520.654946577074760.65588295181756 Columns8through14 0.656161586934160.656235264489030.656248660408090.656248660408090.656235264489030.656161586934160.65588295181756 Columns15through20 0.654946577074760.652307581018520.644499099794240.626559284979420.568911286865570.47892821930727 k= 7 X= Columns1through7 0.480365154892550.571289509030640.629838047803780.648465966328020.656777799211250.659753479366710.66089659779378 Columns8through14 0.661285972508000.661412675575850.661447058434790.661447058434790.661412675575850.661285972508000.66089659779378 Columns15through20 0.659753479366710.656777799211250.648465966328020.629838047803780.571289509030640.48036515489255 k= 8 X= Columns1through7 0.481034755488750.572406030976720.631387825401760.650356223535620.658931128082250.662091727737170.66335578154471 Columns8through14 0.663818257045060.663984143176180.664034843008760.664034843008760.663984143176180.663818257045060.66335578154471 Columns15through20 0.662091727737170.658931128082250.650356223535620.631387825401760.572406030976720.48103475548875 k= 9 X= Columns1through7 0.481349990612930.572933448776390.632124199382970.651261305473490.659969959124340.663229024986220.66456127006858 Columns8through14 0.665067201682310.665258068721760.665320031049260.665320031049260.665258068721760.665067201682310.66456127006858 Columns15through20 0.663229024986220.659969959124340.651261305473490.632124199382970.572933448776390.48134999061293 k= 10 X= Columns1through7 0.481499258077980.573184140455440.632475788186420.651695899231440.660472177530910.663782580461800.66515170676526 Columns8through14 0.665682311134680.665887980548410.665956789162180.665956789162180.665887980548410.665682311134680.66515170676526 Columns15through20 0.663782580461800.660472177530910.651695899231440.632475788186420.573184140455440.48149925807798 请注意: 雅可比迭代收敛,此方程组的精确解jX和近似解X如下: jX= Columns1through7 0.481635851116300.573414587109090.632801039177420.652101264721660.660944915351180.664308680493680.66571805460602 Columns8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验