INVERSION DE MATRICES

dhatov Messages postés 2 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 29 septembre 2004 - 29 sept. 2004 à 17:46
 jll13 - 30 déc. 2013 à 15:41
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23266-inversion-de-matrices

Je n'avais pas envie de (re)créer un truc dont j'étais certain qu'il avait été fait quelque part. J'ai pioché ce morceau de code, je viens de le tester (même si je n'ai pas encore tout débroussaillé), et ça marche au top.

Merci pour ce partage, je gagne des heures/jours/semaines de programmation et de tests.
Actaric Messages postés 8 Date d'inscription jeudi 15 mars 2012 Statut Membre Dernière intervention 9 décembre 2013
4 avril 2012 à 11:57
Merci !!

Marche très bien pour les grandes matrices (testé avec 840*840)
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
3 août 2011 à 20:01
sympa ton commentaire Marco_stock ! Je ne fréquente plus ce site, mais j'y passe quand même une fois tous les deux ans... :-S
marco_stock Messages postés 1 Date d'inscription mercredi 7 juin 2006 Statut Membre Dernière intervention 10 mai 2011
10 mai 2011 à 14:09
Superbe !!! Je ne sais pas si le créateur fréquente encore le forum, mais à tous ceux qui souhaitent l'utiliser, n'hésitez pas !!!
Vb Lover Messages postés 221 Date d'inscription vendredi 30 novembre 2001 Statut Membre Dernière intervention 13 février 2010 5
6 déc. 2009 à 01:20
la fonction n'affiche rien, en effet. Il suffit simplement de déclarer 2 tableaux, disons A et B, n'importe où dans le code, définir les valeurs de A, puis appeler la fonction :
B = InverseMatrice(A)
Tous les coefficients de la matrice inverse peuvent ensuite être récupérés dans B :
debug.print B(i,j)
batou7 Messages postés 3 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 5 novembre 2009
5 nov. 2009 à 16:03
Bonjour,

Où doit-on positionner le debug.print Minv(i,j) dans la fonction pour pouvoir exploiter la matrice inversée?

Je fais appel à cette fonction à l'intérieur d'une macro et je n'arrive pas à récupérer les coefficients de la matrice inverse.
Également cette fonction ne m'affiche rien dans excel.

D'avance merci!
cs_Maritime Messages postés 69 Date d'inscription dimanche 16 mars 2003 Statut Membre Dernière intervention 14 mars 2015 2
10 févr. 2008 à 23:29
Bonjour,
Cette question peut paraitre bête, mais je la pose quand même !
En appelant la fonction InverseMatrice(Matrice()) Je ne reçois rien en retour.
mais en faisant un debug.print Minv(i,j)a l'intérieur de la fonction, ça marche.
Merci.
soumydjem Messages postés 4 Date d'inscription dimanche 4 février 2007 Statut Membre Dernière intervention 6 février 2007
4 févr. 2007 à 22:26
es-que vous pouvez lz traduire en langage C j'en ai vraiment besoin de sa
lepongiste Messages postés 3 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 29 décembre 2006
29 déc. 2006 à 14:32
Je dois réaliser un programme sous VB permettant toutes les opérations classiques avec les matrices, à savoir, somme, produit, calcul du déterminant, calcul de l'inverse ... Mais ce n'est pas tant l'aspect mathématique et pseudo-code qui me gène mais plutôt la création de l'interface. Je ne suis pas un crac en programmation et je ne sais pas comment créer une matrice l lignes et c collonnes qui soit vierge et à remplir par l'utilisateur, ni comment l'utiliser dans le programme.
Si l'un d'entre-vous pouvait me filer un coup de main il sera le bien venu.

Merci d'avance.
fvcpp Messages postés 1 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 4 mai 2005
4 mai 2005 à 13:16
merci VB Lover pour le code :) et Gabriel pour la modif, ca marche nickel chrome pile poil.. enfin tout ca quoi :p
very usefull ;)
++
gabrielgarcin Messages postés 23 Date d'inscription mardi 29 juillet 2003 Statut Membre Dernière intervention 30 novembre 2011
29 avril 2005 à 16:33
Bonjour.

J'ai utilisée cette source pour résoudre un système linéaire de n équations à n inconnues.
ça marche trés bien.
Mais la précision peut laisser à désirer si les éléments de la diagonale sont d'un ordre de grandeur nettement inférieur aux autres.
Celà provient certainement du fait que l'on utilise le premier pivot non nul et non le pivot maximum.

Je propose donc l'amélioration suivante :

Remplacer
____________________________________________
' trouve le pivot (1er élément <> 0)
j = i
While M(j, i) = 0
j = j + 1
If j > n Then MsgErrBox "La matrice n'est pas inversible !"
Wend
____________________________________________

Par

____________________________________________
' trouve le pivot maximum
j = i
Max = 0
For k = j To n
If Abs(m(k, i)) > Max Then
jmax = k
Max = Abs(m(k, i))
End If
Next k
If Max = 0 Then MsgErrBox "La matrice n'est pas inversible !"

j = jmax
____________________________________________

Gabriel GARCIN
ehectsamira Messages postés 14 Date d'inscription mardi 8 février 2005 Statut Membre Dernière intervention 11 janvier 2008
23 avril 2005 à 18:13
merci
hopallo Messages postés 1 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 25 novembre 2004
25 nov. 2004 à 02:29
dhatov Messages postés 2 Date d'inscription vendredi 13 février 2004 Statut Membre Dernière intervention 29 septembre 2004
29 sept. 2004 à 17:46
Merci pour ton zèle, VB Lover !
Ca sert à + d'un !
Rejoignez-nous