hi am working on a code for gaussian elimination
14 views (last 30 days)
Show older comments
Ifechukwu
on 22 May 2014
Edited: Walter Roberson
on 17 Jul 2016
hi am working on a code for gaussian elimination but I can't get the code to run for non square matrix please what should I do Here is the code and thanks in advance
function [x,U] = gausselim(A,b)
% function to perform gauss eliminination
%FORWARD ELIMINATION
n=length(b);
m=zeros(n,1);
x=zeros(n,1);
for k =1:n-1;
%compute the kth column of M
m(k+1:n) = A(k+1:n,k)/A(k,k);
%compute An=Mn*An-1, bn=Mn*bn-1
for i=k+1:n;
A(i, k+1:n) = A(i,k+1:n)-m(i)*A(k,k+1:n);
end;
b(k+1:n)=b(k+1:n)-b(k)*m(k+1:n);
end;
U= triu(A);
%BACKWARD ELIMINATION
x(n)=b(n)/A(n,n);
for k =n-1:-1:1;
b(1:k)=b(1:k)-x(k+1)* U(1:k,k+1);
x(k)=b(k)/U(k,k);
end;
end
1 Comment
John D'Errico
on 22 May 2014
I fixed it for you, but you need to learn how to flag a block of code as such. Otherwise, it is unreadable.
Accepted Answer
George Papazafeiropoulos
on 22 May 2014
Edited: Walter Roberson
on 17 Jul 2016
The correct function is:
function [x,U]=gausselim(A,b)
% function to perform gauss eliminination
%FORWARD ELIMINATION
n=length(b);
m=zeros(n,1);
x=zeros(n,1);
for k =1:n-1;
%compute the kth column of M
m(k+1:n) = A(k+1:n,k)/A(k,k);
%compute
%An=Mn*An-1;
%bn=Mn*bn-1;
for i=k+1:n
A(i, k+1:n) = A(i,k+1:n)-m(i)*A(k,k+1:n);
end;
b(k+1:n)=b(k+1:n)-b(k)*m(k+1:n);
end
U= triu(A);
%BACKWARD ELIMINATION
x(n)=b(n)/A(n,n);
for k =n-1:-1:1;
b(1:k)=b(1:k)-x(k+1)* U(1:k,k+1);
x(k)=b(k)/U(k,k);
end
end
After this try to run the code:
A=rand(5,4);
b=rand(4,1);
[x,U] = gausselim(A,b)
Is this what you want? I hope this helps...
George
More Answers (1)
Cory Cress
on 17 Jul 2016
Edited: Walter Roberson
on 17 Jul 2016
R = rref(A)
[R,jb] = rref(A)
[R,jb] = rref(A,tol)
It produces a matrix in reduced row echelon form. Perhaps your exercise was to write it yourself, but for others that want to use a built-in function use rref.
0 Comments
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!