SCR/AL1 - TOME III. Les librairies utilitaires
Syntax
MAT *M_inv_1(
MAT *m2,
MAT *m1
)
#else
MAT *M_inv_1(m2, m1)
MAT *m2, *m1;
#endif
Description
Invertion d'une matrice m1 carrée nl1 x nc1 par la méthode de balayage. Le résultat est stocké dans m2 carrée nl1 x nc1.
Soit la matrice A(aij); i,j: 1...n.
On calcule :
aii = aii + 1 i := 1...n
P = amm - 1, m := 1...n
amj = amj / P j := 1...n
aij = aij - aim * amj i := 1...n, i <> m
aii = aii - 1 i := 1...n
Pendant tout le calcul, P <> 0, sinon la matrice non invertible par
cette méthode.
Valeur retournée
Si m2 est nul, une matrice de dimension (nl1, nc1) est allouée et retournée (la fonction retourne un pointeur nul et positionne M_errno en cas d'espace mémoire insuffisant). Si m2 n'est pas nul, le résultat y est stocké et m2 est retourné. Les dimensions de m1 et m2 doivent être correctes sans quoi l'inverse calculé , la variable M_errno est positionnée et la fonction retourne un pointeur nul. Si la martice n'est pas inversible, la variable M_errno est positionnée et la fonction retourne un pointeur nul. La matrice source n'est pas modifiée.
Exemple
M_inv_1(m2, m1);
m2 = M_inv_1((MAT*)0, m1)
Voir également
M_free(), M_alloc()
MAT *M_inv_1(MAT *m2, MAT *m1)
MAT *M_inv_2(MAT *m2, MAT *m)
Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be