数值分析大作业
- 格式:docx
- 大小:71.90 KB
- 文档页数:14
数值分析大作业
数值分析大作业
姓名:黄晨晨
学号:S1*******
学院:储运与建筑工程学院学院班级:储建研17-2
实验3.1 Gauss消去法的数值稳定性实验
实验目的:
理解高斯消元过程中出现小主元即很小时引起方程组解数值不定性实验内容:
求解方程组Ax=b,其中
(1)A1=0.3×10?1559.1431
5.291?
6.130?12
11.2952
1211
,b1=
59.17
46.78
1
2
;
(2)A2=10?701
3 2.09999999999962
5?15?1
0102
,b2=
8
5.900000000001
5 1
;
实验要求:
(1)计算矩阵的条件数,判断系数矩阵是良态的还是病态的
(2)用Gauss列主元消去法求得L和U及解向量x1,x2∈R4
(3)用不选主元的高斯消去法求得L和U及解向量x1,x2∈R4
(4)观察小主元并分析对计算结果的影响
(1)计算矩阵的条件数,判断系数矩阵是良态的还是病态的代码:
format longe
format compact
A1=[0.3*10^-15,59.14,3,1;5.291,-6.130,-1,2;11.2,9,5,2;1,2,1,1]
b1=[59.17;46.78;1;2]
n=4
C1=cond(A1,1) %C1为A1矩阵1范数下的条件数
C2=cond(A1,2) %C2为A1矩阵2范数下的条件数
C3=cond(A1,inf) %C3为1矩阵谱范数下的条件数
结果:
C1 =
1.362944708720448e+02
C2 =
6.842955771253409e+01
C3 =
8.431146*********e+01
显然A1矩阵为病态矩阵
将矩阵A2,b2输入上述代码中求得A2矩阵的条件数为:C1 =
1.928316831682894e+01
C2 =
8.993938090170119e+00
C3 =
1.835643564356072e+01 显然A2矩阵也为病态矩阵
(2)用Gauss列主元消去法求得L和U及解向量x1,x2∈R4
代码:
for k=1:n-1
a=max(abs(A1(k:n,k)))
if a==0
return
end
for i=k:n
if abs(A1(i,k))==a
y=A1(i,:)
A1(i,:)=A1(k,:)
A1(k,:)=y
x=b1(i,:)
b1(i,:)=b1(k,:)
b1(k,:)=x
break
end
end
if A1(k,k)~=0
A1(k+1:n,k)=A1(k+1:n,k)/A1(k,k)
A1(k+1:n,k+1:n)=A1(k+1:n,k+1:n)-A1(k+1:n,k)*A1(k,k+1:n)
else
break
end
end
L=tril(A1,0);
for i=1:n
L(i,i)=1;
end L
U=triu(A1,0)
y1=L\b1
x1=U\y1
得到如下结果:
x1 =3.845714853511634e+00
1.609517394778522e+00
-1.547605454206655e+01
1.041130489899787e+01
将A2=[10,-7,0,1;-3,2.0999********,6,2;5,-1,5,-1;0,1,0,2]
b2=[8;5.900000000001;5;1]
代入上述代码求得结果如下:
X2 =
4.440892098500626e-16
-9.999999999999993e-01
9.999999999999997e-01
1.000000000000000e+00
(3)用不选主元的高斯消去法求得L和U及解向量x1,x2∈R4代码: format longe format compact
A1=[0.3*10^-15,59.14,3,1;5.291,-6.130,-1,2;11.2,9,5,2;1,2,1,1]
b1=[59.17;46.78;1;2]
[L,U]=lu(A1)
y1=L\b1
x1=U\y1
求得如下结果:
x1=
3.845714853511634e+00
1.609517394778522e+00
-1.547605454206655e+01
1.041130489899787e+01
将A2=[10,-7,0,1;-3,2.0999********,6,2;5,-1,5,-1;0,1,0,2]
b2=[8;5.900000000001;5;1]
代入上述代码,求得结果如下:
x 2 =
4.440892098500626e-16 -9.999999999999993e-01
9.999999999999997e-01 9.999999999999999e-01
(2)(3)求得结果相同,可验证结果正确。 (4)观察小主元并分析对计算结果的影响 实验结果表明,小主元的存在对计算结果影响较大。小主元的存在会使得计算结果有较大的误差。 实验3.2方程组的性态和条件数实验 实验目的:
理解条件数的意义和方程组的性态对解向量的影响。 实验内容:
已知两个方程组A1x=b 和A2x=b ,其中:
A1= 1
x 0x 02…x 0n
1x 1x 12...x 1n 1x 2x 22...x 2n (1)
xn
xn 2…xn n
,
A2= 11/21/3…1/n
1/21/31/4…1/(n +1)
1/3
1/41/5…1/(n +2)……………1/n 1/(n +1)1/(n +2)
…
1/(2n ?1)
b= a 1j n j =1, a 2j n j =1,… a 1nj n j =1, T
实验要求:
对A1,取xk=1+0.1k,k=0,1,…,n,下面均用Matlab函数“x=A/b”计算方程组的解。
(1)取n=4,6,8,分别求出A1,A2的条件数,判别它们是否是病态阵?随n的增大,矩阵性态的变化如何?
代码:
format shorte
format compact
A1=[1,1,1,1,1;1,1.1,1.1^2,1.1^3,1.1^4;1,1.2,1.2^2,1.2^3,1.2^4;1,1.3,1.3^2 ,1.3^3,1.3^4;1,1.4,1.4^2,1.4^3,1.4^4]
C1=cond(A1,1) %C1为A1矩阵1范数下的条件数
C2=cond(A1,2) %C2为A1矩阵2范数下的条件数 C3=cond(A1,inf) %C3为1矩阵谱范数下的条件数
1.对A1矩阵运算
n=4时:
C1 =
6.5120e+05
C2 =
3.5740e+05
C3 =
6.2755e+05
n=4时,A1为病态矩阵
n=6时:
A1=[1,1,1,1,1,1,1;1,1.1,1.1^2,1.1^3,1.1^4,1.1^5,1.1^6;1,1.2,1.2^2,1.2^3,1 .2^4,1.2^5,1.2^6;1,1.3,1.3^2,1.3^3,1.3^4,1.3^5,1.3^6;1,1.4,1.4^2,1.4^3,1.
4^4,1.4^5,1.4^6;1,1.5,1.5^2,1.5^3,1.5^4,1.5^5,1.5^6;1,1.6,1.6^2,1.6^3,1. 6^4,1.6^5,1.6^6]
C1 =
1.8531e+08
C2 =
8.7385e+07
C3 =
1.6574e+08
n=6时,A1为病态矩阵
n=8时:
A1=[1,1,1,1,1,1,1,1,1;1,1.1,1.1^2,1.1^3,1.1^4,1.1^5,1.1^6,1.1^7,1.1^8;1,1 .2,1.2^2,1.2^3,1.2^4,1.2^5,1.2^6,1.2^7,1.2^8;1,1.3,1.3^2,1.3^3,1.3^4,1.3
^5,1.3^6,1.3^7,1.3^8;1,1.4,1.4^2,1.4^3,1.4^4,1.4^5,1.4^6,1.4^7,1.4^8;1,1 .5,1.5^2,1.5^3,1.5^4,1.5^5,1.5^6,1.5^7,1.5^8;1,1.6,1.6^2,1.6^3,1.6^4,1.6 ^5,1.6^6,1.6^7,1.6^8;1,1.7,1.7^2,1.7^3,1.7^4,1.7^5,1.7^6,1.7^7,1.7^8;1,1 .8,1.8^2,1.8^3,1.8^4,1.8^5,1.8^6,1.8^7,1.8^8]
C1 =
5.0565e+10
C2 =
2.2739e+10
C3 =
4.4788e+10
n=8时,A1为病态矩阵
2.对A2矩阵运算
n=4时:
A2=[1,1/2,1/3,1/4;1/2,1/3,1/4,1/5;1/3,1/4,1/5,1/6;1/4,1/5,1/6,1/7]
C1 =
2.8375e+04
C2 =
1.5514e+04
C3 =
2.8375e+04
n=4时,A2为病态矩阵
n=6时:
A2=[1,1/2,1/3,1/4,1/5,1/6;1/2,1/3,1/4,1/5,1/6,1/7;1/3,1/4,1/5,1/6,1/7,1/8;1
/4,1/5,1/6,1/7,1/8,1/9;1/5,1/6,1/7,1/8,1/9,1/10;1/6,1/7,1/8,1/9,1/10,1/11] C1 =
2.9070e+07
C2 =
1.4951e+07
C3 =
2.9070e+07