高斯消元法解线性方程组-matlab实现
三阶行列式
利用高斯消元法求解方程组的 x 值,以及行列式的值,以及下三角乘上三角的验证结果
A=[2,1,1;1,3,2;1,2,2];
b=[4;6;5];
N=3;
eps1=1.0e-30;
A1=A;
%定义一个N行1列的零矩阵
x=zeros(N,1);
%定义N行N列的零矩阵
L=zeros(N,N);
U=zers(N,N);
detA=1;
for k=1:N-1
if abs(A(k,k))<eps1
disp('高斯消元法失败');
break
end
for i=k+1:N
L(i,k)=A(i,k)/A(k,k);
for j=k+1:N
A(i,j)=A(i,j)-L(i,j)*A(k,j);
end
b(i)=b(i)-L(i,k)*b(k);
end
end
x(N)=b(N)/A(N,N);
for i=N-1:-1:1
sum=0;
for j=i+1:N
sum=sum+A(i,j)*x(j);
end
x(i)=(b(i)-sum)/A(i,i);
end
for k=1:N
detA=detA*A(k,k);
end
L=L+eye(N);
for i=1:N
for j=i:N
U(i,j)=A(i,j);
end
end
%输出结果
x
L*U
A1
detA