import numpy


# LU factorisation and finding out upper matrix
def LU_decompose(a):
    n = len(a)
    for k in range(0,n-1):
        for i in range(k+1,n):
           if a[i,k] != 0.0:
               lam = a [i,k]/a[k,k]
               a[i,k+1:n] = a[i,k+1:n] - lam*a[k,k+1:n]
               a[i,k] = 0
    return a


a = numpy.array([[2,3,3],[0,5,7],[6,9,8]])
print 'given coefficient matrix is --->'
print a

a = LU_decompose(a)
print '\nUpper triangular matrix U, such that Ux = c is --->'
print a

Strang-1.5-5-U (last edited 2010-12-17 11:42:32 by 172)