1、解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(A 1,2) 结果如下 68.4296因为cond(A1 ,1) =136.29451;cond(A1 ,2) = 68.42961;cond(A1 ,inf) =84.31151所以该矩阵A1 是病态矩阵。1.2判断矩阵A2是否病态 A2=10,-7,0,1;-3,2.099999999999,6,2;
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.99391;cond(A2,inf) = 18.3564 1所以该矩阵A2是病态矩阵。2高斯列主元消去法程序如下:function x=gauss(A,b) %高斯求解方程组%x=gauss(A,b)n=length(A);a=A,b;for k=1:n-1maxa=max(abs(a(k:n,k);if maxa=0retu
3、rn;endfor i=k:nif abs(a(i,k)=maxay=a(i,k:n+1);a(i,k:n+1)=a(k,k:a(k,k:n+1)=y;break;for i=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:%回代if a(n,n)=0returnx(n)=a(n,n+1)/a(n,n);for i=n-1:-1:1x(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.7
4、8;1;2;x=gauss(A,b)得到结果如下: x =3.8457 1.6095 -15.4761 10.4113A=10,-7,0,1;b=8;5.900000000001;5;1; 0.0000 -1.0000 1.0000 1.00002.1 选列主元的分解如下:2.1.1对A1进行列主元分解程序如下: L,U,P=lu(A1)结果如下: L = 1.0000 0 0 0 0.0000 1.0000 0 0 0.4724 -0.1755 1.0000 0 0.0893 0.0202 -0.1738 1.0000 U = 11.2000 9.0000 5.0000 2.0000 0 5
5、9.1400 3.0000 1.0000 0 0 -2.8354 1.2307 0 0 0 1.0151 P = 0 0 1 0 1 0 0 0 0 1 0 0 2.1.2对A2进行列主元分解程序如下:A2=10,-7,0,1; L,U,P=lu(A2)L = 1.0000 0 0 00.5000 1.0000 0 0 -0.3000 -0.0000 1.0000 0 0 0.4000 -0.3333 1.0000U = 10.0000 -7.0000 0 1.0000 0 2.5000 5.0000 -1.5000 0 0 6.0000 2.3000 0 0 0 3.3667P = 1 0
6、0 0 0 0 1 0 0 1 0 0 0 0 0 1 3.不用选主元的gauss的程序如下:function x=gauss(a,b); %编写高斯消去法函数%a表示方程组的系数矩阵,b表示方程组的值%X表示最终的输出结果,即方程组的解n=length(b); %计算方程组的维数%下面的程序在不断的消去,直到变成a变成上三角矩阵未知a(i,k)=a(i,k)/a(k,k);for j=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);for k=n-
7、1:s=b(k);s=s-a(k,j)*x(j);x(k)=s/a(k,k); 3.8457 1.6095 -15.4761 10.41133.1不选列主元的分解如下: L,U=lu(A1) L= 0.0000 1.0000 0 0 0.4724 -0.1755 1.0000 0 0.0893 0.0202 -0.1738 1.0000 U = 11.2000 9.0000 5.0000 2.0000 0 59.1400 3.0000 1.0000 0 0 -2.8354 1.2307 0 0 0 1.0151 L,U=lu(A2)L= 0.5000 1.0000 0 00 0.4000 -0
8、.3333 1.0000U=10.0000 -7.0000 0 1.00004.分析小元对计算结果的影响观察分析可知:小元对计算结果的影响非常大。小元的存在会使得到的计算结果有非常大的误差。实验3.2 方程组的性态和条件数实验实验目的:理解条件数的意义和方程组的性态对解向量的影响实验要求:对A1 ,取Xk=1+0.1k,k=0,1,.,n,下面均用Matlab函数x=Ab计算方程的解。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,求出X4取n=6,b不变,对A2的元素 a22和a66分别加一个扰动10-7分别求出第二个方程组的解向量X5观察和分析A1,A2和微小扰动对解向量的影响,得出你的结论。6求解1当n=4时程序如下:A1=1,1,1,1,1;1,1.1,1.12,1.13,1.14;1,1.2,1.22,1.23,1.24;1,1.3,1.32,1.33,1.34;1,1.4,1.42,1.43,1.44;cond(A1 ,1) ans
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1