用高斯消元法解线性方程组 的MATLAB程序%解释一下下面的程序的每一步,也可以重新编程,需要解释function [RA,RB,n,X]=gaus(A,b)B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica>0,disp('请注意:因

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 02:57:27

用高斯消元法解线性方程组 的MATLAB程序%解释一下下面的程序的每一步,也可以重新编程,需要解释function [RA,RB,n,X]=gaus(A,b)B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica>0,disp('请注意:因
用高斯消元法解线性方程组 的MATLAB程序
%解释一下下面的程序的每一步,也可以重新编程,需要解释function [RA,RB,n,X]=gaus(A,b)B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica>0,disp('请注意:因为RA~=RB,所以此方程组无解.')returnendif RA==RB if RA==ndisp('请注意:因为RA=RB=n,所以此方程组有唯一解.') X=zeros(n,1); 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);endend b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q); endelse disp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')endend

用高斯消元法解线性方程组 的MATLAB程序%解释一下下面的程序的每一步,也可以重新编程,需要解释function [RA,RB,n,X]=gaus(A,b)B=[A b]; n=length(b); RA=rank(A); RB=rank(B);zhica=RB-RA;if zhica>0,disp('请注意:因
%function [RA,RB,n,X]=gaus(A,b)
A=[1 2 3;
1 4 9;
1 8 27];
b=[
1
2
3
];
B=[A b];
n=length(b);
RA=rank(A); \x09%A的秩
RB=rank(B);\x09\x09%B的秩
zhica=RB-RA;
if zhica>0\x09\x09
\x09disp('请注意:因为RA~=RB,所以此方程组无解.');
\x09return;
end
if RA==RB \x09%方程有唯一解
\x09if RA==n
\x09\x09disp('请注意:因为RA=RB=n,所以此方程组有唯一解.')
\x09\x09X=zeros(n,1); \x09
\x09\x09%生成上三角矩阵
\x09\x09for p= 1:n-1
\x09\x09\x09for k=p+1:n
\x09\x09\x09\x09m= B(k,p)/ B(p,p); \x09\x09%要将B(k,p)化为零的系数
\x09\x09\x09\x09B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);\x09%整行乘以这个系数,最
\x09\x09\x09end
\x09\x09end
\x09\x09b=B(1:n,n+1);
\x09\x09A=B(1:n,1:n);
\x09\x09%求解上三角矩阵
\x09\x09X(n)=b(n)/A(n,n);
\x09\x09for q=n-1:-1:1
\x09\x09\x09X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);
\x09\x09end
\x09else %多解
\x09\x09disp('请注意:因为RA=RB