1、 if RA=n因为RA=RB=n,所以此方程组有唯一解. else disp(因为RA=RB A=2 3 -1 5;3 1 2 -7;4 1 -3 6;1 -2 4 -7; b= 0; 0; 0; RA,RB,n=jiepb(A,b)运行后输出结果为因为RA=RB=n,所以此方程组有唯一解.RA = 4,RB =4,n =4在MATLAB工作窗口输入X=Ab, 运行后输出结果为 X =(0 0 0 0).(2) 在MATLAB工作窗口输入程序 A=3 4 -5 7;2 -3 3 -2;4 11 -13 16;7 -2 1 3;b= 0;RA,RB,n=jiepb(A,b)运行后输出结果n,所
2、以此方程组有无穷多解.RA =2,RB =2,n =4(3)在MATLAB工作窗口输入程序 A=4 2 -1;3 -1 2;11 3 0; b=2;10;8; RA,RB,n=jiepb(A,B)因为RA=RB,所以此方程组无解.RA =2,RB =3,n =3(4)在MATLAB工作窗口输入程序 A=2 1 -1 1;4 2 -2 1;2 1 -1 -1;b=1; 2; 1;RA =2,RB =2,n =32.2 三角形方程组的解法及其MATLAB程序2.2.2 解三角形方程组的MATLAB程序解上三角形线性方程组的MATLAB程序function RA,RB,n,X=shangsan(A,
3、b) n=length(b); RB=rank(B);) X=zeros(n,1); X(n)=b(n)/A(n,n);for k=n-1:-1:1 X(k)=(b(k)-sum(A(k,k+1:n)*X(k+1:n)/A(k,k); end例2.2.2 用解上三角形线性方程组的MATLAB程序解方程组.A=5 -1 2 3;0 -2 7 -4;0 0 6 5;0 0 0 3;b=20; -7; 4;6;RA,RB,n,X=shangsan(A,b)RA = RB =4, 4,n = 4,X =2.4 -4.0 -1.0 2.02.3 高斯(Gauss)消元法和列主元消元法及其MATLAB程序
4、2.3.1 高斯消元法及其MATLAB程序用高斯消元法解线性方程组的MATLAB程序function RA,RB,n,X=gaus(A,b) C=zeros(1,n+1); for p= 1:n-1for k=p+1:n m= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1); b=B(1:n,n+1);A=B(1:n,1:n); for q=n-1: X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)/A(q,q);else例2.3.2 用高斯消元法和MATLAB程序求解下面的非齐次线性方程组,并且用逆矩阵解方程组的方
5、法验证.解 在MATLAB工作窗口输入程序 A=1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1;0; -1;-1; RA,RB,n,X =gaus (A,b)X = 0 -0.5000 0.5000RA = 4RB =n =2.3.2 列主元消元法及其MATLAB程序用列主元消元法解线性方程组的MATLAB程序function RA,RB,n,X=liezhu(A,b)Y,j=max(abs(B(p:n,p); C=B(p,:);B(p,:)= B(j+p-1,: B(j+p-1,:)=C;例2.3.3 用列主元消元法解线性方程组的MATLAB程序解方程组 A
6、=0 -1 -1 1;1 -1 1 -3;b=0;1;-1; RA,RB,n,X=liezhu(A,b)RA = 4,RB = 4,n = 4,X =0 -0.5 0.5 02.4 LU分解法及其MATLAB程序2.4.1判断矩阵LU分解的充要条件及其MATLAB程序判断矩阵能否进行LU分解的MATLAB程序function hl=pdLUfj(A)n n =size(A);if RA=n因为A的n阶行列式hl等于零,所以A不能进行LU分解.A的秩RA如下:), RA,hl=det(A); returnif RA=n for p=1:n,h(p)=det(A(1:p, 1:p);, endhl
7、=h(1:for i=1:if h(1,i)=0因为A的r阶主子式等于零,所以A不能进行LU分解.A的秩RA和各阶顺序主子式值hl依次如下:),hl;RA,return if h(1,i)=0 因为A的各阶主子式都不等于零,所以A能进行LU分解.A的秩RA和各阶顺序主子式值hl依次如下:hl;RA例2.4.1 判断下列矩阵能否进行LU分解,并求矩阵的秩.(1);(2);(3).解 (1)在MATLAB工作窗口输入程序 A=1 2 3;1 12 7;4 5 6;hl=pdLUfj(A)RA = 3, hl = 1 10 -48(2)在MATLAB工作窗口输入程序 1 2 7;RA = 3, hl =1 0 12(3)在MATLAB工作窗口输入程序 1 2 3;因为A的n阶行列式hl等于零,所以A不能进行LU分解.A的秩RA如下RA = 2, hl = 02.4.2 直接LU分解法及其MATLAB程序将矩阵进行直接LU分解的MATLAB程序function hl=zhjLU(A)因为A的n阶行列式hl等于零,所以A不能进行LU分解.A的秩RA如下:h(p)=det(A(1:), hl;for j=1:U(1,j)=A(1,j);for k=2:for i=2: for j=2: L(1,1)=1;L(i,i)=1; if ijL(1,1)=1;L
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1