||'''Book'''|| Linear Algebra || ||'''Author'''|| Gilbert Strang || ||'''Edition'''|| || /* code_begins */ {{{ import numpy # LU decomposiong method 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] = lam return a #solving LU def LU_solution(a,b): n = len(a) for k in range(1,n): b[k] = b[k] - numpy.dot(a[k,0:k],b[0:k]) for k in range(n-1,-1,-1): b[k] = (b[k] - numpy.dot(a[k,k+1:n],b[k+1:n]))/a[k,k] return b a=[] m = eval(raw_input("Enter number of rows: " )) n = eval(raw_input("Enter number of columns: " )) for i in range(m): for j in range(n): c = eval(raw_input("Enter element %d %d: " %(i+1,j+1) )) a.append(c) a = numpy.reshape(a,(m,n)) a = LU_decompose(a) det = numpy.prod(numpy.diagonal(a)) print '\nDeterminant =',det while 1: print '\nInput constant vector (press return to exit):' try: b = numpy.array(eval(raw_input('==> '))) except SyntaxError: break x = LU_solution(a,b) print 'The solution is:\n',x raw_input("\nPress return to exit") }}} /* code_ends */ * '''Solution by''': * , ,