Inverse d'une matrice - Algo - Programmation
Marsh Posté le 23-10-2002 à 16:37:07
Je vais peut etre dire une connerie ( arretez moi au cas! ) mais je vais quand meme essayer d'aider
L'inverse d'une matrice A c'est bien la matrice qui donne l'identité quand on la multiplie par A c'est ca? Dans ce cas retrouver un inverse de matrice ne se résume-t-il pas a résoudre un systeme tout simplement?
Marsh Posté le 23-10-2002 à 16:39:38
http://www.gel.ulaval.ca/~fortier/ [...] rices.html
"L'inverse d'une matrice ne peut être obtenue qu'à partir d'une matrice carrée"
Marsh Posté le 23-10-2002 à 16:40:27
surement mais dans ce cas je ne sais po le resoudre quand la matrice n'est pas carré
Marsh Posté le 23-10-2002 à 16:41:00
Ace17 a écrit a écrit : http://www.gel.ulaval.ca/~fortier/ [...] rices.html "L'inverse d'une matrice ne peut être obtenue qu'à partir d'une matrice carrée" |
Désolé c'est une connerie
edit : finalement ca doit etre possible quand les deux matrices ont des dimensions échangées
Marsh Posté le 23-10-2002 à 16:41:41
L'inverse d'une matrice ce n'est pas la transposée de la comatrice sur le déterminant de A?
Problème: je ne me souviens plus comment on calcule le déterminant d'une matrice de dimension supérieure à 3x3.
Marsh Posté le 23-10-2002 à 16:50:16
daprès ce que jai trouvé en cherchant, lorsque ce n'est pas carré, il y a une infinité de solutions. Il est probable que ce n'est pas une matrice "complètement inversse" mais "pseudo inverse" ou "demi inverse".
l'inverse a droite d'une matrice A est du type X A = B et a guauche c du typs A X = B. mais après ca je n'en sais po plus
Marsh Posté le 23-10-2002 à 17:09:04
A^-1 = 1/det(A) * transposée(Comatrice(A)).
Il faut que A soit carrée.
Marsh Posté le 23-10-2002 à 17:10:57
Pitounet a écrit a écrit : A^-1 = 1/det(A) * transposée(Comatrice(A)). Il faut que A soit carrée. |
Et voilà Joe La Science qui vient faire son quetquet avec ses formules de la mort qui tue...
Ca geht's?
Marsh Posté le 23-10-2002 à 17:22:42
Toucouch a écrit a écrit : Et voilà Joe La Science qui vient faire son quetquet avec ses formules de la mort qui tue... Ca geht's? |
Tout à fait thierry ...
Mais jamais deux sans trois alors me voilà !!!
Sinon j'ai oublié comment on faisait alors ... Mais je vais chercher ça dont mes fichier C ce soir (on sait jamais).
Marsh Posté le 23-10-2002 à 17:31:21
DarkOli a écrit a écrit : Tout à fait thierry ... Mais jamais deux sans trois alors me voilà !!! Sinon j'ai oublié comment on faisait alors ... Mais je vais chercher ça dont mes fichier C ce soir (on sait jamais). |
Excellent! Décidément, ça bosse dur chez les anciens de MT43... N'empêche, quelqu'un peut-il me réexpliquer vite fait comment on calcule un déterminant de matrice > 3x3?
Marsh Posté le 23-10-2002 à 17:34:04
sanglier04 a écrit a écrit : boujour , je dois faire un algo qui calcule l'inverse d'une matrice. pour les matrices carrées c simple mais pour des matrices non carrées je n'y arrive pas. le seul indice que l'on met donné c qu'il ya suivant la matrice soit une inverse a guauche, soit une inverse a droite . jai beau chercher mais je ne trouve pas |
Ben déjà, toute matrice, même carré, n'est pas inversible. Ca depend si les vecteurs formés par les colonnes sont indépendant ou pas.
Sinon, le meilleurs axe de recherche pour trouver de bons algo de calcul d'inverse de matrice, c'est de chercher des algos de recherche opérationnel. Tu devrai trouver ton bonheur la dedans.
Marsh Posté le 23-10-2002 à 17:46:17
ce qui a été dit est correct.
par contre, petite astuce, pour un matrice 3x3 qui effectue une rotation, transposer la matrice donne la matrice inverse de la rotation (valable uniquement dans le cas d'une rotation)
Marsh Posté le 23-10-2002 à 17:48:52
tomlameche a écrit a écrit : Ben déjà, toute matrice, même carré, n'est pas inversible. Ca depend si les vecteurs formés par les colonnes sont indépendant ou pas. Sinon, le meilleurs axe de recherche pour trouver de bons algo de calcul d'inverse de matrice, c'est de chercher des algos de recherche opérationnel. Tu devrai trouver ton bonheur la dedans. |
fo écrire la matrice a inverser et une matrice identité cote a cote, puis ensuite il faut réduire la premiere matrice en une matrice identité, et reporter les opératiosn qu'on fait sur les lignes sur la matrice identité qu'on a écrit a dote de la matrice a inverser.
cela dit, c'est des maths pures ca.
Marsh Posté le 23-10-2002 à 19:00:07
farib a écrit a écrit : fo écrire la matrice a inverser et une matrice identité cote a cote, puis ensuite il faut réduire la premiere matrice en une matrice identité, et reporter les opératiosn qu'on fait sur les lignes sur la matrice identité qu'on a écrit a dote de la matrice a inverser. cela dit, c'est des maths pures ca. |
J utilise ce principe pour les matrices carré mais pour les matrices qui ne le sont pas je suis pas sur que cela fonctionne.
Marsh Posté le 23-10-2002 à 20:09:27
Toucouch a écrit a écrit : Excellent! Décidément, ça bosse dur chez les anciens de MT43... N'empêche, quelqu'un peut-il me réexpliquer vite fait comment on calcule un déterminant de matrice > 3x3? |
Je l'ai noté sur mon poly mais je ne sais plus où il est ce con !!!
En attendant j'ai retrouvé ça (j'ai le même en assembleur ). Par contre ce n'est pas très clair mais c'est une version 'optimisée' et spécifique aux matrices 4x4.
Euh la notation de la matrice est (je crois) :
Code :
|
Code :
|
Marsh Posté le 23-10-2002 à 20:13:01
tu fais marcher ton imagination et tu cherches sur google !
Marsh Posté le 23-10-2002 à 21:08:36
farib a écrit a écrit : tu fais marcher ton imagination et tu cherches sur google ! |
si je poste ici c que jai deja chercher ...
Marsh Posté le 23-10-2002 à 21:16:49
Pour 3x3, y a http://www.geocities.com/SiliconVa [...] ach03.html
Je me souviens très bien de "A^-1 = 1/det(A) * transposée(Comatrice(A))" bien que très ancien, mais suis guère plus capable de l'implémenter .
Marsh Posté le 23-10-2002 à 23:06:23
carbon_14 a écrit a écrit : Pour 3x3, y a http://www.geocities.com/SiliconVa [...] ach03.html Je me souviens très bien de "A^-1 = 1/det(A) * transposée(Comatrice(A))" bien que très ancien, mais suis guère plus capable de l'implémenter . |
merci, mais c tjs pour des matrices carrés, ce qui me pose problème c surtout pour celles qui ne sont pas carrés.
Marsh Posté le 23-10-2002 à 23:27:27
Pas carré => pas inversible.
Ca a deja ete dit ici même.
B est l'inverse de A ssi AB = I et BA = I. Or c'est pas possible avec des matrices pas carrées. Point.
Marsh Posté le 23-10-2002 à 23:32:59
Kristoph a écrit a écrit : Pas carré => pas inversible. Ca a deja ete dit ici même. B est l'inverse de A ssi AB = I et BA = I. Or c'est pas possible avec des matrices pas carrées. Point. |
+1
evidemment qu'une matrice n'est inversible que si elle est carré ! condition NECESSAIRE mais pas suffisante bien sûr...
Marsh Posté le 24-10-2002 à 00:02:42
Est-ce que le produit de deux matrices non carrées donne/peut donner une matrice carrée?
Marsh Posté le 24-10-2002 à 07:28:40
comme je l'ai dit plus haut, il semble que ce ne soit po une inverse complète mais une sorte de demi inverse (jaurai plus de précision vendredi) merci a tout ce qui ont essayer de m'aider.
Marsh Posté le 24-10-2002 à 08:48:10
Ca permettra de savoir quelle est la transformation envisagée. Il doit y avoir un "abus de langage". La vraie inversion ne pouvant QUE concerner des matrices carrées.
Marsh Posté le 24-10-2002 à 08:49:45
Ace17 a écrit a écrit : Est-ce que le produit de deux matrices non carrées donne/peut donner une matrice carrée? |
Pour multiplier A par B il faut que le nombre de colonnes de A soit identiques au nombres de lignes de B.
La matrice obtenue aura autant de lignes que la matrice A et autant de colonne que la matrice B.
Donc avec une matrice A de 7 colonnes et 4 lignes et une matrice B de 4 colonnes et 7 lignes tu obtiens bien une matrice carrée de 4 colonnes et 4 lignes.
Conclusion pour obtenir une matrice carrée avec une multiplication de deux matrices A et B (AxB). Les matrices doivent avoir les mêmes dimensions mais inversées ... (lignes A = colonnes B et colonnes A = lignes B).
Marsh Posté le 24-10-2002 à 09:25:25
Ok , dans ce cas il est possible d'avoir deux matrices non carrées, aux dimensions inversées l'une par rapport a l'autre, dont le produit donne la matrice identité; n'est-ce pas? Pourquoi ne pourrait-on pas dire qu'elles sont inverses l'une de l'autre?
Marsh Posté le 24-10-2002 à 09:40:37
Parceque A est inversible ssi il existe B telle que AB = I et BA = I et ca c'est impossible si A n'est pas carrée. Faut vraiment se repeter ici
Marsh Posté le 24-10-2002 à 10:00:50
Ca y est j'ai compris
En fait on peut trouver B pour que AB = I mais a ce moment la il y n'y a pas forcément BA = I; d'ou les termes d'inverse a droite ou a gauche mentionnés plus haut
Marsh Posté le 24-10-2002 à 10:03:48
Toucouch a écrit a écrit : Et voilà Joe La Science qui vient faire son quetquet avec ses formules de la mort qui tue... Ca geht's? |
Héhé, il faut bien resortir le peu qui me reste.
D'ailleurs, je ne sais vraimentpas pourquoi cette formule est restée alors que tout le reste est parti !
Je peux t'appeller ce soir au tel ?
Marsh Posté le 24-10-2002 à 10:06:59
pour le determinant de la matrice 3*3, je crois que c'et un truc comme ça :
|
Attention, c'est à prendre avec des pincettes comme formule, c'est suuuuuuuper vieux !
Marsh Posté le 24-10-2002 à 10:21:11
pitounet a écrit a écrit : pour le determinant de la matrice 3*3, je crois que c'et un truc comme ça :
|
Sinon tu dois pouvoir retrouver la formule dans mon bout de code (qui fonctionne correctement !!!) mais comme j'avais tout décomposer les calculs à l'époque, il faut faire l'opération inverse
Marsh Posté le 24-10-2002 à 12:15:45
pour le déterminant, revenez a la définition avec les formes p-linéaires alternées
Marsh Posté le 24-10-2002 à 15:18:01
pitounet a écrit a écrit : Héhé, il faut bien resortir le peu qui me reste. D'ailleurs, je ne sais vraimentpas pourquoi cette formule est restée alors que tout le reste est parti ! |
Ben c'était pas ce jour-là que tu suivais le cours?
Citation : |
Caramba! Ce soir c'est notre 5° anniversaire de fiançailles! (Ca fait un peu rétro, mais bon, on est sentimental ou on l'est pas ). Donc ce soir, ch'tit resto sympa, etc. donc cramé...
Mais demain soir c'est avec grand plaisir que j'écouterai de nouveau le son mélodieux et suave de ta jolie voix... (J't'avais dit que j'étais sentimental... )
PS: Oli, t'as une belle voix aussi, hein! Si tu veux appeler aussi...
Marsh Posté le 24-10-2002 à 15:39:39
Soit la matrice
On peut calculer son déterminant par 2 manières:
1)
Sachant que , on en déduit:
det(A)=a*(e*k-j*f)-d*(b*k-j*c)+i*(b*f-e*c)
det(A)=a*e*k+d*j*c+i*b*f-a*j*f-d*b*k-i*e*c
2)On rajoute les deux premières lignes en dessous de la matrice:
On multiplie entre eux les termes des diagonales en rouge, on fait la somme, on obtient M=a*e*k+d*j*c+i*b*f
On fait la même opération pour les diagonales en bleu, on obtient N=i*e*c+a*j*f+d*b*k
On a alors det(A)=M-N=a*e*k+d*j*c+i*b*f-i*e*c-a*j*f-d*b*k
Marsh Posté le 24-10-2002 à 15:43:25
Toucouch a écrit a écrit : Ben c'était pas ce jour-là que tu suivais le cours?
|
Bon anniversaire à tous les deux alors
J'essaye de t'appeler demain soir, sans pb.
Marsh Posté le 24-10-2002 à 16:04:47
Toucouch a écrit a écrit : Ben c'était pas ce jour-là que tu suivais le cours?
|
Sauf que je ne suis pas devin ... (Le numéro de téléphone ???)
Marsh Posté le 24-10-2002 à 16:58:24
bobricard a écrit a écrit : Soit la matrice http://www.ifrance.com/manupap/matrice.jpg On peut calculer son déterminant par 2 manières: 1) http://www.ifrance.com/manupap/formule.jpg Sachant que http://www.ifrance.com/manupap/det.jpg, on en déduit: det(A)=a*(e*k-j*f)-d*(b*k-j*c)+i*(b*f-e*c) det(A)=a*e*k+d*j*c+i*b*f-a*j*f-d*b*k-i*e*c 2)On rajoute les deux premières lignes en dessous de la matrice: http://www.ifrance.com/manupap/astuce.jpg On multiplie entre eux les termes des diagonales en rouge, on fait la somme, on obtient M=a*e*k+d*j*c+i*b*f On fait la même opération pour les diagonales en bleu, on obtient N=i*e*c+a*j*f+d*b*k On a alors det(A)=M-N=a*e*k+d*j*c+i*b*f-i*e*c-a*j*f-d*b*k |
Oui, mais pour une matrice plus grande?
Marsh Posté le 24-10-2002 à 16:59:48
Pitounet > Ca roule! A demain, donc...
Darkoli > Demande à Pitounet...
Marsh Posté le 24-10-2002 à 18:22:49
Toucouch a écrit a écrit : Oui, mais pour une matrice plus grande? |
ce sotn des cours de math qu'il faut chercher
Marsh Posté le 23-10-2002 à 16:11:12
boujour ,
je dois faire un algo qui calcule l'inverse d'une matrice. pour les matrices carrées c simple mais pour des matrices non carrées je n'y arrive pas. le seul indice que l'on met donné c qu'il ya suivant la matrice soit une inverse a guauche, soit une inverse a droite . jai beau chercher mais je ne trouve pas