function gaussianelimination(A, b)
if (size(A,1)~=size(b,1))
fprintf('# of rows of matrix A is NOT equal to the # of rows of b!\n');
return;
end
if (size(b,2)~=1)
fprintf('b is not a column vector!\n');
return;
end
if (size(A,1)~=size(A,2))
fprintf('A is not a square matrix!\n');
return;
end
fprintf('Initial augmented matrix');
T = [A, b]
n = size(T,1);
for i=1:(n-1)
p = i;
while (T(p,i)==0)
p = p+1;
end
if (p>n)
fprintf('Matrix A is singular!'\n);
return;
end
temp = T(p,:);
T(p,:) = T(i,:);
T(i,:) = temp;
for j=(i+1):n
m = T(j,i)/T(i,i);
T(j,:) = T(j,:)-m*T(i,:);
end
fprintf('After %d steps of Gaussian elimination:',i);
T
end
if (T(n,n)==0)
fprintf('Matrix A is singular!'\n);
return;
end
x = zeros(n,1);
x(n) = T(n,n+1)/T(n,n);
for i=(n-1):-1:1
x(i) = ( T(i,n+1)-T(i,(i+1):n)*x((i+1):n) )/T(i,i);
end
fprintf('The solution is');
x
Error using gaussianelimination (line 4)
Not enough input arguments.