Vous êtes sur la page 1sur 2

Revision imformatique

Sance 2: Mthodes numriques


Pivot de Gauss :
1. Triangulaire inferieur :
#Pivot de GAUSS (Systemme de Cramer)
#Triangulaire Sup
A=[[2,1,-3],[-1,2,1],[4,2,-1]]
Y=[1,-1,2]
2
4
1
-3

1
-1
2

1
2
1

2
-1

Fonction change lignes :


def echange_lignes(A,Y,i,j):
n=len(A) #len(Y), len(A[0]])
for K in range (n):
A[i][k], A[j][k]= A[j][k], A[i][k]
Y[i], Y[j]= Y[j], Y[i]

Fonction de transvection :

def transvection (A,Y,i,j,k): # Ai+=k*Aj


n=len(A)
for c in range(n):
A[i][c]+=K*A[j][c]
Y[i]+=k*Y[j]
Fonction qui cherche le Pivot:
def Pivot_ts(A,j):
n=len(A)
p=j
for j in range (j+1,n):
if abs(A[i][j])>abs(A[p][j]): p=i
return p
def triangulaire_sup(A,y):
n=len(A)
for j in range (n-1):
p=pivot(A,j)
if A[p][j]==0: return "systeme non singulier"
echange_ligne(A,Y,j,p)
for i in range (j+1,n):
k=-A[i][j]/A[j][j]
transvection(A,Y,i,j,k)
return True

def remonte(A,Y):
n=len(A)
X=[0]*n
X[n-1]=Y[n-1]/A[n-1][n-1]
for i in range (n-2,-1,-1):
s=0
for j in range (i+1,n):
s+=X[j]*A[i][j]
X[i]=(Y[i]-s)/A[i][i]
return Tru

Vous aimerez peut-être aussi