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 uniformdef 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 triangleprint ''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] /= tempelse:a[i][k] =a[i][k]/temp - a[j][k]showIt(a)#back subtitutionfor 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] /= tempelse:a[i][k] = a[i][k]/temp - a[j][k]print ''showIt(a)
Here's the result
No comments:
Post a Comment