It's actually just a matter of finding the pattern on that code and after we found the loop, we just have to well... loop it, :)
Here's the automatic code, it could be used on any size of matrices.
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(2,-1,-1): x[i] = a[i][3] for j in range(2,i,-1): x[i] -= x[j]*a[i][j] print '' print x
And the result is
Nugrohos-MacBook-Air:blog nugroho$ python gaussAuto.py The matrix 2.9253100656 5.50024585256 7.54933211423 0.802045271906 7.46608768407 7.19037200354 4.96635482944 5.77225324671 4.34208584906 9.64108592095 6.96107863057 0.5016396771 lower triangle elimination The matrix 1.0 1.88022661845 2.58069467678 0.274174447809 -0.0 1.0 2.08852903767 -0.544024465595 -0.0 -0.0 1.0 -0.0156447726138 [1.2760025294980237, -0.5113499037034588, -0.015644772613790357] Nugrohos-MacBook-Air:blog nugroho$
No comments:
Post a Comment