Révision 562
Ajouté par Ramazan CELIK il y a presque 3 ans
branch/CELIK/sp4a3/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
Ensemble des fonctions implantées et passe les tests unitaires
Début des itérations du filtre Kalman