Enscript Output

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.

VocĂȘ acessou como visitante (Entrar)
Moodle