实验四实验报告线性方程组的迭代解法.docx
《实验四实验报告线性方程组的迭代解法.docx》由会员分享,可在线阅读,更多相关《实验四实验报告线性方程组的迭代解法.docx(100页珍藏版)》请在冰点文库上搜索。
![实验四实验报告线性方程组的迭代解法.docx](https://file1.bingdoc.com/fileroot1/2023-6/20/18e49b86-9141-4ba8-a21b-27ed07af78c3/18e49b86-9141-4ba8-a21b-27ed07af78c31.gif)
实验四实验报告线性方程组的迭代解法
实验四线性方程组的迭代解法
一、实验目的
(1)学会用Jacobi迭代法、Gauss-Seidel迭代法和超松弛迭代法求线性方程组解
(2)学会对各种迭代法作收敛性分析,研究求方程组解的最优迭代方法.
(3)按照题目要求完成实验内容,写出相应的Matlab程序,给出实验结果.
(4)对实验结果进行分析讨论.
(5)写出相应的实验报告.
二、实验内容
1.熟悉Jacobi迭代法,并编写Matlab程序
matlab程序
按照算法(Jacobi迭代法)编写Matlab程序(Jacobi.m)
function[x,k,index]=Jacobi(A,b,ep,it_max)
%求解线性方程组的Jacobi迭代法,其中,
%A为方程组的系数矩阵;
%b为方程组的右端项;
%ep为精度要求,缺省值1e-5;
%it_max为最大选代次数,缺省值100;
%x为方程组的解;
%k为迭代次数;
%index为指标变量index=1表示迭代收敛到指定要求,
%,index=0表示迭代失败.
ifnargin<4it_max=100;end
ifnargin<3ep=1e-5;end
n=length(A);k=0;
x=zeros(n,1);y=x;index=1;
whilel
fori=1:
n
y(i)=b(i)
forj=1:
n
ifj=i
y(i)=y(i)-A(i,j)*x(j);
end
end
ifabs(A(i,i))<1e-10|k==it_max
index=0;return;
end
y(i)=y(i)/A(i,i);
end
ifnorm(y-x,inf)break;
end
e=y;k=k+1;
end
2.熟悉Gauss-Seidel迭代法,并编写Matlab程序
练习题1.用Jacobi迭代法求方程组的解。
修改上述程序,得到正确的源程序:
function[x,k,index]=Jacobi(A,b,ep,it_max)
%£¥Çó½âÏßÐÔ·½³Ì×éµÄJacobiµü´ú·¨,ÆäÖÐ,
%£¥AΪ·½³Ì×éµÄϵÊý¾ØÕó;
%£¥bΪ·½³Ì×éµÄÓÒ¶ËÏî;
%£¥epΪ¾«¶ÈÒªÇó£¬È±Ê¡Öµ1e-5;
%£¥it_maxΪ×î´óÑ¡´ú´ÎÊý£¬È±Ê¡Öµ100;
%£¥xΪ·½³Ì×éµÄ½â;
%£¥kΪµü´ú´ÎÊý;
%£¥indexΪָ±ê±äÁ¿index=1±íʾµü´úÊÕÁ²µ½Ö¸¶¨ÒªÇó,
%£¥index=0±íʾµü´úʧ°Ü.
ifnargin<4it_max=100;
end
ifnargin<3ep=1e-5;
end
n=length(A);
k=0;
x=zeros(n,1);
y=x;
index=1;
while1
fori=1:
n
y(i)=b(i)
forj=1:
n
ifj~=i
y(i)=y(i)-A(i,j)*x(j);
end
end
ifabs(A(i,i))<1e-10|k==it_max
index=0;
return;
end
y(i)=y(i)/A(i,i);
end
ifnorm(y-x,inf)break;
end
x=y;k=k+1;
end
主函数:
A=[430;33-1;0-14]
b=[24;30;-24]
[x,k,index]=Jacobi(A,b)
输出结果:
A=
430
33-1
0-14
b=
24
30
-24
y=
24
0
0
y=
6
30
0
y=
6
10
-24
y=
24
10
-6
y=
-1.5000
30.0000
-6.0000
y=
-1.5000
2.0000
-24.0000
y=
24.0000
2.0000
-3.5000
y=
4.5000
30.0000
-3.5000
y=
4.5000
10.3333
-24.0000
y=
24.0000
10.3333
-5.5000
y=
-1.7500
30.0000
-5.5000
y=
-1.7500
3.6667
-24.0000
y=
24.0000
3.6667
-3.4167
y=
3.2500
30.0000
-3.4167
y=
3.2500
10.6111
-24.0000
y=
24.0000
10.6111
-5.0833
y=
-1.9583
30.0000
-5.0833
y=
-1.9583
5.0556
-24.0000
y=
24.0000
5.0556
-3.3472
y=
2.2083
30.0000
-3.3472
y=
2.2083
10.8426
-24.0000
y=
24.0000
10.8426
-4.7361
y=
-2.1319
30.0000
-4.7361
y=
-2.1319
6.2130
-24.0000
y=
24.0000
6.2130
-3.2894
y=
1.3403
30.0000
-3.2894
y=
1.3403
11.0355
-24.0000
y=
24.0000
11.0355
-4.4468
y=
-2.2766
30.0000
-4.4468
y=
-2.2766
7.1775
-24.0000
y=
24.0000
7.1775
-3.2411
y=
0.6169
30.0000
-3.2411
y=
0.6169
11.1962
-24.0000
y=
24.0000
11.1962
-4.2056
y=
-2.3972
30.0000
-4.2056
y=
-2.3972
7.9812
-24.0000
y=
24.0000
7.9812
-3.2009
y=
0.0141
30.0000
-3.2009
y=
0.0141
11.3302
-24.0000
y=
24.0000
11.3302
-4.0047
y=
-2.4977
30.0000
-4.0047
y=
-2.4977
8.6510
-24.0000
y=
24.0000
8.6510
-3.1674
y=
-0.4883
30.0000
-3.1674
y=
-0.4883
11.4418
-24.0000
y=
24.0000
11.4418
-3.8372
y=
-2.5814
30.0000
-3.8372
y=
-2.5814
9.2092
-24.0000
y=
24.0000
9.2092
-3.1395
y=
-0.9069
30.0000
-3.1395
y=
-0.9069
11.5349
-24.0000
y=
24.0000
11.5349
-3.6977
y=
-2.6511
30.0000
-3.6977
y=
-2.6511
9.6743
-24.0000
y=
24.0000
9.6743
-3.1163
y=
-1.2557
30.0000
-3.1163
y=
-1.2557
11.6124
-24.0000
y=
24.0000
11.6124
-3.5814
y=
-2.7093
30.0000
-3.5814
y=
-2.7093
10.0619
-24.0000
y=
24.0000
10.0619
-3.0969
y=
-1.5464
30.0000
-3.0969
y=
-1.5464
11.6770
-24.0000
y=
24.0000
11.6770
-3.4845
y=
-2.7577
30.0000
-3.4845
y=
-2.7577
10.3849
-24.0000
y=
24.0000
10.3849
-3.0808
y=
-1.7887
30.0000
-3.0808
y=
-1.7887
11.7308
-24.0000
y=
24.0000
11.7308
-3.4038
y=
-2.7981
30.0000
-3.4038
y=
-2.7981
10.6541
-24.0000
y=
24.0000
10.6541
-3.0673
y=
-1.9906
30.0000
-3.0673
y=
-1.9906
11.7757
-24.0000
y=
24.0000
11.7757
-3.3365
y=
-2.8318
30.0000
-3.3365
y=
-2.8318
10.8784
-24.0000
y=
24.0000
10.8784
-3.0561
y=
-2.1588
30.0000
-3.0561
y=
-2.1588
11.8131
-24.0000
y=
24.0000
11.8131
-3.2804
y=
-2.8598
30.0000
-3.2804
y=
-2.8598
11.0654
-24.0000
y=
24.0000
11.0654
-3.0467
y=
-2.2990
30.0000
-3.0467
y=
-2.2990
11.8442
-24.0000
y=
24.0000
11.8442
-3.2337
y=
-2.8832
30.0000
-3.2337
y=
-2.8832
11.2211
-24.0000
y=
24.0000
11.2211
-3.0389
y=
-2.4159
30.0000
-3.0389
y=
-2.4159
11.8702
-24.0000
y=
24.0000
11.8702
-3.1947
y=
-2.9026
30.0000
-3.1947
y=
-2.9026
11.3509
-24.0000
y=
24.0000
11.3509
-3.0325
y=
-2.5132
30.0000
-3.0325
y=
-2.5132
11.8918
-24.0000
y=
24.0000
11.8918
-3.1623
y=
-2.9189
30.0000
-3.1623
y=
-2.9189
11.4591
-24.0000
y=
24.0000
11.4591
-3.0270
y=
-2.5943
30.0000
-3.0270
y=
-2.5943
11.9099
-24.0000
y=
24.0000
11.9099
-3.1352
y=
-2.9324
30.0000
-3.1352
y=
-2.9324
11.5493
-24.0000
y=
24.0000
11.5493
-3.0225
y=
-2.6620
30.0000
-3.0225
y=
-2.6620
11.9249
-24.0000
y=
24.0000
11.9249
-3.1127
y=
-2.9437
30.0000
-3.1127
y=
-2.9437
11.6244
-24.0000
y=
24.0000
11.6244
-3.0188
y=
-2.7183
30.0000
-3.0188
y=
-2.7183
11.9374
-24.0000
y=
24.0000
11.9374
-3.0939
y=
-2.9530
30.0000
-3.0939
y=
-2.9530
11.6870
-24.0000
y=
24.0000
11.6870
-3.0157
y=
-2.7652
30.0000
-3.0157
y=
-2.7652
11.9478
-24.0000
y=
24.0000
11.9478
-3.0783
y=
-2.9609
30.0000
-3.0783
y=
-2.9609
11.7392
-24.0000
y=
24.0000
11.7392
-3.0130
y=
-2.8044
30.0000
-3.0130
y=
-2.8044
11.9565
-24.0000
y=
24.0000
11.9565
-3.0652
y=
-2.9674
30.0000
-3.0652
y=
-2.9674
11.7826
-24.0000
y=
24.0000
11.7826
-3.0109
y=
-2.8370
30.0000
-3.0109
y=
-2.8370
11.9638
-24.0000
y=
24.0000
11.9638
-3.0543
y=
-2.9728
30.0000
-3.0543
y=
-2.9728
11.8189
-24.0000
y=
24.0000
11.8189
-3.0091
y=
-2.8641
30.0000
-3.0091
y=
-2.8641
11.9698
-24.0000
y=
24.0000
11.9698
-3.0453
y=
-2.9774
30.0000
-3.0453
y=
-2.9774
11.8491
-24.0000
y=
24.0000
11.8491
-3.0075
y=
-2.8868
30.0000
-3.0075
y=
-2.8868
11.9748
-24.0000
y=
24.0000
11.9748
-3.0377
y=
-2.9811
30.0000
-3.0377
y=
-2.9811
11.8742
-24.0000
y=
24.0000
11.8742
-3.0063
y=
-2.9057
30.0000
-3.0063
y=
-2.9057
11.9790
-24.0000
y=
24.0000
11.9790
-3.0314
y=
-2.9843
30.0000
-3.0314
y=
-2.9843
11.8952
-24.0000
y=
24.0000
11.8952
-3.0052
y=
-2.9214
30.0000
-3.0052
y=
-2.9214
11.9825
-24.0000
y=
24.0000
11.9825
-3.0262
y=
-2.9869
30.0000
-3.0262
y=
-2.9869
11.9126
-24.0000
y=
24.0000
11.9126
-3.0044
y=
-2.9345
30.0000
-3.0044
y=
-2.9345
11.9854
-24.0000
y=
24.0000
11.9854
-3.0218
y=
-2.9891
30.0000
-3.0218
y=
-2.9891
11.9272
-24.0000
y=
24.0000
11.9272
-3.0036
y=
-2.9454
30.0000
-3.0036
y=
-2.9454
11.9879
-24.0000
y=
24.0000
11.9879
-3.0182
y=
-2.9909
30.0000
-3.0182
y=
-2.9909
11.9393
-24.0000
y=
24.0000
11.9393
-3.0030
y=
-2.9545
30.0000
-3.0030
y=
-2.9545
11.9899
-24.0000
y=
24.0000
11.9899
-3.0152
y=
-2.9924
30.0000
-3.0152
y=
-2.9924
11.9494
-24.0000
y=
24.0000
11.9494
-3.0025
y=
-2.9621
30.0000
-3.0025
y=
-2.9621
11.9916
-24.0000
y=
24.0000
11.9916
-3.0126
y=
-2.9937
30.0000
-3.0126
y=
-2.9937
11.9579
-24.0000
y=
24.0000
11.9579
-3.0021
y=
-2.9684
30.0000
-3.0021
y=
-2.9684
11.9930
-24.0000
y=
24.0000
11.9930
-3.0105
y=
-2.9947
30.0000
-3.0105
y=
-2.9947
11.9649
-24.0000
y=
24.0000
11.9649
-3.0018
y=
-2.9737
30.0000
-3.0018
y=
-2.9737
11.9941
-24.0000
y=
24.0000
11.9941
-3.0088
y=
-2.9956
30.0000
-3.0088
y=
-2.9956
11.9707
-24.0000
y=
24.0000
11.9707
-3.0015
y=
-2.9781
30.0000
-3.0015
y=
-2.9781
11.9951
-24.0000
y=
24.0000
11.9951
-3.0073
y=
-2.9963
30.0000
-3.0073
y=
-2.9963
11.9756
-24.0000
y=
24.0000
11.9756
-3.0012
y=
-2.9817
30.0000
-3.0012
y=
-2.9817
11.9959
-24.0000
y=
24.0000
11.9959
-3.0061
y=
-2.9970
30.0000
-3.0061
y=
-2.9970
11.9797
-24.0000
y=
24.0000
11.9797
-3.0010
y=
-2.9848
30.0000
-3.0010
y=
-2.9848
11.9966
-24.0000
y=
24.0000
11.9966
-3.0051
y=
-2.9975
30.0000
-3.0051
y=
-2.9975
11.9831
-24.0000
y=
24.0000
11.9831
-3.0008
y=
-2.9873
30.0000
-3.0008
y=
-2.9873
11.9972
-24.0