Téléchargement
illégal
Posez votre question Signaler

Inverse d'une matrice

farah_87 6Messages postés 23 décembre 2007Date d'inscription - Dernière réponse le 10 mai 2011 à 07:37
je cherche le code source de calcul de l'inverse d'une matrice. svp je veux qu'il soit en algorithmique je connai aucun langage de programmation. c'est urgent.
merci d'avance
Lire la suite 

Inverse d'une matrice »

19 réponses
Réponse
+7
moins plus
De mémoire, l'inverse d'une matrice n'est pas la permutation des colonnes en ligne et vice et versa (ça c'est la matrice dite transposée), mais la matrice qui multipliée par la première donne la matrice unité, à l'image de l'inverse d'un nombre qui est 1/nombre !
Et là ce n'est plus du tout le même algorithme !!
Il te faut déjà calculer le déterminant de la matrice.
Tous les calculs doivent se faire en nombres réels
Bonne chance !
Ajouter un commentaire
Réponse
+2
moins plus
salut ..
je veux ecrire un prog pascal qui transforme cette matrice ( matrice carée ! )en sa transposée par rapport à la deuxième diagonale
voir l'exemple :
7 2 1 3........................ 5 0 4 3
0 5 9 4........................ 6 8 9 1
2 0 8 0 ........................3 0 5 2
1 3 6 5 ........................1 2 0 7
tatou - 9 mai 2011 à 21:14
et le program ou ?
tatou_38- 10 mai 2011 à 07:37
3 ans après, khadija a sans doute perdu le programme ...
Ajouter un commentaire
Réponse
+1
moins plus
BONSOIR A TOUS

y a t-il parmis vous quelqu'un qui peut m'aider a resoudre un probleme de script en shell bash le jeux du pendu merci d'avance
Doctor C- 6 janv. 2008 à 04:10
euh, tu es un peu hors contexte si tu veux mon avis...

tu devrais créer une nouvelle discussion!

cette discussion est au sujet du calcul de l'inverse d'une matrice...
Ajouter un commentaire
Réponse
+1
moins plus
merci pour vos reponses mais j'arrive pas encore a ecrire l'algorithme svp si vous l'avez envoie le.c'est un DL que je dois rendre demain
siioo - 31 oct. 2008 à 19:42
t'es un marrant toi un peu non ?
Ajouter un commentaire
Réponse
+1
moins plus
Pour calculer l'inverse d'une matrice par la methode de gauss on utilise des combinaisons linéaires entre les lignes uniquement, les colonnes uniques ou tous les deux ensemble????
Merci
Ajouter un commentaire
Réponse
+1
moins plus
salut ..
je veux ecrire un prog pascal qui transforme cette matrice ( matrice carée ! )en sa transposée par rapport à la deuxième diagonale
voir l'exemple :
7 2 1 3 5 0 4 3
0 5 9 4 6 8 9 1
2 0 8 0 =====> 3 0 5 2
1 3 6 5 1 2 0 7
Ajouter un commentaire
Réponse
+1
moins plus
bsr;
bein ma question est la suivante.
existe t il des fonction qui nous montre comment inversé une matrice mais avec le langage c++ builder.
merci de m'y rependre.
Ajouter un commentaire
Réponse
+1
moins plus
salut a tous
SVP j'ai besoin d'un programme qui effectue l'inversion d'une matrice d'urgence
si ya quelqu'un qui peut m'aider alors voila mon email ali_00731@hotmail.com
tatou_38- 16 mars 2008 à 15:11
dis-nous ce que tu as fait et on t'aidera à avancer !
Ajouter un commentaire
Réponse
+1
moins plus
programme qui calcule la matrice inverse en pascal
khiter zakaria - 18 nov. 2008 à 08:56
Salut "prog.pas" voici un programme pascal qui effectue l'inversion d'une matrice

PROGRAM INV_MAT_Z++;

USES Crt;

TYPE Matrice=ARRAY[1..10,1..10] OF REAL;

VAR MatA,MatB,MatC:Matrice;
N:BYTE;
OK:BOOLEAN;

PROCEDURE Intro(VAR N:BYTE;VAR Mat:Matrice);
VAR i,j:BYTE;
BEGIN
CLRSCR;
TEXTCOLOR(YELLOW);
WRITE('Nombre de lignes:');READLN(N);
FOR i:=1 TO N DO
FOR j:=1 TO N DO
BEGIN
{GOTOXY(3,4);CLREOL;
WRITE('Introduisez A(',i,',',j,'): ');
READLN(Mat[i,j]);}
Mat[i,j]:=RANDOM(100);{Pour tester}
END;
END;

PROCEDURE Attente;
VAR St:STRING;
BEGIN
TEXTCOLOR(LIGHTRED);
St:='Une touche pour continuer.';
GOTOXY(40-LENGTH(St) DIV 2,25);WRITE(St);READKEY;
END;

PROCEDURE Affiche(S:STRING;N:BYTE;Mat:Matrice);
VAR i,j:BYTE;
BEGIN
CLRSCR;
TEXTCOLOR(LIGHTGREEN);
WRITELN(S);
FOR i:=1 TO N DO
BEGIN
FOR j:=1 TO N DO
WRITE(Mat[i,j]:9:4);
WRITELN;
END;
END;

PROCEDURE Somme(N:BYTE;MatA,MatB:Matrice;VAR MatC:Matrice);
VAR i,j:BYTE;
BEGIN
FOR i:=1 TO N DO
FOR j:=1 TO N DO
MatC[i,j]:=MatA[i,j]+MatB[i,j];
END;

PROCEDURE Difference(N:BYTE;MatA,MatB:Matrice;VAR MatC:Matrice);
VAR i,j:BYTE;
BEGIN
FOR i:=1 TO N DO
FOR j:=1 TO N DO
MatC[i,j]:=MatA[i,j]-MatB[i,j];
END;

PROCEDURE Produit(N:BYTE;MatA,MatB:Matrice;VAR MatC:Matrice);
VAR i,j,k:BYTE;
BEGIN
FOR i:=1 TO N DO
FOR j:=1 TO N DO
BEGIN
MatC[i,j]:=0;
FOR k:=1 TO N DO
MatC[i,j]:=MatC[i,j]+MatA[i,k]*MatB[k,j];
END;
END;

PROCEDURE Inverse(N:BYTE;A:Matrice;VAR X:Matrice;VAR OK:BOOLEAN);
VAR Id,E,B:Matrice;
Old,New:REAL;
Cpt:BYTE;

FUNCTION Norme_Ligne(N:BYTE;B:Matrice):REAL;
VAR Tmp,Tmp2:REAL;
i,j:BYTE;
BEGIN
Tmp:=0;
FOR i:=1 TO N DO
BEGIN
Tmp2:=0;
FOR j:=1 TO N DO
Tmp2:=Tmp2+ABS(B[i,j]);
IF Tmp2>Tmp THEN Tmp:=Tmp2;
END;
Norme_Ligne:=Tmp
END;

FUNCTION Norme_Colonne(N:BYTE;B:Matrice):REAL;
VAR Tmp,Tmp2:REAL;
i,j:BYTE;
BEGIN
Tmp:=0;
FOR i:=1 TO N DO
BEGIN
Tmp2:=0;
FOR j:=1 TO N DO
Tmp2:=Tmp2+ABS(B[j,i]);
IF Tmp2>Tmp THEN Tmp:=Tmp2;
END;
Norme_Colonne:=Tmp
END;

PROCEDURE Init(N:BYTE;A:Matrice;VAR B:Matrice;VAR OK:BOOLEAN);
VAR i,j:BYTE;
T:REAL;
BEGIN
FILLCHAR(Id,SizeOf(Id),0);
T:=Norme_Ligne(N,A)*Norme_Colonne(N,A);
IF ABS(T)>1E-10 THEN BEGIN
OK:=TRUE;
FOR i:=1 TO N DO
BEGIN
Id[i,i]:=1;
B[i,i]:=A[i,i]/T;
FOR j:=i+1 TO N DO
BEGIN
B[i,j]:=A[j,i]/T;
B[j,i]:=A[i,j]/T;
END;
END;
END
ELSE OK:=FALSE;
END;

PROCEDURE Calcule_E;
VAR C:Matrice;
BEGIN
Produit(N,B,A,C);
Difference(N,Id,C,E);
END;

PROCEDURE Calcule_B;
VAR C,D:Matrice;
BEGIN
Somme(N,Id,E,D);
Produit(N,D,B,C);
B:=C
END;

BEGIN
Init(N,A,B,OK);
IF NOT OK THEN WRITELN('Matrice nulle!')
ELSE BEGIN
Calcule_E;
Old:=Norme_Ligne(N,E);
New:=Old;
Cpt:=0;
WHILE NOT ((New<1E-6) OR ((New>Old) AND (Cpt>5))) DO
BEGIN
Old:=New;
Calcule_B;
Calcule_E;
New:=Norme_Ligne(N,E);
INC(Cpt);
END;
OK:=TRUE;
IF New<1E-6 THEN X:=B
ELSE OK:=FALSE
END;
END;

BEGIN
Intro(N,MatA);
Affiche('A=',N,MatA);
Attente;
Inverse(N,MatA,MatB,OK);
IF OK THEN BEGIN
Affiche('Inverse de A=',N,MatB);
Attente;
Produit(N,MatA,MatB,MatC);
Affiche('Produit des matrices inverses=',N,MatC);
Attente;
END
ELSE BEGIN
CLRSCR;
WRITELN('Pas d''inverse!');
END;
END.
naziha64 - 11 déc. 2010 à 08:54
ce programme se bloque dans le cas ou le déterminant est nul ; en principe il doit afficher un message pas d'inverse.
Ajouter un commentaire
Réponse
+1
moins plus
Bonjour,
Je voudrais avoir l'inverse d'une matrice mais cette fois au sens propre c'est à dire avoir une symétrie contraire d'une matrice dans Matlab mais sans utliser les fonctions for.... il faut juste utiliser des affectations. Merci
Ajouter un commentaire
Réponse
+0
moins plus
Pour avoir l'inverse de la matrice il faut que les lignes soit des colonnes et vice-versa;
Pour ça il faut:
1-Lire le tableux dynamique A à 2 dimension tel que les lignes=les colonnes et chaque cellule représente un élément de la matrice
2-B <= A
3-Pour i <= 1 à N faire : *N est le nombre de colonnes=le nombres de lignes
Pour j <= 1 à N faire :
A[j,i] <= B[i,j];
écrire(A);
Fin.
Ajouter un commentaire
Réponse
+0
moins plus
1. N'attends peut-etre pas du forum de faire tes devoirs à ta place, ce ne serait pas pédagogique !
2. Pourquoi attendre le dernier jour des vacances pour faire son DL ?

Je te répodrai bien, mais je ne sais plus où sont mes bouquins de math et je ne me rappèle plus les détails de la chose.

Mais tu es sauvée, il y a un outil que tu peux utiliser, tu le trouveras à http://www.google.fr . Il te permetra sans aucun doute de te montrer comment inverser une matrice !

Ajouter un commentaire
Ce document intitulé « inverse d'une matrice » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?