Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - TOME III. Les librairies utilitaires

8. Le groupe s_mat

8.12 M_inv_1 (file s_mainv.c:41)

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()

8.12.1 File s_mainv.c

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