No BSD License  

Highlights from
Linear equation system 'Ax=r' by Gauss elimination method

3.1

3.1 | 12 ratings Rate this file 22 Downloads (last 30 days) File Size: 1.54 KB File ID: #17427

Linear equation system 'Ax=r' by Gauss elimination method

by

 

06 Nov 2007 (Updated )

Solve N-equation

| Watch this File

File Information
Description

This Matlab program Solve N-equation with Gauss elimination method and check results with Matlab Function.

MATLAB release MATLAB 7.4 (R2007a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (13)
08 Nov 2012 Muhammad Misbah-Ul Islam

thanks a lot. good one for beginners.

14 Dec 2008 bahria group

m don,t understand this code mean m write own code but not applied

11 Dec 2007 Søren Hartmann Kristensen

Got the problem right where other implementations of the method failed! (including my own attempt)

01 Dec 2007 Tim Davis

Jake: 3 pages? It can be done in about 23 lines of C or Fortran, including the forward/backsolve. It can be done in 1 line of MATLAB (x=A\b), or if you don't want to use backslash, in about 14 lines of (well-written) MATLAB, including proper partial pivoting. This code is double that if you graciously exclude the "please input your matrix" prompts. In addition, Rostami's code does NOT do partial pivoting; all it checks if the pivot is zero.

This code is absolute dreck. Here is the output for a trivial 2-by-2 matrix that breaks this code:
Solution of N-equation "[A][X]=[r]"
Enter number of Equations :2
Enter Matrix [A]:[1e-24 1 ; 1 1]
Enter Matrix [r]:[2 ; 3]
@----------------------------------------------------------@
Output [B][x]=[b]
Upper riangular Matrix [B] =
1.0e+24 *

0.0000 0.0000
0 -1.0000

Matrix [b] =
1.0e+24 *

0.0000
-2.0000

solution of linear equations :
0
2

solve with matlab functions(for checking):
1
2

The MATLAB solution (using x=inv(A)*b of all things!) is correct. Rostami's code gives a completely incorrect answer.

Please delete this file from the File Exchange; it leads unwary users (like Jake) down the wrong path with counterfeit algorithms that pretend to be robust.

21 Nov 2007 Jake de Burgh

Although it takes just one page, it works as millions of pages for me because I really needed it. My professor wrote a program in 3 pages that did whatever your program does but in a really weaker format. thanks very much.

20 Nov 2007 Mohammed Almassri

Thanks for the code.
it is very useful code for me, I need it.

10 Nov 2007 Tim Davis

John's comments say it all. This is MATLAB code at its extreme. Extremely bad. Please remove this from the File Exchange, "it detracts from the sum total of human knowledge".

For all those of you downloading this tripe, if you realy want to see how Gaussian elimination is done, get Cleve Moler's book (http://www.mathworks.com/moler) and the NCM toolbox. See lutx.m.

The only purpose for downloading this might be to cheat on your homework assignment ("Problem 3.2, write your own Gaussian elimination function in MATLAB"). Shame on you.

07 Nov 2007 YetAnother Rostami

Maybe the author mistyped the subject of the review while intending something like "This Matlab program DEMONSTRATES HOW NOT TO Solve N-equation with Gauss elimination method and check results with Matlab Function." ;-)

07 Nov 2007 John D'Errico

Ah, but that is the problem exactly!

This teaches students to start writing BAD Matlab programming. This teaches them bad habits, bad skills that they will then need to unlearn.

This code teaches students to use scripts instead of functions. It teaches them to clear the workspace out from under the user who might wish to test the code.

This code teaches students to use a clunky, kludge of an interface to intereact with the user.

This code teaches students to use multiply nested loops to solve problems where they do not need to be used. (Note that a good implementation of elimination might be written using at worst a single loop.)

This code may even convince some students that a good way to solve a linear system of equations in matlab is to use this code. Instead, this is absolutely terrible as a tool in Matlab.

This code teaches students that inv is a good way to check their results here. NOT TRUE!!!

This code teaches students NOT to write code with helpful comments.

This code teaches students to not bother with error checking.

This code teaches students a poor implementation of Gaussian elimination.

Sadly, if you are a student who is just learning about Matlab and mathematics in general, you won't know all the above reasons for NOT wanting to download this code. You might believe it is good, as Reza apparently does. You would be mistaken.

I won't even get into the question of the author's sister or mother apparently choosing to rate the code as good. Talk about an "unbiased" review there.

07 Nov 2007 reza sadeghinejad

it is a useful program for the students who want to start matlab programing

07 Nov 2007 Foo Rostami

Apart from the technical issues John mentioned, i award this homeward a "poor" rating to balance Sarah's review who incidentally has the same first name as the author...

07 Nov 2007 sarah rostami  
06 Nov 2007 John D'Errico

Beware: This is a script that will clear your Matlab workspace. It is a student's homework assignment. As such it is not of any real use or value beyond a homework assignment.

This uses loops to solve a problem poorly that is far better done using only 3 characters to solve in Matlab. A\r

How about the code itself? Is it well implemented? NO. This code deals poorly with zero or infinitesimal pivots.

Worse, the check at the end is poorly implemented - using inv.

The script lacks any help. It lacks any error checks. It lacks any useful comments that show what was done.

I'm sorry, but this homework assignment does not even merit a grade of A as homework. As a submission on the file exchange, it deserves a poor rating.

Contact us