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és8Date d'inscriptionjeudi 15 mars 2012StatutMembreDerniè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és221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 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és1Date d'inscriptionmercredi 7 juin 2006StatutMembreDernière intervention10 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és221Date d'inscriptionvendredi 30 novembre 2001StatutMembreDernière intervention13 février 20105 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és3Date d'inscriptionvendredi 13 janvier 2006StatutMembreDerniè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és69Date d'inscriptiondimanche 16 mars 2003StatutMembreDernière intervention14 mars 20152 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és4Date d'inscriptiondimanche 4 février 2007StatutMembreDerniè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és3Date d'inscriptionmercredi 27 décembre 2006StatutMembreDernière intervention29 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és1Date d'inscriptionmardi 27 mai 2003StatutMembreDerniè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és23Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention30 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 !"
30 déc. 2013 à 15:41
Merci pour ce partage, je gagne des heures/jours/semaines de programmation et de tests.
4 avril 2012 à 11:57
Marche très bien pour les grandes matrices (testé avec 840*840)
3 août 2011 à 20:01
10 mai 2011 à 14:09
6 déc. 2009 à 01:20
B = InverseMatrice(A)
Tous les coefficients de la matrice inverse peuvent ensuite être récupérés dans B :
debug.print B(i,j)
5 nov. 2009 à 16:03
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!
10 févr. 2008 à 23:29
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.
4 févr. 2007 à 22:26
29 déc. 2006 à 14:32
Si l'un d'entre-vous pouvait me filer un coup de main il sera le bien venu.
Merci d'avance.
4 mai 2005 à 13:16
very usefull ;)
++
29 avril 2005 à 16:33
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
23 avril 2005 à 18:13
25 nov. 2004 à 02:29
29 sept. 2004 à 17:46
Ca sert à + d'un !