Accueil > > > OPÉRATION MATRICIELLE
OPÉRATION MATRICIELLE
Information sur la source
Description
C'est un ensemble de codes qui permettent d'éfectuer les opérations matricielles comme l'addition la multiplication, la transposée, la comatrice, l'inversion,... Vous n'avez qu'à appeller une fonction et l'utiliser. J'espère que cela va vous être utile;
Source
- # -*- coding: cp1252 -*-
-
- # C'est un ensemble de codes sources permettant d'effectuer les opérations matricielles, à savoir
- # l'addtion, la multiplication, le déterminant, la comatrice, la transposée d'une matrice, l'inverse d'une matrice
- #Extraire une ligne i et une colonne j d'une matrice. Notez q'une matrice a pour syntaxe:
- # A=[[a, b],[c,d]], la matrice est représentée ligne par ligne donc A est équivalent à:
- # [a b]
- # [ c d]
-
-
- def Extrtlincol(m,n,M):
- "retourne la matrice A sans la m ième ligne et la n ième colonne"
- Mlin=len(M)
- result=[]
- Rep=[]
- for i in range(Mlin):
- if i!=m:
- for j in range(Mlin):
- if (j!=n):
- result.append(M[i][j])
- for k in range(0,len (result),Mlin-1):
- Rep.append(result[k:k+Mlin-1])
- return Rep
- ##################################################
- def Det(A):
- " retourne le déterminat de la matrice A"
- if len(A)==1:
- return A[0][0]
- if len(A)==2:
- r=A[0][0]*A[1][1]-A[0][1]*A[1][0]
- return r
- else:
- s=0
- j=0
- while j<len(A):
- B=Extrtlincol(j,0,A)
- if j%2==0:
- s=s+A[j][0]*Det(B)
- else:
- s=s-A[j][0]*Det(B)
- j=j+1
- return s
- ######################################################
- def comat(A):
- "Donne la comatrice d'une matrice A"
- N=len (A)
- k=0
- com=[None]*N
- while k<N:
- com[k]=[0]*N
- l=0
- while l<N:
- B=Extrtlincol(k,l,A)
- if (k+l)%2==0:
- com[k][l]=(Det(B))
- else:
- com[k][l]=((-1)*Det(B))
- l=l+1
- k=k+1
- return com
- ###################################################
- def transpos(A):
- "Donne la transposée d'une matrice A"
- N=len(A)
- M=[None]*N
- for i in range(N):
- M[i]=[0]*N
- for j in range(N):
- M[i][j]=A[j][i]
- return M
- #####################################################
- def multcoef(A,r):
- "Donne le produit d'une matrice A par le coefficient r"
- N=len(A)
- Mat=[None]*N
- for i in range(N):
- Mat[i]=[0]*N
- for j in range(N):
- Mat[i][j]=r*A[i][j]
- return Mat
- ######################################################
-
- def invmat(A):
- "Donne l'inverse d'une matrice carrée A"
- d=Det(A)
- if d==0:
- return 'La Matrice n\'est pas inversible'
- else:
- B=multcoef(comat(A),1./d)
- inv=transpos(B)
- return inv
- ###############################################################
- def Multmat( Mat1,Mat2):
- "Donne le produit de deux matrices"
- Mat1lign,Mat1col= len (Mat1), len (Mat1[0])
- Mat2lign,Mat2col= len (Mat2), len (Mat2[0])
- A=[]
- M=[None]*Mat1lign
- if Mat1col!=Mat2lign:
- print " Erreur! Votre première matrice à un nombre de colonne\ n inferieur à celle de la seconde matrice"
- for i in range(Mat1lign):
- M[i]=[0]*Mat2col
- for j in range(Mat2col):
- for k in range(Mat1col):
- M[i][j]=M[i][j]+Mat1[i][k]*Mat2[k][j]
- for m in range(Mat1lign):
- print M[m]
- ####################################################
- def Addmat(M1,M2):
- "Additionne deux matrices carrées"
- N=len(M1)
- M=[None]*N
- for i in range (N):
- M[i]=[0]*N
- for j in range (N):
- M[i][j]=M1[i][j]+M2[i][j]
- return M
-
# -*- coding: cp1252 -*-
# C'est un ensemble de codes sources permettant d'effectuer les opérations matricielles, à savoir
# l'addtion, la multiplication, le déterminant, la comatrice, la transposée d'une matrice, l'inverse d'une matrice
#Extraire une ligne i et une colonne j d'une matrice. Notez q'une matrice a pour syntaxe:
# A=[[a, b],[c,d]], la matrice est représentée ligne par ligne donc A est équivalent à:
# [a b]
# [ c d]
def Extrtlincol(m,n,M):
"retourne la matrice A sans la m ième ligne et la n ième colonne"
Mlin=len(M)
result=[]
Rep=[]
for i in range(Mlin):
if i!=m:
for j in range(Mlin):
if (j!=n):
result.append(M[i][j])
for k in range(0,len (result),Mlin-1):
Rep.append(result[k:k+Mlin-1])
return Rep
##################################################
def Det(A):
" retourne le déterminat de la matrice A"
if len(A)==1:
return A[0][0]
if len(A)==2:
r=A[0][0]*A[1][1]-A[0][1]*A[1][0]
return r
else:
s=0
j=0
while j<len(A):
B=Extrtlincol(j,0,A)
if j%2==0:
s=s+A[j][0]*Det(B)
else:
s=s-A[j][0]*Det(B)
j=j+1
return s
######################################################
def comat(A):
"Donne la comatrice d'une matrice A"
N=len (A)
k=0
com=[None]*N
while k<N:
com[k]=[0]*N
l=0
while l<N:
B=Extrtlincol(k,l,A)
if (k+l)%2==0:
com[k][l]=(Det(B))
else:
com[k][l]=((-1)*Det(B))
l=l+1
k=k+1
return com
###################################################
def transpos(A):
"Donne la transposée d'une matrice A"
N=len(A)
M=[None]*N
for i in range(N):
M[i]=[0]*N
for j in range(N):
M[i][j]=A[j][i]
return M
#####################################################
def multcoef(A,r):
"Donne le produit d'une matrice A par le coefficient r"
N=len(A)
Mat=[None]*N
for i in range(N):
Mat[i]=[0]*N
for j in range(N):
Mat[i][j]=r*A[i][j]
return Mat
######################################################
def invmat(A):
"Donne l'inverse d'une matrice carrée A"
d=Det(A)
if d==0:
return 'La Matrice n\'est pas inversible'
else:
B=multcoef(comat(A),1./d)
inv=transpos(B)
return inv
###############################################################
def Multmat( Mat1,Mat2):
"Donne le produit de deux matrices"
Mat1lign,Mat1col= len (Mat1), len (Mat1[0])
Mat2lign,Mat2col= len (Mat2), len (Mat2[0])
A=[]
M=[None]*Mat1lign
if Mat1col!=Mat2lign:
print " Erreur! Votre première matrice à un nombre de colonne\ n inferieur à celle de la seconde matrice"
for i in range(Mat1lign):
M[i]=[0]*Mat2col
for j in range(Mat2col):
for k in range(Mat1col):
M[i][j]=M[i][j]+Mat1[i][k]*Mat2[k][j]
for m in range(Mat1lign):
print M[m]
####################################################
def Addmat(M1,M2):
"Additionne deux matrices carrées"
N=len(M1)
M=[None]*N
for i in range (N):
M[i]=[0]*N
for j in range (N):
M[i][j]=M1[i][j]+M2[i][j]
return M
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Resolution d'un pb matriciel [ par clemumm ]
Bonjour,Je dois pour un cours programmer un calcul hydrodynamique et j'ai commencer a le faire en python => le problème c'est que je me trouve face
matrice symétrique [ par delaval ]
bonjour, je suis actuellement en train d'écrire une fonction symétrique qui renvoie True or False selon la matrice que je rentre. Voici mon code:class
décomposition LDU d'une matrice [ par map33 ]
Bonjour,nous sommes débutantes en python et un projet de fin de licence nous est demandé sur ce programme.Nous devons trouver le code de la décomposit
Charger une matrice d'un fichier [ par Alambiqux ]
Bonjour, J'ai des fichiers colonnes de floats et je souhaiterais les charger dans une liste. Et, également,de manière plus général lorsqu'il s'agit d
Python, jeu de mémory [ par Mattmad ]
Bonjour, je suis en train de plancher sur un jeu de memory via python mais je ne parviens pas à résoudre un "petit" problème, je vous pose la question
créer une matrice [ par basmaber ]
Bonjour, est ce que quelqu'un peut m'aider j'ai une liste de ce genre ['I1', '5.', '480.', '480.', '480.', '', 'I2', '0.5', '0.85', '0.85', '0.85', ''
difficulté d'analyse [ par melwin8 ]
Bonjour, Je suis un débutant en programmation et en reprise d'étude. J'ai beaucoup de mal à analyser et à convertir en algorithme. Donc j'aurais beso
|
Derniers Blogs
VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet [ #SHAREPOINT 2013 ] LES MODèLES DE SITES STANDARDS.[ #SHAREPOINT 2013 ] LES MODèLES DE SITES STANDARDS. par Patrick Guimonet
C'est un point peu mis en avant mais SharePoint 2013 a été l'occasion de remettre de l'ordre dans les modèles de sites. Tout d'abord, un certain nombre de modèles ont été tout simplement rendus obsolètes (cf. Fonctionnalités déco...
Cliquez pour lire la suite de l'article par Patrick Guimonet 10 ERREURS DE COMPRéHENSION CONCERNANT SHAREPOINT.10 ERREURS DE COMPRéHENSION CONCERNANT SHAREPOINT. par Patrick Guimonet
Une excellente infographie (qui a sa source ici :http://www.evokeit.com/sharepoint-blog/misconceptions-of-microsoft-sharepoint) que j'ai traduite et commentée sur le blog d'Abalon : http://abalon.fr/blog/10-erreurs-de-comprhension-...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Nego Facturation (1.84)NEGO FACTURATION (1.84)Nego Facturation est un logiciel complet qui permet de gérer vos factures et devis très simplemen... Cliquez pour télécharger Nego Facturation Revealer Keylogger Free (2.07)REVEALER KEYLOGGER FREE (2.07)Keylogger invisible et gratuit pour Windows 8, 7, Vista ou XP. Revealer Keylogger Free vous perme... Cliquez pour télécharger Revealer Keylogger Free Devis-Factures PHMSD (2.1.0.1)DEVIS-FACTURES PHMSD (2.1.0.1)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD Ludoprêt (3.2)LUDOPRêT (3.2)Logiciel gratuit de gestion de ludothèque.
Gestion des jeux et des adhérents.
Gestion des for... Cliquez pour télécharger Ludoprêt 974 Application Server (13.2.1.3)974 APPLICATION SERVER (13.2.1.3)Ecommerce, Blogueur, Vitrine, Newsletter, Java IDE, ..., in the cloud et sous haute dispo. Facile... Cliquez pour télécharger 974 Application Server
|