Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1646 connectés 

  FORUM HardWare.fr
  Programmation

  Determinant d'une matrice[n][n]???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Determinant d'une matrice[n][n]???

n°114073
vendeeman
Posté le 19-03-2002 à 12:25:44  profilanswer
 

C koi l'algo pour calculer le determiant d'une matrice a 2 dimension de taille [n][n]?
C chaud et je trouve pas :sweat:
;)

mood
Publicité
Posté le 19-03-2002 à 12:25:44  profilanswer
 

n°114076
asphro
Posté le 19-03-2002 à 12:36:37  profilanswer
 

essai avec les co-matrice

n°114136
vendeeman
Posté le 19-03-2002 à 14:28:47  profilanswer
 

et c'est koi? :D

n°114143
Cherrytree
cn=?
Posté le 19-03-2002 à 14:35:50  profilanswer
 

Vendeeman a écrit a écrit :

C koi l'algo pour calculer le determiant d'une matrice a 2 dimension de taille [n][n]?
C chaud et je trouve pas :sweat:
;)  




Qu'appelle tu une matrice à 2 dimensions si elle est de taille [n][n]. Pour moi ça veux dire que (n - 2) lignes ou colonnes sont des combaisons linéaires des 2 restantes. J'ai du mal à croire que ce soit ton problème ?!

n°114144
dropsy
et bonne chance surtout...
Posté le 19-03-2002 à 14:37:45  profilanswer
 

je crois que ça veut tout simplement dire une matrice carrée (au vu du post...)

n°114145
Cherrytree
cn=?
Posté le 19-03-2002 à 14:39:03  profilanswer
 

dropsy a écrit a écrit :

je crois que ça veut tout simplement dire une matrice carrée (au vu du post...)  




Oui, je veux bien, mais en math, il faut être précis.

n°114147
dropsy
et bonne chance surtout...
Posté le 19-03-2002 à 14:40:18  profilanswer
 

euh, j'ai un doute :heink: Ca existe le déterminant d'une matrice non carrée :??:  
pffff la prépa c loin :pt1cable:

n°114155
aurel
Fraggueur en liberté
Posté le 19-03-2002 à 14:55:17  profilanswer
 

dropsy a écrit a écrit :

euh, j'ai un doute :heink: Ca existe le déterminant d'une matrice non carrée :??:  
pffff la prépa c loin :pt1cable:  




 
ah ba non ca existe, pas. gtait une burne en math apres le bac, maos qd meme.
pour repondre a la question, j'ai déja vu trainé l'algo quelquepart, mais je saispu ou, mais faut bien chercher et c un truc baleze car il y a plein de recusivité! :)

n°114178
Cherrytree
cn=?
Posté le 19-03-2002 à 15:29:08  profilanswer
 

Bon un déterminant c'est tout con.
if (!matrice_carré(matrice)) {
   print "grosse burne";
}
else {
   return sarrus(matrice);
}
 
où sarrus est la règle de Sarrus. On somme le produit des éléments d'une même diagonale (cyclique) et on soustrait la somme des produits des antidiagonales.

n°114208
aurel
Fraggueur en liberté
Posté le 19-03-2002 à 16:01:30  profilanswer
 

Cherrytree a écrit a écrit :

Bon un déterminant c'est tout con.
if (!matrice_carré(matrice)) {
   print "grosse burne";
}
else {
   return sarrus(matrice);
}
 
où sarrus est la règle de Sarrus. On somme le produit des éléments d'une même diagonale (cyclique) et on soustrait la somme des produits des antidiagonales.  




:lol:
ah ba oui, vu de ce point, c tout con, c sur !!!
Ce qu'il veut Vendeeman, je pense que ce serait le code source de la fonction sarrus(), ou alors si elle est déja implémenté dans le langage ou il veut écrire son algo, ce serait top !!!

mood
Publicité
Posté le 19-03-2002 à 16:01:30  profilanswer
 

n°114212
Cherrytree
cn=?
Posté le 19-03-2002 à 16:07:02  profilanswer
 

Aurel a écrit a écrit :

 
:lol:
ah ba oui, vu de ce point, c tout con, c sur !!!
Ce qu'il veut Vendeeman, je pense que ce serait le code source de la fonction sarrus(), ou alors si elle est déja implémenté dans le langage ou il veut écrire son algo, ce serait top !!!  




Ouais, mais Vendeeman il faut qu'il bosse aussi un peu.

n°114229
aurel
Fraggueur en liberté
Posté le 19-03-2002 à 16:21:29  profilanswer
 

Cherrytree a écrit a écrit :

 
Ouais, mais Vendeeman il faut qu'il bosse aussi un peu.  




bon ba bonne chance Vendeeman, alors... :)

n°114258
Je@nb
Kindly give dime
Posté le 19-03-2002 à 16:50:25  profilanswer
 

En basic sur Ti89 tu fais det([x,y;z,w]) et hop ta le déterminant  :D  :D  :D  :D

n°114271
Giz_
Posté le 19-03-2002 à 17:02:45  profilanswer
 

c pas si dur...
 
au moins pour une 3*3: ....Ex:
 
2 3 4
7 8 9
4 5 6
 
le det de cet matrice est: (2*8*6+3*9*4+7*5*4)-(4*8*4+3*7*6+9*5*2)
A partir de la tu mets des i pour ligne et j pour colonne dans ton algo...mais je suppose que tu veux que ca marche pour tout type de matrice ??
parce que pour une 4*4, ca se complique (moi je me ramène tjs a une 3*3) ...

