Nugroho's blog.: Gauss Jordan in Python.

Tuesday, May 2, 2017

Gauss Jordan in Python.


Yeah, it's basically Gauss elimination (or we could call it Gauss Naif :) ) but with slight modification at the end.

So, instead using back substitutions after zeroing the lower triangle, we straight on and zeroing upper triangle as well. As addition, we could normalize the diagonal elements so we have identity matrice.

And all is well, :)






from random import uniform
def showIt(a):
    print 'The matrix'
    print a[0][0], a[0][1],a[0][2], a[0][3]
    print a[1][0], a[1][1],a[1][2], a[1][3]
    print a[2][0], a[2][1],a[2][2], a[2][3]
a = []
x = []
for i in range (3):
    a.append([])
    x.append(0.)
    for j in range (4):
        a[i].append(uniform(.1,10))
        
showIt(a)
#Elimination of lower triangle
print ''
print 'lower triangle elimination'
for i in range(3):
    for j in range(0,i+1):
        temp = a[i][j]
        for k in range(4):
            if (i==j):
                a[i][k] /= temp
            else:
                a[i][k] =a[i][k]/temp - a[j][k]
        
showIt(a)
#back subtitution
for i in range(1,-1,-1):
for j in range(2,i-1,-1):
temp = a[i][j]
for k in range (i,4):
if(i==j):
a[i][k] /= temp
else:
a[i][k] = a[i][k]/temp - a[j][k]
print ''
showIt(a)
.


Here's the result




No comments:

323f (5) amp (1) android (12) apple (7) arduino (18) art (1) assembler (21) astina (4) ATTiny (23) blackberry (4) camera (3) canon (2) cerita (2) computer (106) crazyness (11) debian (1) delphi (39) diary (286) flash (8) fortran (6) freebsd (6) google apps script (8) guitar (2) HTML5 (10) IFTTT (7) Instagram (7) internet (12) iOS (5) iPad (6) iPhone (5) java (1) javascript (1) keynote (2) LaTeX (6) lazarus (1) linux (29) lion (15) mac (28) macbook air (8) macbook pro (3) macOS (1) Math (3) mathematica (1) maverick (6) mazda (4) microcontroler (35) mountain lion (2) music (37) netbook (1) nugnux (6) os x (36) php (1) Physicist (29) Picture (3) programming (189) Python (109) S2 (13) software (7) Soliloquy (125) Ubuntu (5) unix (4) Video (8) wayang (3) yosemite (3)