CALCUL DE L'INVERSE D'UNE MATRICE

samurai_2k5 Messages postés 3 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 24 septembre 2005 - 24 sept. 2005 à 14:42
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 11 nov. 2005 à 09:59
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/19541-calcul-de-l-inverse-d-une-matrice

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
11 nov. 2005 à 09:59
Ca fait longtemps que j'ai fait ca, et il parait que c'est une mauvaise méthode
chatplusplus Messages postés 1 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 5 novembre 2005
5 nov. 2005 à 03:46
Merci pour ton code! Je l'ai utilisé pour implémenter la caméra embarquée d'un hélicoptère en openGL. À part les vecteurs dans lesquels j'ai un peu dû remettre le nez, everything worked fine! Merci encore...
samurai_2k5 Messages postés 3 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 24 septembre 2005
24 sept. 2005 à 14:42
salut , voici un petit programme en C , pour effectuer le test de Chi2 :

1- generer un fichier de nombres aleatoires :

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int main()
{
int N, i;
int rand();
FILE *sortie;


printf("Veuillez saisir la valeur de N");
scanf("%d",&N);

sortie= fopen("fichier_aleatoire", "w");

srand(time(0));
for (i=1; i<N+1; i++)
{
fprintf(sortie, "%f \n",(float) rand()/RAND_MAX);
}
return 0;
}

Effectuer le test :

/******************** TEST DE CHi2 : 1D ********************/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/****** Fonction principale *******************************/
int main()
{
/*Declaration de fonctions*/
int* decomptage( int );
int tester(float,float);
/*Declaration de variables*/
int i, N=0, S, *p;
float Y=0, k,chi;

/*Saisie de S*/
printf("Veuillez saisir la valeur de S");
scanf("%d",&S);
printf("Veuillez saisir la valeur qui correspond a %d dans la table",S-1);
scanf("%f",&chi);
p=decomptage(S);
for (i=0;i<S;i++)
{
N=*(p+i)+N;

}
float n=(float)N; float s=(float)S;
for (i=0;i<S;i++)
{
k=(float)*(p+i);
Y= Y+(k-n/s)*(k-n/s);
}
Y=Y*(s/n);
printf("%f \n ", Y);
tester(Y,chi);

return 0;
}
/*************************/
/* Fonction de decomptage*/
/*************************/
int* decomptage(int S)
{
int a,*p,i;
FILE *sortie;
float x;
/* allocation dynamique du pointeur p*/
p=(int*)malloc(S*sizeof(int));
for (i=0;i<S;i++)
{
*(p+i)=0;
}
/*Lecture du fichier*/
sortie= fopen("fichier_aleatoire", "r");
while(fscanf(sortie, "%f",&x)!=EOF)
{

a=x*S;

*(p+a)=*(p+a)+1;/* ou encore p[a]++ */
}
for (i=0;i<S;i++)
{
printf("%d \n ", *(p+i));

}

return p;
}
/*********************************/
/****** fonction tester **********/
int tester(float d,float h)
{
if ( d<h)
{printf("accepter \n");
return 1;
}
else
{printf(" refuser \n");
return 0;
}
}
Rejoignez-nous