### 6.54.5 Norme : `COND cond`

`COND` ou `cond` a a deux arguments : une matrice `A` inversible et `1` ou `2` ou `inf` et par défaut `1`.
`COND` renvoie le nombre de condition de cette matrice `A` c’est à dire :
||| A|| *||| A−1||| où ||| ||| désigne la norme triple d’une matrice inversible qui est subordonnée à l1 (resp l2 ou l∞) si il n’y a pas de second argument ou si le second argument est `1` (resp `2` ou `inf`) On a donc :
`COND(A)` ou `cond(A)` ou `cond(A,1)` renvoie le nombre de condition de `A` pour la norme l1,
`COND(A,2)` ou `cond(A,2)` renvoie le nombre de condition de `A` pour la norme l2.
`COND(A,inf)` ou `cond(A,inf)` renvoie le nombre de condition de `A` pour la norme l∞.

- La norme triple de la matrice `A` subordonnée à l1 est `colnorm` qui est :
  `max(sum(abs(A[j,k]),j=0..size(A)-1)$(k=0..size(A)-1))` i.e. le maximum des sommes des valeurs absolues des éléments situés sur les colonnes de la matrice.
  `COND(A)` ou `cond(A)` ou `cond(A,1)` renvoie donc :
  `colnorm(A)*colnorm(inv(A))`.
- La norme triple de la matrice `A` subordonnée à l2 est `max(SVL(A))` :
  c’est la plus grande valeur singulière de `A` i.e la plus grande valeur de la racine carrée des valeurs propres de `A*trn(A)`.
  `COND(A,2)` ou `cond(A,2)` renvoie donc :
  `max(SVL(A))*max(SVL(inv(A)))`
- La norme triple de la matrice `A` subordonnée à l∞ est `rownorm` qui est :
  `max(sum(abs(A[j,k]),k=0..size(A)-1)$(j=0..size(A)-1))` i.e. le maximum des sommes des valeurs absolues des éléments situés sur les lignes de la matrice.
  `COND(A,inf)` ou `cond(A,inf)` renvoie donc :
  `rownorm(A)*rownorm(inv(A))`.

On tape :

`COND([[1,2,3],[3,-9,6],[4,5,6]])`

On obtient :

`27.8518518519`

En effet, si `B:=[[1,2,3],[3,-9,6],[4,5,6]]` on tape :
`colnorm(B),colnorm(inv(B)),colnorm(B)*colnorm(inv(B))`
On obtient :
`16,47/27,752/27` et 752/27≃27.8518518519
On tape :

`COND([[1,2,3],[3,-9,6],[4,5,6]],2)`

On obtient :

`14.807741389`

En effet, si `B:=[[1,2,3],[3,-9,6],[4,5,6]]` on tape :
`max(SVL(B)),max(SVL(inv(B))),max(SVL(B))*max(SVL(inv(B)))`
On obtient :
`11.2449175989,1.31683858585,14.807741389`
On tape :

`COND([[1,2,3],[3,-9,6],[4,5,6]],inf)`

On obtient :

`28`

En effet, si `B:=[[1,2,3],[3,-9,6],[4,5,6]]` on tape :
`rownorm(B),rownorm(inv(B)),rownorm(B)*rownorm(inv(B))`
On obtient :
`18,14/9,28`