Code covered by the BSD License  

Highlights from
Gauss elimination with complete pivoting

3.7

3.7 | 11 ratings Rate this file 40 Downloads (last 30 days) File Size: 1.42 KB File ID: #13451

Gauss elimination with complete pivoting

by

 

19 Dec 2006 (Updated )

This function calculate Gauss elimination with complete pivoting

| Watch this File

File Information
Description

This function calculate Gauss elimination with complete pivoting.

G)aussian (E)limination (C)omplete (P)ivoting
Input
A nxn matrix
Output
L = Lower triangular matrix with ones as diagonals
U = Upper triangular matrix
P and Q permutations matrices so that P*A*Q = L*U

examples :
[L U] = gecp(A);
[L U P] = gecp(A);
[L U P Q] = gecp(A);

Acknowledgements

This file inspired Lu Factorization With Complete Pivoting..

MATLAB release MATLAB 5.3 (R11)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (15)
26 Feb 2014 Kostas  
12 Jul 2012 James Tursa

You need to take the syntax text from the above description and put it in the comment section of your code. You also need to add an H1 line at the top. The way it is now, the user has to manually edit your source code to get this information since it does not appear when you type "help gecp", so it is not user friendly.

22 Apr 2012 carlos lopez

My two cents regarding applications for this submissions. What happends when you run out of memory with A\b? In some cases you can accept a painfully slow implementation which fits into available memory. And Gaussian Elimination can do the job.

25 May 2010 Dario

it seems, this doesn't compute P,L,U,Q such that P*A*Q = L*U
but such that A = P*L*U*Q or equivalently P'*A*Q' = L*U

21 Jun 2008 sid s

Somethings wrong in the calculation of Q. We do not get L*U==P*A*Q;
Consider the matrix below with 1 on the diagonal, -1 in the lower triangle and 1 on the last column. The code below plots the error between L*U and P*A*Q and it is definitely not zero.

N=10;
A=ones(N,N);
A=A-2*tril(A,-1)-triu(A,1);
A(:,N)=1;

[L,U,P,Q]=gecp(A);
mesh(abs(L*U-P*A*Q));

If its just a convention mistake then this is a good code.

10 Jan 2008 daman chadha

example mail

10 Jan 2008 daman chadha

plewase details with example

29 Sep 2007 Kate Mouzakis  
30 Dec 2006 John Trevor

Very Useful

25 Dec 2006 rachid el moustachir  
21 Dec 2006 Nick Cheilakos

I promise to update soon the documentation. But now I have a problem and I can't do it now.

Why someone use this function?

If you want to find some data about the growth of this method you can't use lu. (Because lu use partitial pivoting)

Also you can use it if you want to study the pivot structure of Hadamard matrices.

21 Dec 2006 Jonh Adams

I agree with Dimitris' comments. LU does partitial pivoting and not complete.

In courses of Numerical Linear Algebra Gauss elimination with complete pivoting is very usefull.

I don't give 5 beucause the lack of documentetion.

20 Dec 2006 mpampix short  
20 Dec 2006 Dimitris Simos

I give a 4 out of 5 rating to this submission. It is a really good implementation of GECP, taking full advantage of matlab vectorizing capabililities. I don;t give a 5 to 5 rating, due to the lack of documentation.

I agree with Duane only to one point, to the H1 line; this should point to % GECP Gaussian Elimination Complete Pivoting...

Duane, I firmly believe that you are judging too hard this submission.

Firsty, the built-in function of LU, does partial pivoting and not complete pivoting. So, this submission is worthy of its place here. In addition, an implementation of GECP, so far to my knowledge is wanted in many universities in courses of Numerical Linear Algebra.

20 Dec 2006 Duane Hanselman

This submission uses good syntax and does not ignore vectorization, but (a) it does not use standard MATLAB help such as the H1 line or describe the order of the output arguments, (b) it does not say that this is educational code since the built in function LU does what this function does already so it has no other practical use, (c) it does not have any internal comments that would provide educational value to the user.

After appropriate revision, this is a welcome addition to the FEX. Perhaps there should be an "educational algorithm implementation" category, so that no one confuses code such as this with something already built in to MATLAB.

Updates
23 Dec 2011

Some errors corrected

Contact us