gauss_elim.py
# gauss elimination as seen in the classroom import numpy as np # A is type array from numpy # remember: A[0.0] is the first element # Elementary row operations: def troca_linha(A,i,j): buffer = A[i] A[i] = A[j] A[j] = buffer return A def mult_linha(A,i,alfa): A[i] = alfa*A[i] return A def subs_linha(A,i,k,alfa): A[i] = A[i] + alfa*A[k] return A # step k of gauss elimination: def gauss_step(A,k): L=range(len(A)) for j in L[k+1:]: m=-A[j,k]/A[k,k] A=subs_linha(A,j,k,m) return A # triangle form, without care and pivoting def triangle_form(A): L=len(A) for k in range(L): if A[k,k] != 0: A=gauss_step(A,k) print A # for testing else: print ' falhou no passo ', k return A # roda um teste A=np.array([[1,2,3], [2,-1,9], [3.,0., 2.]]) B=triangle_form(A)
Generated by GNU Enscript 1.6.5.2.