begin process at 2012 05 28 10:23:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

calculer l'inverse d'une matrice


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

calculer l'inverse d'une matrice

mardi 17 février 2009 à 14:33:41 | calculer l'inverse d'une matrice

leFeu

SVP, j'ai bessoin de votre aide.
je dois trouver un programme qui calcul l'inverse d'une matrice carré, je l'ai fait avec la méthode des cofacteurs mais c'est très lent. j'ai trouvé ici qlq codes sources sur la méthodes de gauss jordan, mais aucun programme ne fonctionne!!
en plus je connais pas le raisonement derière cette méthode, donc suis obligé a trouver un code déja ecrit.

SVP, aidez moi
mardi 17 février 2009 à 17:07:20 | Re : calculer l'inverse d'une matrice

SebLinck

Scilab

Cordialement,
Sébastien.
mardi 17 février 2009 à 18:08:12 | Re : calculer l'inverse d'une matrice

leFeu

ok, mais moi suis sous windows (j'utilise visual C++), et je pense que cette bibliothèque est destinée a linux.
non?
mardi 17 février 2009 à 21:20:17 | Re : calculer l'inverse d'une matrice

SebLinck

tu dis : "je dois trouver un programme qui calcul l'inverse d'une matrice carré"
Je te donne le nom d'un programme qui permet de calculer l'inverse d'une matrice carré: Scilab.
C'est en aucun cas une librairie, et de plus Scilab fonctionne sous Windows et sous linux.
Tu dis utiliser Visual studio C++ pour programmer...
alors regarde là: [ Lien ]
tu trouveras tous ce qu'il te faut... Et bien plus encore .

Cordialement,
Sébastien.
mardi 17 février 2009 à 22:37:38 | Re : calculer l'inverse d'une matrice

leFeu

Merci infiniment, c'est vraiment le bonheur
mercredi 18 février 2009 à 00:51:13 | Re : calculer l'inverse d'une matrice

leFeu

j'ai beau cherché sur le lien que vous m'avez donné. mais malhereusement la seule librairie qui offre la fonctioninalité d'inverse est newmat, mais elle ne tourna pas sur visual C++. Malgré qu'il donne une documentation assez developpée, mais il me génère tjr des erreurs

en contre partie, je trouve ce code qui calcul l'inverse de gauss jordon

Matrix inverse()
             {
                 if(M!=N) throw "Only Square Matrix can have inverse!";
                   Matrix SI(M,2*M);

                   for(int i=0; i<M;i++)
                   {
                         for(int j=0; j<2*M; j++)
                         {
                               if(j<M)
                               {
                                    SI.data[i*2*M+j] = data[i*M+j];
                               }
                               else
                               {
                                    SI.data[i*2*M+j] = 0;
                               }

                             if(j==i+M) SI.data[i*2*M+j] =1.0;
                         }
                   }


                   for(int ii=0; ii<M-1; ii++)
                   {
                        for(int kk=ii+1; kk < M; kk++)
                        {
                              for(int jj=2*M-1; jj>=ii; jj--)
                              {
                                    SI.data[kk*2*M+jj] -= SI.data[ii*2*M+jj] *
                                                  (SI.data[kk*2*M+ii]/SI.data[ii*2*M+ii]);
                              }
                        }
                   }      
         
                   //-------------------------------------

                 for(int iii=M-1; iii>0; iii--)
                   {
                        for(int kkk=iii-1; kkk >=0; kkk--)
                        {
                              for(int jjj=2*M-1; jjj>=iii; jjj--)
                              {
                                    SI.data[kkk*2*M+jjj] -= SI.data[iii*2*M+jjj] *
                                                  (SI.data[kkk*2*M+iii]/SI.data[iii*2*M+iii]);
                              }
                        }
                   }      

                   for(int iiii=0; iiii<M; iiii++)
                   {
                        for(int jjjj=2*M-1; jjjj >=0; jjjj--)
                        {
                              SI.data[iiii*2*M+jjjj] =SI.data[iiii*2*M+jjjj]/SI.data[iiii*2*M+iiii];                     
                        }
                   }      

                   Matrix I(M,M);
                   for(int s = 0; s<M; s++)
                         for(int r=0; r<M; r++)
                         {
                               I.data[s*M+r] = SI.data[s*2*M+r+M];
                         }
                   return I;
                   //---------------------------------
             }

ce programme tourne, mais il génère pas tjr une solution correcte!
y a t il qlq qui comprend la méthode de gauss et qui peu m'aider?

mercredi 18 février 2009 à 09:48:20 | Re : calculer l'inverse d'une matrice

SebLinck

Comprendre la méthode...
Rgarde du côté de Blitz++ la je pense que tu as toutes les billes...

Cordialement,
Sébastien.


Cette discussion est classée dans : trouver, programme, matrice, calculer, inverse


Répondre à ce message

Sujets en rapport avec ce message

inverser une matrice non carrée [ par civata ] est ce que quelqu'un peut me dire comment on inverse une matrice non carrée ?ou plutot où je pourrais trouver un algo qui le fait, pour les matrices c Comment calculer des données qu'entre lutilisateur dans un programme window... [ par Gulius ] Voila en fait je suis débutant dans la programmation c++ et je créer un petit utilitaire permettant de calculer delta d'une équation de second degré ( inverse de matrice dynamique [ par anaisa ] Aidez nous please c pr programmer en langage Votre texte ICIC l inverse de la matrice dynamique merci bcp !!!!!! Comment trouver les éxecutables? [ par seth7 ] Bonjour,je voulais savoir s'il existe un programme qui permet de donner le nom de la machine et un programme qui recense tous les éxecutables d'une ma opérations matrice /temps exécution prg [ par 0wil0 ] Bonjour, J'effectue dans mon programme des opérations relativement simples sur des matrices (additions, soustractions, moyenne des éléments de matrice Trouver <mysql.h> [ par lolo007 ] Bonjour a tousDans le cadre d'un projet, je dois réaliser la lecture dans un automate grâce à un serveur OPC puis, ce que j'ai lue, je dois le mettre matrice inverse [ par vladisback ] bonjour, j'utilise pour mes transformation des matrices 4x3: Xx Yx Zx Tx Xy Yy Zy Ty Xz Yz Zz Tz (Identique au matrice directX excepté une quatrieme Calculatrice Inverse Polonaise [ par Tosem ] Bonjour,Je dois réaliser une calculatrice de ce genre. Est-ce que qqun pourrait me fournir un ou des liens de site où je pourrais trouver des sources [Visual C++] Impossible de trouver ou d'ouvrir un fichier DBG requis [ par VHSeifer ] SalutPartout sur le net ou je cherche la réponse, je ne vois que des posts sans réponse. J'espère que ici qq'un connait une solution :Il m'est impossi trouver ou est installer un programme(vc++) [ par goth ] je voulais juste savoir si il y avait un autre moyen de trouver le repertoire d'installation d'un programme (genre winamp par exemple) que de le reche


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales