Determinant matriciel

Ash -  
 Alter Ego -
je souhaite faire un programme qui calcul le déterminant
matriciel à l'ordre n sur c++..........mais j'y arrive pas !!!

mon probleme se situe au niveau de c++ !!!! si il y a
quelqu'un qui peut m'aider ce serait sympas.

voici un exemple de programme qui calcul seulement le déterminant a l'ordre inférieure a 10..........mais il y a un probleme au niveau du programme principal!!

si quelqu'un peut m'aider se serait sympas et les nouvelles idées sont les biens venues!!!

merci
ASh

/****liste des fichiers d'entete****/

#include<iostream.h>
#include<iomanip.h>
#include<iso646.h>
#include<fstream.h>
#include<math.h>

/****déclarations globales****/

//sous programme 1
/*Cette fonction nous est utile dans le calcul du determinant, elle supprime dans
la matrice ma les lignes l et c puis enregistre les resultats dans mb*/

void det_aux(float ma[10][10],float mb[10][10],int l,int c)
{
int i,j,d,e=0;

for(i=0;i<10;i++)
{
d=0;
if(i!=l)
{
for(j=0;j<10;j++)
if(j!=c)
{
mb[e][d]=ma[j];
d++;
}
e++;
}
}
}

//sous programme 2
/*Cette fonction teste si un entier est multiple de 2,
cette fonction nous sert dans le calcul du determinant*/

float expo(int n)
{
if(!(n%2)){return (1);}
return (-1);
}

//sous programme 3
/* Cette fonction calcul le determinant d'une matrice de maniere recursive*/

float determinant(float m[10][10],int l)
{
int i;
float m2[10][10],x=0;

if(l==1){return (m[0][0]);}

for(i=0;i<l;i++)
{
det_aux(m,m2,i,0);
x=x+(expo(i)*m[0]*determinant(m2,(l-1)));
}

return (x);
}

//programme principal

void main(void)
{
float mat[10][10],i,j,det;
int ligne;

for(i=0; i<10; i++)
{
for(j=0; j<10; j++)

{
det = determinant(mat[10][10],ligne);
cout<<"det=";
}
}

}

4 réponses

  1. Pitu Messages postés 1460 Statut Contributeur 125
     
    Salut Ash.

    Je ne suis pas sûr, mais peut-être que ta définition en "float" est un peu juste pour ce calcul (au delà de 10).

    a+

     
       (:•Þ  Pitu
    0
    1. ash
       
      salut pitu
      merci pur ton message, mais g pas bien bien compris ce ke tu ma dis a propos du float..un peu juste comment please..
      Effectivment le problem il vient du float mais j'arrive pas a le résoudre..t'en pense koi du programme?
      Voila...a bientot pitu
      ash
      0
  2. ash
     
    salut pitu
    merci pur ton message, mais g pas bien bien compris ce ke tu ma dis a propos du float..un peu juste comment please..
    Effectivment le problem il vient du float mais j'arrive pas a le résoudre..t'en pense koi du programme?
    Voila...a bientot pitu
    ash
    0
  3. Pitu Messages postés 1460 Statut Contributeur 125
     
    Les calculs effectués doivent dépasser le cadre des nombres pouvant être décrits en float.
    Je ne me souviens plus exactement, mais par exemple, la valeur maximale pouvant être stockée dans une variable définie en tant qu'entier est 32768.
    Si tu essayes d'y stocker une valeur plus grande, ça plante, ou bien ton résultat est faut ...
    Et là, c'est pas avec des entiers que tu travailes, mais avec une variable définie en float. Et pour ce genre de variables, il y a une limite également.
    Pour savoir laquelle et avoir plus de précisions, je te renvoie aux bouquins. Là, j'arrive à la limite de mes souvenirs ...
    Sinon, pour ce qui est du programme, je n'ai pas pris le temps de le regarder de près, mais je te fais confiance ;o)

     
       (:•Þ  Pitu
    0
  4. Alter Ego
     
    Le calcul matriciel me facine toujours bien que j'aies terminé mes études depuis fort longtemps.

    Maintenant, je prends plaisir à programmer le calcul matriciel non pas à l'aide de logiciels de haute gamme, mais bien à partir de ce qu'il y a de plus basic: QuickBASIC. Récemment, j'ai programmé pour résoudre une matrice avec nombres réels et imaginaires et le déterminant bien sûr.

    Pour plus de détails, ce serait sympa de votre part, visiter

    http://www3.sympatico.ca/nova.celesta/

    et de me communiquer vos impressions.

    Merci de votre visite.
    0
    1. Alter Ego
       
      Je viens de mettre à jour ma page WEB :

      http://www3.sympatico.ca/nova.celesta/

      J'ai ajouté des images des principales fonctions du programme avec une cooredtion du texte !

      merci de votre visite
      0
    2. Alter Ego
       
      Test
      0