hi am working on a code for gaussian elimination

10 vues (au cours des 30 derniers jours)
Ifechukwu
Ifechukwu le 22 Mai 2014
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 commentaire
John D'Errico
John D'Errico le 22 Mai 2014
I fixed it for you, but you need to learn how to flag a block of code as such. Otherwise, it is unreadable.

Connectez-vous pour commenter.

Réponse acceptée

George Papazafeiropoulos
George Papazafeiropoulos le 22 Mai 2014
Modifié(e) : Walter Roberson le 17 Juil 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

Plus de réponses (1)

Cory Cress
Cory Cress le 17 Juil 2016
Modifié(e) : Walter Roberson le 17 Juil 2016
I think the command you are looking for is rref :
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.

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by