Fonctions d`algèbre linéaire - The IC Home Page is in:ic.epfl.ch

Fonctions d'algèbre linéaire
Nous allons définir une matrice comme un tableau de tableaux de double:
vector< vector<double> > M;
et écrire des fonctions qui permettent de manipuler des matrices, par exemple:
une fonction qui crée une matrice nulle;
une fonction qui crée une matrice Identité;
une fonction qui permet d'additionner deux matrices;
une fonction qui permet de multiplier deux matrices;
...
En-tête des fonctions
Quel est l'en-tête de la fonction qui crée une matrice nulle, dont la taille sera passée
en paramètre ?
vector< vector<double> > mat0(int nl, int nc)
Quel est l'en-tête de la fonction qui crée une matrice Identité, dont la taille sera
passée en paramètre ?
vector< vector<double> > mat_Id(int n)
(une matrice Identité est forcément carrée, on a besoin que du nombre de lignes ou du
nombre de colonnes)
Quel est l'en-tête de la fonction qui prend deux matrices en paramètre, et retourne
leur somme ?
vector< vector<double> > add_mat(vector< vector<double> > & M1,
vector< vector<double> > & M2)
typedef
Pour éviter de répéter vector< vector<double> > quand on doit définir le
type d'une matrice, on peut utiliser le mot-clé typedef:
typedef type type_synonyme;
Dans notre cas:
typedef vector< vector<double> > Matrice;
on peut alors écrire les en-têtes précédents:
Matrice mat0(int nl, int nc)
Matrice mat_Id(int n)
Matrice add_mat(Matrice & M1, Matrice & M2)
Fonction mat0
La fonction mat0 sera codée de la façon suivante:
Matrice mat0(int nl, int nc)
{
Matrice R(nl);
for(int i(0); i < nl; ++i) {
R[i] = vector<double>(nc);
for(int j(0); j < nc; ++j) {
R[i][j] = 0.0;
}
}
return R;
}
Cette fonction pourra être utilisée de la façon suivante:
Matrice A = mat0(3, 2);
A
0 0
0 0
0 0
1 / 15 100%

Fonctions d`algèbre linéaire - The IC Home Page is in:ic.epfl.ch

La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !