如何在Matlab中用Gauss法解线性方程?

来源:百度知道 编辑:UC知道 时间:2024/05/13 11:00:39
即:求解Ax=b

function [x,det,flag]=gauss(A,b)
%by dynamic
%see also http://www.matlabsky.com
%contact me matlabsky@gmail.com
%2009.2.
%
%example
%A=[-3 2 6;10 -7 0;5 -1 5];
%b=b=[4 7 6];
%gauss(A,b)
[n,m]=size(A);
nb=length(b);
if n~=m
error('A must be squre!');
return
end
if m~=nb
error('The columns A must be equal the length of b!');
return
end
flag='ok';
det=1;
x=zeros(n,1);
for kk=1:n-1
%选主元
mymax=0;
for ii=kk:n
if abs(A(ii,kk))>mymax
mymax=abs(A(ii,kk));
r=ii;
end
end
if mymax<1e-10
flag='failture';
return
end
%交换两行
if r>kk
for jj=kk:n
z=A(kk,jj);