n°114383
Kyle_Katar​n
Posté le 19-03-2002 à 19:24:38  profilanswer
 

Sarrus ne marche (efficaxcement en tout cas) que dans la cas 3*3

n°114397
Cherrytree
cn=?
Posté le 19-03-2002 à 19:57:37  profilanswer
 

Kyle_Katarn a écrit a écrit :

Sarrus ne marche (efficaxcement en tout cas) que dans la cas 3*3  




Allons bon !

n°114765
vendeeman
Posté le 20-03-2002 à 10:49:00  profilanswer
 

Merci les mecs de vos explications ;)
G tout compris!!!
Bon, resultat: j'y arrive pour une 3*3, et pis au dessus, ben tant pis :D
 
AU fait, c ki Sarrus :??: :D

n°114771
greg113
Posté le 20-03-2002 à 10:54:05  profilanswer
 

Tu codes sous koi comme langage ??? Si tu veux j'ai un algorithme c++ qui utilise de la recurisvité et qui résoud pour n'importe quelle grandeur ;)

n°114777
Cherrytree
cn=?
Posté le 20-03-2002 à 10:56:26  profilanswer
 

Vendeeman a écrit a écrit :

 
AU fait, c ki Sarrus :??: :D  




Un mathématicien ? :D

n°114788
greg113
Posté le 20-03-2002 à 11:04:42  profilanswer
 

bon c'est du c ou pas ??? que tu veux ??

n°114836
vendeeman
Posté le 20-03-2002 à 11:58:05  profilanswer
 

Tu peux me l'envoyer par mail ton algo stp :D
vendeeman@libertysurf.fr
Merci ;)
C pr ce soir que j'en aurais desoin!

n°114838
LeGreg
Posté le 20-03-2002 à 11:58:39  profilanswer
 

j'crois qu'il y avait une methode avec un pivot de gauss
genre tu ramenes ta matrice a une forme diagonale superieure.
 
Tu ne t'autorises que deux operations:
Une soustraction d'une ligne par une ligne d'ordre superieure
multiplie par un facteur reel non nul.
Une permutation de lignes si tu te retrouves avec un zero sur une diagonale et les coefficients de colonne inferieurs. (en n'oubliant pas de multiplier ton determinant par -1).
 
A la fin ca se ramene a calculer le produit des coefficients
sur la diagonale.
 
J'ai pas l'algo detaille en tete mais fais recherche
gauss + determinant
 
A+
LEGREG

n°114842
LeGreg
Posté le 20-03-2002 à 12:03:07  profilanswer
 

bon le probleme de ce calcul c'est qu'il n'est pas deterministe
(contrairement a un calcul systematique avec la formule des determinants
det= somme sur p(sig(p)*produit(a(i,p(i))) )  
 
Mais qui s'en soucie ;).
 
A+
LEGREG

n°114897
greg113
Posté le 20-03-2002 à 13:09:58  profilanswer
 

// Algorithme recursif de calcul du déterminant d'une matrice n*n
 
// tu dois insérer ce code dans une classe car le tableau ne passe pas par
// l'appel de la fonction, ou alors tu fais un tableau global :) beurk
 
 
int det(unsigned i)
{
 int d, s, j ;
   if(i < n-1)
   {
    d=0;
      s=-1;                //utilisé pour l'alternance + - + - + - ...
      for(j=0; j<n; ++j)
      {
       if(V[j])
         {
          s=-s;
            V[j]=false;
            d+=s*M[i][j]*det(i+1);        // appel recursif
            V[j]=true;
         }
      }
   }
   else
   {
    j=0;
      while(!V[j])
       ++j;
      d=M[i][j];
   }
   return d;
}
 
// tu dois déclarer dans le private de ta classe un tableau V de taille n
// int V[n]; n étant le nombre de ligne (=colonne) de ta matrice carré
// dans mon code, ta matrice s'appelle M
// tu dois donc avoir créé une matrice int M[n][n];
// si tu ne sais pas ce que c'est que la recursivité, il est normal que tu ne
// comprennes rien au code précédent :)
// @+

n°114899
greg113
Posté le 20-03-2002 à 13:10:56  profilanswer
 

Arghhhhhhhhhhhh l'indentation ne ressemble à rien :) !!!!!
 
@+ ++

n°114919
LeGreg
Posté le 20-03-2002 à 13:38:34  profilanswer
 

greg113 a écrit a écrit :

// Algorithme recursif de calcul du déterminant d'une matrice n*n




le probleme de ta methode
c'est qu'elle revient en complexite a calculer
le determinant avec la formule du determinant
et qu'elle est tres inefficace.
(nombreuses operations redondantes)
 
la methode de reduction de matrices par Gauss-Jordan,
est plus rapide et est facile a mettre en oeuvre.
(meme si ce n'est pas la plus rapide)
 
LEGREG

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Determinant d'une matrice[n][n]???

 

Sujets relatifs
[c] probleme initialisation matrice[C] Matrice Dynamique URGENT svp ...
[openGL] Que contient une matrice de visualisation-modelisation ?Comment charger et recuperer une image sous forme de matrice ?
[DirectX & 3d en général], question sur une matrice d'échelleMatrice 2D sous TurboC
Open GL multitexturing et la matrice de textures....[ada95] comment afficher une matrice?
[math] projection perspective et matrice projective 
Plus de sujets relatifs à : Determinant d'une matrice[n][n]???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR