Algorithme de gauss et decomposition LU

Signaler
Messages postés
1
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
8 avril 2003
-
Messages postés
1
Date d'inscription
dimanche 29 novembre 2009
Statut
Membre
Dernière intervention
29 novembre 2009
-
bonjour a tous.
je voudrai avoir des algorithmes ,ecrits en borland pascal,suivants:
methode de gauss ordinaire pour la resolution d'un systeme .
la decomposition LU
A voir également:

4 réponses

Messages postés
68
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2007

Messages postés
8
Date d'inscription
mercredi 23 mai 2007
Statut
Membre
Dernière intervention
5 janvier 2012

bonjour!!

voilà, j'ai ecrit la decomposition  LU  (en C) sans les pointeurs et ça marche, quand je le fais les pointeurs ça ne marche plus (il faut aussi dire que je m'embrouille avec les pointers) mais j'arrive a faire la resolution de Gauss qui marche sans probleme.  Alors j'aimerai juste un petit coup demain de votre part à tous.........
Messages postés
1
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
11 juillet 2008

Bonjour,
voici un algorithme de decomposition LU ecrit en C avec les pointeur et retournant si la matrice carre d'entree est singuliere ou pas
j'espere que ca sera utile :)

int LU_Decomp(double *A, int dim, double **LU )
{
  int singular=0;
  int i,j,k;
  double pivot,cumul,TINY=1.0e-40;
  int size=dim*dim;
  *LU=(double*)malloc(sizeof(double)*size);
  for(j=0;j<dim;j++)
    {
      for(i=0;i<=j;i++)
    {
      cumul=Get_Element(A,dim,i,j);
      for(k=0;k<i;k++)
        cumul-=(Get_Element(*LU,dim,i,k)*Get_Element(*LU, dim, k,j));
      
      Set_Element(*LU, dim,i,j,cumul);
    }
 
     if(Get_Element(*LU,dim, j,j)==0)
    {
      Set_Element(*LU,dim, j,j,TINY);
      singular=1;
    }

     pivot=Get_Element(*LU,dim,j,j);
     for(i=j+1;i<dim;i++)
    {
      cumul=Get_Element(A,dim,i,j);
      for(k=0;k<j;k++)
        cumul-=(Get_Element(*LU,dim,i,k)*Get_Element(*LU, dim, k,j));
      
      cumul=cumul/pivot;
      Set_Element(*LU,dim,i,j,cumul);
      
    }
    }
  return  singular;
}


Aspirez toujours a meileur pour ateindre ses buts :-)
Messages postés
1
Date d'inscription
dimanche 29 novembre 2009
Statut
Membre
Dernière intervention
29 novembre 2009

tu as ce site qui t'explique l'algo:
http://www.math-linux.com/spip.php?article37