High-Tech
Santé-Médecine
Droit-Finances
CodeS-SourceS
Inscription
Plan
Connexion
Rechercher un code, un tuto, une réponse
Accueil
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Tous les langages
Delphi / Pascal
Java
Python
SQL
RegEx
Flash
ASM
IRC
Graphisme
PDA
ColdFusion
Foxpro
Flex
Visual Basic / VB.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
PHP
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C/C++/C++.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Javascript
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C#/.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
ASP/ASP.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Accueil
Connexion
Déposer un code
Code
Recherche
Haut
Forum
Commentaires sur une source
Sujet Précédent
Sujet Suivant
CALCUL DE DETERMINANT D'UNE MATRICE
le_duche
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009
- 21 févr. 2006 à 19:12
souidina
Messages postés
4
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
17 juillet 2008
-
15 juil. 2008 à 13:57
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/36153-calcul-de-determinant-d-une-matrice
souidina
Messages postés
4
Date d'inscription
lundi 12 mars 2007
Statut
Membre
Dernière intervention
17 juillet 2008
15 juil. 2008 à 13:57
merci le code a bien marché
le_duche
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009
21 févr. 2006 à 19:14
C'est issu de ma source sur les matrices qui est sur ce site
le_duche
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009
21 févr. 2006 à 19:12
essaye plutot ceci:
double MatriceCarree::det()
{
MatriceCarree a(*this);
double prod = 1.0;
for(int i=0;i<nbrL;i++)
{
int max = i;
for(int j=i+1;j<nbrL;j++)
if(fabs(a.p[j*nbrC+i]) > fabs(a.p[max*nbrC+i]))
max = j;
if(fabs(a.p[max*nbrC+i]) < epsilon)
return 0.0;
if(i != max)
prod *= -1;
for(int k=i;k<nbrC;k++)
swap(a.p[i*nbrC+k],a.p[max*nbrC+k]);
for(int j=i+1;j<nbrL;j++)
{
double coef = a.p[j*nbrC+i]/a.p[i*nbrC+i];
for(int k=nbrC-1;k>=i;k--)
a.p[j*nbrC+k] -= coef*a.p[i*nbrC+k];
}
}
for(int i=0;i<nbrL;i++)
prod *= a.p[i*nbrC+i];
if(fabs(prod) < epsilon)
return 0.0;
else
return prod;
}
Votre réponse
Discussions similaires
[C++][Matrice] création d'une matrice
psychospire
-
8 nov. 2006 à 11:27
LA_Tupac
-
31 déc. 2011 à 17:50
définir une Matrice en C
Ashretor
-
13 nov. 2009 à 10:25
Ashretor
-
13 nov. 2009 à 15:29
rang d'une matrice
souidina
-
17 juil. 2008 à 11:27
NairodDorian
-
21 août 2008 à 11:52
matrice carréé
justeroland
-
30 déc. 2002 à 11:40
justeroland
-
30 déc. 2002 à 11:40
COMMENT CALCULER LE VOLUME DE MORTIER POUR MONTER UN MUR EN PARPAINGS
STEPH1966
-
22 juil. 2010 à 17:31
STEPH1966
-
25 juil. 2010 à 19:07
Rejoignez-nous
A voir également
Matrice symetrique
Création matrice en c++
Parcourir une matrice python
Comment calculer matrice et clavier
Matrice de rotation
15 juil. 2008 à 13:57
21 févr. 2006 à 19:14
21 févr. 2006 à 19:12
double MatriceCarree::det()
{
MatriceCarree a(*this);
double prod = 1.0;
for(int i=0;i<nbrL;i++)
{
int max = i;
for(int j=i+1;j<nbrL;j++)
if(fabs(a.p[j*nbrC+i]) > fabs(a.p[max*nbrC+i]))
max = j;
if(fabs(a.p[max*nbrC+i]) < epsilon)
return 0.0;
if(i != max)
prod *= -1;
for(int k=i;k<nbrC;k++)
swap(a.p[i*nbrC+k],a.p[max*nbrC+k]);
for(int j=i+1;j<nbrL;j++)
{
double coef = a.p[j*nbrC+i]/a.p[i*nbrC+i];
for(int k=nbrC-1;k>=i;k--)
a.p[j*nbrC+k] -= coef*a.p[i*nbrC+k];
}
}
for(int i=0;i<nbrL;i++)
prod *= a.p[i*nbrC+i];
if(fabs(prod) < epsilon)
return 0.0;
else
return prod;
}