function x=gauss_elim(a,b)
% Gauss 消去法
[n,m]=size(a);
nb=length(b);
det=1; %存储行列式值
x=zeros(n,1);
for k=1:n-1
for i=k+1:n
if a(k,k)==0
return
end
m=a(i,k)/a(k,k);
for j=k+1:n
a(i,j)=a(i,j)-m*a(k,j);
end
b(i)=b(i)-m*b(k);
end
det=det*a(k,k); %计算行列式
end
det=det*a(n,n);
for k=n:-1:1 %回代求解
for j=k+1:n
b(k)=b(k)-a(k,j)*x(j);
end
x(k)=b(k)/a(k,k);
end
|