数值分析实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
6
实验名称:线性方程组迭代解法
1)实验目的:
1. 熟悉Matlab编程。
2. 学习线性方程组迭代解法的程序设计算法。
2)实验题目:
第一题:研究解线性方程组Ax=b迭代法收敛速度。
A为20阶五对角距阵
31214,,//,, ,,,,,1231214/// ,,
,,,,,,141231214//// ,,A, ,,
,, ,,,,141231214////,, ,,,1412312///,, ,,,,14123//,,要求:
(1)选取不同的初始向量x0 及右端向量b,给定迭代误差要求,用雅可比迭代和高斯-
赛德尔迭代法求解,观察得到的序列是否收敛,若收敛,
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
迭代次数,分析计
算结果并得出你的结论。
(2)用SOR迭代法求解上述方程组,松弛系数ω取1< ω <2的不同值,在
时停止迭代.记录迭代次数,分析计算结果并得出你的结论。
Hx,bHnn第二题:给出线性方程组其中系数矩阵为希尔伯矩阵:
1h,n,nijH,(h),Ri,j,1nij,,i = 1, 2……n.
**Tn,nb,Hxx,(1,1?,1),Rn假设,,若取n = 6, 8, 10,分别用雅克比迭代及SOR迭
代(w = 1, 1.25, 1.5)求解.比较计算结果
3)实验原理与理论基础:
第一题:(一) 雅克比(Jacobi)迭代法算法设计:
?输入矩阵a与右端向量b及初值x(1,i);
?按公式计算得
,,n,,1,(k1)(k)x,b,ax(i,1,2,?,n) ,iiijj,,a,j1ii,,,ji,,
(二)高斯――赛得尔迭代法算法设计:
1. 输入矩阵a与右端向量b及初值x(1,i).
,1in,,1(,1)(,1)()kkk,, 2. (i = 1, 2,…, n) ,,,xbaxax,,iiijjijj,,a,1,,1jjiii,,
(三)超松驰法算法设计:
?输入矩阵a与右端向量b及初值x(1,i)。
,1in,,,(,1)()(,1)()kkkk,,?, 0,,,2,,,,,x(1)xbaxax,,,iiiijjijj,,a,1,,1jjiii,,
4)实验
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
:
第一题:代码:
雅克比(Jacobi)迭代法 ?
function []=yakebi(e) %输入矩阵a与右端向量b。
for i=1:20
a(i,i)=3;
end
for i=3:20
for j=i-2
a(i,j)=-1/4;
a(j,i)=-1/4;
end
end
for i=2:20
for j=i-1
a(i,j)=-1/2;
a(j,i)=-1/2;
end
end
b=[2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2];
k=1;
n=length(a);
for i=1:n
x(1,i)=1;%数组中没有第0行。
end
while k>=1
for i=1:n
m=0;
%此步也可以用ifj~=i条件判定一下。
for j=1:(i-1)
m=m+a(i,j)*x(k,j);
end
for j=(i+1):n
m=m+a(i,j)*x(k,j);
end
x(k+1,i)=(b(i)-m)/a(i,i);
end
l=0;
%判定满足条件使循环停止迭代。
for i=1:n
l=l+abs(x(k+1,i)-x(k,i));
end
if l
=1
for i=1:n
p=0;q=0;
for j=1:(i-1)
p=p+a(i,j)*x(k+1,j);
end
for j=(i+1):n
q=q+a(i,j)*x(k,j);
end
x(k+1,i)=(b(i)-q-p)/a(i,i);
end
l=0;
%判定满足条件使循环停止迭代。
for i=1:n
l=l+abs(x(k+1,i)-x(k,i));
end
if l=1
if w>=2||w<=1
'请重新输入w的值,w在1与2之间';
break
end
for i=1:n
p=0;q=0;
for j=1:(i-1)
p=p+a(i,j)*x(k+1,j);
end
for j=i:n
q=q+a(i,j)*x(k,j);
end
x(k+1,i)=x(k,i)+w*(b(i)-q-p)/a(i,i);
end
l=0;
%判定满足条件使循环停止迭代。
for i=1:n
l=l+abs(x(k+1,i)-x(k,i));
end
if l i)
temp02 = temp02 + Hn(i, j) * X_old(j);
end
end
end
X_new(i) = w * (b(i) - temp01 - temp02) / Hn(i, i) + X_old(i);
end
X = X_new;
End
5)实验结果:
第一题?雅克比(Jacobi)迭代法
此时初值全取1;
>> b=[2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2];
yakebi(0.00001)
ans =
Columns 1 through 9
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998
0.9999 1.0000
Columns 10 through 18
1.0000 1.0000 1.0000 0.9999 0.9998 0.9995 0.9989
0.9970 0.9941
Columns 19 through 20
0.9787 0.9793
k =
12
此时初值全取1;
>> b=[2.5 1.9 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.9 2.5];
yakebi(0.00001)
ans =
Columns 1 through 12
1.0969 1.0707 1.0219 1.0103 1.0039 1.0016 1.0006 1.0003 1.0001 1.0001 1.0001 1.0001
Columns 13 through 20
1.0003 1.0006 1.0016 1.0039 1.0103 1.0219 1.0707 1.0969
k =
14
?高斯――赛得尔迭代法
此时初值全取1;
>> b=[2.2 1.7 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.7 2.2]; >> gaoshisaideer(0.00001)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793 k =
14
此时初值全取1;
>> b=[2.5 1.9 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.9 2.5];
gaoshisaideer(0.00001)
ans =
Columns 1 through 12
1.0969 1.0707 1.0219 1.0103 1.0039 1.0016 1.0006 1.0003 1.0001 1.0001 1.0001 1.0001
Columns 13 through 20
1.0003 1.0006 1.0016 1.0039 1.0103 1.0219 1.0707 1.0969
k =
14
?超松驰法
>> caosongci(0.00001,1.5)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793
k =
25
>> caosongci(0.00001,1.4)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793
k =
19
>> caosongci(0.00001,1.3)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793
k =
15
>> caosongci(0.00001,1.6)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787 0.9793
k =
34
>> caosongci(0.00001,1.7)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998
0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787
0.9793
k =
47
>> caosongci(0.00001,1.9)
ans =
Columns 1 through 12
0.9793 0.9787 0.9941 0.9970 0.9989 0.9995 0.9998
0.9999 1.0000 1.0000 1.0000 1.0000
Columns 13 through 20
0.9999 0.9998 0.9995 0.9989 0.9970 0.9941 0.9787
0.9793
k =
150
第二题:
对于雅克比迭代法,通过执行以下代码
>> p211_1_JJ(6)
>> p211_1_JJ(8)
>> p211_1_JJ(10)
可以分别得到:
Now Jacobi method!
Start with the vector that (0, 0, 0, ...)^T
ans =
2.4500 1.1036 0.6265 0.4060 0.2831 0.2071
Now Jacobi method!
Start with the vector that (0, 0, 0, ...)^T
ans =
2.7179 1.4101 0.8524 0.5809 0.4221 0.3198 0.2497
0.1995
Now Jacobi method!
Start with the vector that (0, 0, 0, ...)^T
ans =
Columns 1 through 9
2.9290 1.6662 1.0517 0.7423 0.5554 0.4315 0.3445
0.2807 0.2325
Column 10
0.1951
对于SOR迭代法,执行相对应代码
n=6, ω=1,1.25,1.5的时候
>> p211_1_SOR(6, 1)
Now Successive Over Relaxtion method!
Start with the vector that (0, 0, 0, ...)^T
ans =
2.4500 1.1036 0.6265 0.4060 0.2831 0.2071
>> p211_1_SOR(6, 1.25)
Now Successive Over Relaxtion method!
Start with the vector that (0, 0, 0, ...)^T
ans =
3.0625 0.2310 0.8704 0.3389 0.3141 0.2097
>> p211_1_SOR(6, 1.5)
Now Successive Over Relaxtion method!
Start with the vector that (0, 0, 0, ...)^T
ans =
3.6750 -1.1009 2.0106 -0.3994 0.7670 -0.0384 与n=8, ω=1,1.25,1.5的时候
>> p211_1_SOR(8, 1)
Now Successive Over Relaxtion method!
Start with the vector that (0, 0, 0, ...)^T
ans =
2.7179 1.4101 0.8524 0.5809 0.4221 0.3198 0.2497
0.1995
>> p211_1_SOR(8, 1.25)
Now Successive Over Relaxtion method! Start with the vector that (0, 0, 0, ...)^T
ans =
3.3973 0.4887 1.0898 0.5062 0.4501 0.3203 0.2573
0.2042
>> p211_1_SOR(8, 1.5)
Now Successive Over Relaxtion method! Start with the vector that (0, 0, 0, ...)^T
ans =
4.0768 -0.9424 2.2923 -0.2753 0.9252 0.0578 0.4071
0.1275
与n=10, ω=1,1.25,1.5的时候
>> p211_1_SOR(10, 1)
Now Successive Over Relaxtion method! Start with the vector that (0, 0, 0, ...)^T
ans =
Columns 1 through 9
2.9290 1.6662 1.0517 0.7423 0.5554 0.4315 0.3445
0.2807 0.2325
Column 10
0.1951
>> p211_1_SOR(10, 1.25)
Now Successive Over Relaxtion method! Start with the vector that (0, 0, 0, ...)^T
ans =
Columns 1 through 9
3.6612 0.7098 1.2835 0.6617 0.5807 0.4299 0.3506
0.2844 0.2363
Column 10
0.1984
>> p211_1_SOR(10, 1.5)
Now Successive Over Relaxtion method!
Start with the vector that (0, 0, 0, ...)^T
ans =
Columns 1 through 9
4.3935 -0.7958 2.5326 -0.1523 1.0720 0.1565 0.5050
0.2041 0.2819
Column 10
0.1766
6)实验结果分析与小结:
1.在实习中,进行学习MATLAB,有助于将两者都更加的熟悉并加以充分利用。 2.此次取的b对于雅克比迭代法、高斯――赛得尔迭代法都是收敛的,对于相同的初值与右端向量明显可以看出高斯――赛得尔迭代法比雅克比迭代法快,这与理论上的分析完全一致嘛。
3.对于SOR迭代方法选择不同的松弛因子收敛次数大大不同,当松弛因子为1.1时,在同等条件下迭代最快.