数值分析作业Word文件下载.docx
《数值分析作业Word文件下载.docx》由会员分享,可在线阅读,更多相关《数值分析作业Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
![数值分析作业Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/29/3ace2b87-3c65-492d-8e0b-0b1446974232/3ace2b87-3c65-492d-8e0b-0b14469742321.gif)
解1
1.1判断矩阵A1是否病态
程序如下:
>
A1=[0.3*10^-15,59.14,3,1;
5.291,-6.130,-1,2;
11.2,9,5,2;
1,2,1,1];
cond(A1=,1)
结果如下:
ans=
136.2945
cond(A1,inf)
结果如下
84.3115
cond(A1,2)
结果如下
68.4296
因为cond(A1,1)=136.2945》1;
cond(A1,2)=68.4296》1;
cond(A1,inf)=84.3115》1所以该矩阵A1是病态矩阵。
1.2判断矩阵A2是否病态
A2=[10,-7,0,1;
-3,2.099999999999,6,2;
5,-1,5,-1;
0,1,0,2];
cond(A2,1)
19.2832
A2=[10,-7,0,1;
cond(A2,2)
8.9939
cond(A2,inf)
ans=
18.3564
因为cond(A2,1)=19.2832》1;
cond(A2,2)=8.9939》1;
cond(A2,inf)=18.3564》1所以该矩阵A2是病态矩阵。
2高斯列主元消去法程序如下:
functionx=gauss(A,b)%高斯求解方程组
%x=gauss(A,b)
n=length(A);
a=[A,b];
fork=1:
n-1
maxa=max(abs(a(k:
n,k)));
ifmaxa==0
return;
end
fori=k:
n
ifabs(a(i,k))==maxa
y=a(i,k:
n+1);
a(i,k:
n+1)=a(k,k:
a(k,k:
n+1)=y;
break;
fori=k+1:
l(i,k)=a(i,k)/a(k,k);
a(i,k+1:
n+1)=a(i,k+1:
n+1)-l(i,k).*a(k,k+1:
%回代
ifa(n,n)==0
return
x(n)=a(n,n+1)/a(n,n);
fori=n-1:
-1:
1
x(i)=(a(i,n+1)-sum(a(i,i+1:
n).*x(i+1:
n)))/a(i,i);
执行下列程序:
A=[0.3*10^(-15),59.14,3,1;
b=[59.17;
46.78;
1;
2];
x=gauss(A,b)
得到结果如下:
x=
3.84571.6095-15.476110.4113
A=[10,-7,0,1;
b=[8;
5.900000000001;
5;
1];
0.0000-1.00001.00001.0000
2.1选列主元的分解如下:
2.1.1对A1进行列主元分解程序如下:
[L,U,P]=lu(A1)
结果如下:
L=
1.0000000
0.00001.000000
0.4724-0.17551.00000
0.08930.0202-0.17381.0000
U=
11.20009.00005.00002.0000
059.14003.00001.0000
00-2.83541.2307
0001.0151
P=
0010
1000
0100
2.1.2对A2进行列主元分解程序如下:
A2=[10,-7,0,1;
[L,U,P]=lu(A2)
L=
1.0000000
0.50001.000000
-0.3000-0.00001.00000
00.4000-0.33331.0000
U=
10.0000-7.000001.0000
02.50005.0000-1.5000
006.00002.3000
0003.3667
P=
1000
0010
0100
0001
3.不用选主元的gauss的程序如下:
functionx=gauss(a,b);
%编写高斯消去法函数
%a表示方程组的系数矩阵,b表示方程组的值
%X表示最终的输出结果,即方程组的解
n=length(b);
%计算方程组的维数
%下面的程序在不断的消去,直到变成a变成上三角矩阵未知
a(i,k)=a(i,k)/a(k,k);
forj=k+1:
a(i,j)=a(i,j)-a(i,k)*a(k,j);
b(i)=b(i)-a(i,k)*b(k);
%表示高斯消去法的回带过程
x=zeros(n,1);
x(n)=b(n)/a(n,n);
fork=n-1:
s=b(k);
s=s-a(k,j)*x(j);
x(k)=s/a(k,k);
3.84571.6095-15.476110.4113
3.1不选列主元的分解如下:
[L,U]=lu(A1)
L~=
0.00001.000000
0.4724-0.17551.00000
0.08930.0202-0.17381.0000
U~=
11.20009.00005.00002.0000
059.14003.00001.0000
00-2.83541.2307
0001.0151
[L,U]=lu(A2)
L~=
0.50001.000000
00.4000-0.33331.0000
U~=
10.0000-7.000001.0000
4.分析小元对计算结果的影响
观察分析可知:
小元对计算结果的影响非常大。
小元的存在会使得到的计算结果有非常大的误差。
实验3.2方程组的性态和条件数实验
实验目的:
理解条件数的意义和方程组的性态对解向量的影响
实验要求:
对A1,取Xk=1+0.1k,k=0,1,...,n,下面均用Matlab函数"
x=A\b"
计算方程的解。
1取n=4,6,8,分别求出A1,A2的条件数,判断他们是否是病态阵?
随n的增大矩阵性态的变化如何?
2取n=5,分别求出两个方程的解向量X1,X2
3取N=5,b不变,对A1的元素a22和a66分别加一个扰动10^-14,分别求出第一个方程组的解向量x;
若A1不变,对b的元素加一个扰动10^-4,求出X
4取n=6,b不变,对A2的元素a22和a66分别加一个扰动10^-7分别求出第二个方程组的解向量X
5观察和分析A1,A2和微小扰动对解向量的影响,得出你的结论。
6求
解1
当n=4时程序如下:
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];
cond(A1,1)
ans