Algèbre matricielle
Algèbre matricielle
Transposée d'une matrice
#include <stdio.h>
#define N 3
#define M 2
int main()
{
int i, j;
int A[N][M], T[M][N];
for(i=0; i<N; i++)
{
for(j=0; j<M; j++)
{
T[j][i] = A[i][j];
}
}
}
Trace d'une matrice
#include <stdio.h>
#define N 3
int main()
{
int i, j;
int A[N][N];
int trace;
trace=0;
for(i=0; i<N; i++)
{
trace += A[i][i];
}
}
Somme de deux matrices
#include <stdio.h>
int main()
{
int size, i, j, k;
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX];
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
C[i][j] = 0;
for(k=0; k<size; k++)
{
C[i][j] += A[i][k]*B[k][j];
}
}
}
}
Produit de Hadammard
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
void HadamardMultiply(int *A, int *B)
{
int Res[MAX][MAX];
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
Res[i][j] = *(A+i+j) * (*(B+i+j));
}
}
}
Produit de deux matrices
#include <stdio.h>
int main()
{
int size, i, j, k;
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX];
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
C[i][j] = A[i][j]+B[i][j];
}
}
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
void HadamardMultiply(int *A, int *B)
{
int Res[MAX][MAX];
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
Res[i][j] = *(A+i+j) * (*(B+i+j));
}
}
}
int main()
{
int size, i, j, k;
int A[MAX][MAX], B[MAX][MAX], C[MAX][MAX];
printf("Enter the size of matrix: ");
scanf("%d", &size);
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
printf("A[%d][%d]=", i+1, j+1);
scanf("%f", &A[i][j]);
}
}
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
printf("B[%d][%d]=", i+1, j+1);
scanf("%f", &B[i][j]);
}
}
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
C[i][j] = 0;
for(k=0; k<size; k++)
{
C[i][j] += A[i][k]*B[k][j];
}
}
}
// Pour Fairouze
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
C[i][j] = A[i,:]*B[:,j];
}
}
printf("Matrix C = A*B\n");
for(i=0; i<size; i++)
{
for(j=0; j<size; j++)
{
printf("%d\t", C[i][j]);
}
printf("\n");
}
return 0;
}