Voila une librairie de matrices.
Les fonctions ci-dessous sont programmes :
- creation
- suppression
- initialisation (une nombre, ou par plusieurs a la fois)
- copie
- transposee
- affichage (dans un fichier, voir meme stdout)
- addition
- soustraction
- combinaison lineaire
- multiplication
- pivot de Gauss
- pseudo-inverse (resolution A.X=B, avec minimisation des residus)
- echanger des matrices
- distance carree, et distance (seulement pour des matrices vercteurs)
- remplissage par un nombre
voila c'est un peu pres tout
Je voudrait rajouter qqchose : il y a avec les matrices des utilitaires de debugage satisfaisant pour les matrcies. (par exemple matrice non liberee, matrice non initialisee, ....)
Voila, si ca peut vous etre util.
Dans le main il y a juste un exemple de resolution d'un systeme, masi les autre fonctions sont dans matrix.h
Source / Exemple :
#ifndef _UTIL_H_
#include "util.h"
#endif // _UTIL_H_
#ifndef _MATRIX_H_
#include "matrix.h"
#endif // _MATRIX_H_
#include <conio.h>
int main(int argc,char **argv)
{
InitializationLibUtil();
InitializationLibMatrix();
if(TRUE)
{
P_MATRIX A,B,X;
A = NewMatrix(2,3);
B = NewMatrix(1,3);
SetItemsMatrix(A,6,
5.,-6.,
2.,3.,
1.,-4.
);
SetItemsMatrix(B,3,
7.,
5.,
2.
);
printf("Resoudre le systeme A.X=B en donnant la solution la plus probable\n");
PrintMatrix(stdout,"A = \n",A);
PrintMatrix(stdout,"B = \n",B);
printf("Resolution du systeme avec la pseudo-inverse ...\n");
if(NULL != (X = ResolveAX_B(A,B)))
{
PrintMatrix(stdout,"X = \n",X);
DeleteMatrix(X);
}
else
{
printf("Pas de solution !\n");
}
DeleteMatrix(A);
DeleteMatrix(B);
}
CloseLibMatrix();
CloseLibUtil();
CheckingClosingLibMatrix();
CheckingClosingLibUtil();
getch();
return 0;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.