Projet

Général

Profil

« Précédent | Suivant » 

Révision 562

Ajouté par Ramazan CELIK il y a presque 3 ans

Ensemble des fonctions implantées et passe les tests unitaires
Début des itérations du filtre Kalman

Voir les différences:

sp4a3_kalman.c
void Add_Mat_Mat(int na, int ma, double A[na][ma], int nb, int mb, double B[nb][mb], double R[na][ma])
{
int i,j; /* indice i et j permettant de parcourir les matrices A et B */
int i, j; /* indice i et j permettant de parcourir les matrices A et B */
for(i=0; i<na; i++)
{
for (j=0; j<ma; j++)
......
B[0][1] = -A[0][1]*det;
B[1][0] = -A[1][0]*det;
printf("\n%.6f %.6f\n%.6f %.6f\n", B[0][0], B[0][1], B[1][0], B[1][1]); /* permet de verifier la fonction de la matrice inverse */
//printf("\n%.6f %.6f\n%.6f %.6f\n", B[0][0], B[0][1], B[1][0], B[1][1]); /* permet de verifier la fonction de la matrice inverse */
}
void Transpose_Mat(int n,int m,double A[n][m],double R[m][n])
void Transpose_Mat(int n, int m, double A[n][m], double R[m][n])
{
int i,j;
int i, j;
for (i=0;i<n;i++)
for (j=0;j<m;j++)
R[j][i]=A[i][j]; /* les lignes deviennent des colonnes et les colonnes deviennent des lignes */
}
void Sub_Mat_Mat(int na,int ma,double A[na][ma],int nb,int mb,double B[nb][mb], double R[na][ma])
void Sub_Mat_Mat(int na, int ma, double A[na][ma], int nb,int mb, double B[nb][mb], double R[na][ma])
{
int i, j; /* indice i et j permettant de parcourir les matrices A et B */
for (i=0; i<na; i++)
{
for (j=0; j<ma; j++)
{
R[i][j] = A[i][j] - B[i][j]; /* la soustraction entre la matrice A et B est stocke dans R */
}
}
}
void Mul_Mat_Mat(int na,int ma,double A[na][ma], int nb,int mb,double B[nb][mb], double R[na][mb])
void Mul_Mat_Mat(int na, int ma, double A[na][ma], int nb, int mb, double B[nb][mb], double R[na][mb])
{
int i, j, k; /* indice k permet de manipuler la colonne de la matrice A avec les lignes de la matrice B */
for (i=0; i<na; i++)
{
for (j=0; j<mb; j++) /* parcourt les lignes de la matrice A et les colonnes de la matrice B */
{
R[i][j]=0; /* initialisation de la matrice R */
for (k=0; k<ma; k++)
{
R[i][j]+=A[i][k]*B[k][j]; /* somme des produits de la matrice A et B */
}
//printf ("%lf", R[i][j]);
}
//printf ("\n");
}
}
void tests_unitaires(void){
//Matrices d'entrée
double T21a[2][1]={{7},{-5}};

Formats disponibles : Unified diff