Skip to content

Instantly share code, notes, and snippets.

@spyl94
Last active December 14, 2015 03:19
Show Gist options
  • Save spyl94/5019919 to your computer and use it in GitHub Desktop.
Save spyl94/5019919 to your computer and use it in GitHub Desktop.
Fiche de révision d'Algorithmique numérique

Les deux grandes classes d’algorithmes numériques

Algorithmes discrets

Formule symbolique issue de la modélisation Résultat obtenu en un nombre fini d’étapes Complexité connue, temps de calcul prévisibles Exemple : pivot de Gauss (équations linéaires)

Algorithmes itératifs

Se ramène la plupart du temps au calcul de la limite d’une suite convergente Exemple : Jacobi (équations linéaires)

Norme IEEE 754 (binaire)

fl(a) = (−1)^S * (1 + M) * 2^(E−127)

  • S = signe: 1er bit = signe du nombre (0 = positif, 1 = négatif)
  • M = mantisse
    • le premier bit de mantisse est implicite égal à 1 (bit caché)
  • E = exposant
    • codé par excédent : E = valeur de l’exposant + (2^(t-1)-1) avec (t=nb de bit de la mantisse)
    • Dans le format simple précision, l’excédent (qui permet de coder et fixer les bornes de l’exposant dans ce format) est : 2^7 - 1 = 127

En format dénormalisé : (-1)^S (0,M)2^(E-127) avec M != 0

La plus petite valeur (strictement) positive représentable au format IEEE754 simple précision normalisé est donc : (-1)^0(1+0)2^(1-127) = 2^(-126)

Le plus petit nombre strictement positif représentable au format IEEE754 simple précision dénormalisé est donc : 2^(-23)*2^(-126) = 2^(-149)

Type Signe Exposant Mantisse
Normalisé 1/0 0 < E < Max quelconque
Dénormalisé 1/0 000..0 tout sauf tous les bits à 0
Zéro 1/0 000..0 000..0
Infini 1/0 111..1 000..0
Nan 1/0 111..1 tout sauf tous les bits à 0

Niveaux de précision

    |  Signe  | Exposant   | Mantisse | Total   |

--------|---------|------------|----------|---------| Simple | 1 bit | 8 bits | 23 bits | 32 bits | Double | 1 bit | 11 bits | 52 bits | 64 bits | Grande | 1 bit | 15 bits | 64 bits | 80 bits |

(-1)S * (1+M) * 2(E-1023) en double précision.

Résolution d’un système linéaire

Le pivot de gauss « simple », pas judicieux car les pivots sont pris sur la diagonale, et si ils sont tous nuls, on ne peut pas diviser par le pivot.

La méthode de Jacobi, car cette méthode assure la convergence si la matrice est à diagonale dominante

La méthode de Gauss-Seidel, car cette méthode est une variante de la méthode de Jacobi et nécessite les mêmes hypothèses de diagonale dominante pour assurer la convergence vers un résultat.

On peut utiliser la méthode du pivot de Gauss partiel ou total.

Le déterminant de A est proche de zéro, on risque donc une grande instabilité des calculs car le problème est mal conditionné. On a donc tout intérêt à privilégier la méthode du pivot de Gauss total, qui consiste à choisir à chaque étape le pivot le plus grand possible (en valeur absolue) dans la sous matrice considéré.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment