SRT3 · Semestre 6

Méthodes Numériques

Bases de calcul, conversions, exercices guidés et visualisations des méthodes numériques (Bolzano, sécante, Newton).

Quelques bases

Additions binaires

0+0=0

0+1=1

1+0=1

1+1=0 et on retient 1 , par exemple en binaire 1 + 1 = 10 , j'ai mis 0 et j'ai rajouté un 1 à gauche du 0.

\[ \begin{array}{r} 1100 \\ + 1000 \\ \hline 10100 \end{array} \]

Soustractions binaires

0-0=0

0-1=1 et on retient 1

1-0=1

1-1=0

\[ \begin{array}{r} 1100 \\ - 1000 \\ \hline 0100 \end{array} \]

\[ \begin{array}{r} 10101 \\ - 01110 \\ \hline 00111 \end{array} \]

Là c'est un peu plus compiqué, le 0-1 fait 0 et j'envoie un +1 en même temps de faire un 1-1 donc le 1-1 devient 0 mais il se prend le +1 en pleine poire

Multiplication binaire

0*0=0

0*1=0

1*0=0

1+1=1

Commentaire: On décale de 1 car 1011 * 11 en binaire fait 1011 + 10110. Le décalage vers la gauche signifie qu'on ajoute un 0 à la fin.

\[ \begin{array}{r} & 1011 \\ \times & 0011 \\ \hline & 1011 \\ + & 10110 \quad \\ \hline & 100001 \\ \end{array} \]

Division binaire (en travaux)

Exemple : 1101 ÷ 11

\[ \begin{array}{r|r} 1101 & 11 \text{ (diviseur)} \\ \hline - 1100 & 101 \text{ (quotient)} \\ \underline{0010} & \\ 00101 & \\ - 0011 & \\ \underline{00001} & \\ 00010 & \\ - 0000 & \\ \underline{00010} & \\ 10 & \\ \end{array} \]

Techniques pour changer de base

Passer de la base 10 (décimale) à la base 2

superdivison

Cette image montre une méthode pour convertir un nombre décimal en binaire

Autre méthode pour transformer 143 en binaire, on peut utilsier chaque valeur de puissance de 2 donc 1 2 4 8 16 32 64 128 256 512 1024 2048 etc.

on peut donc faire 1*128 + 0*64 + 0*32 + 0*16 + 1*8 + 1*4 + 1*2 + 1*1 = 128+8+4+2+1 = 136+4+2+1 = 140+2+1 = 143 donc 143 = \( (10001111)_2 \)

êtitesconversions

Représentation par arrondi, on ajoute un 1 au dernier bit de la mantisse

Représentation par troncature, on coupe tout simplement au dernier bit de la mantisse

conversions

Quelques exercices

Donnez la valeur binaire normalisée représentant le nombre réel -28.5

28 = 16 + 8 + 4 = \( (11100)_2 \) et 0.5 = \( (0.1)_2 \)

En fusionnant le 28 et le 0.5 nous avons \( (11100.1)_2 \)

Mais il faut ramener à 1. quelque chose donc décalage de 4 bits

Nous obtenons donc \( (1.11001)_2 \) et le décalage de 4 bits vers la droite fera +4 sur l'exposant

Mais ne pas oublier que nous voulons -28.5

La forme normalisée de -28.5 est donc x = \( -(1,11001)_2 *2^4 \)

Pour une représentation sur 32 bits on a donc:

Signe négatif \( d_{31} = 1 \)

Exposant codé sur 8 bits donc 127 + 4 (le +4 vient du décalage à droite de 4 bits) donc l'exposant vaut 131 soit \( (1000 0011)_2 \)

La mantisse codé sur 23 bits \( (d_{22} \ ... d _0 \))\( _2 \) = (110001 ...)\( _2 \) . Pour tourver ce nombre, tu reprends le nombre que t'avais convertis en binaire donc ici le -28.5 qui faisait (11100,1) mais tu l'écris sans la virgule donc (111001).

x = (1 100 0001 1 110 1000 0000 0000 0000 0000)\( _2 \)

x = (1100 0001 1110 0100 0000 0000 0000 0000)\( _2 \)

x=0xC1E40000 en hexadécimal

Quelques outils de méthodes numériques

Bolzano

1. Intervalle initial \([0, 1.5]\) :

La fonction \( f(x) \) doit croiser l'axe des abscisses entre \( a = 0 \) et \( b = 1.5 \).

Le point médian est \( m_1 = \frac{0 + 1.5}{2} = 0.75 \).

2. Première itération :

Nous allons commencer par évaluer \( f(0.75) \).

Étant donné que \( f(0.75) \approx -0.018 \) (négatif), le nouvel intervalle sera \([0, 0.75]\).

3. Deuxième itération :

Le nouvel intervalle est \([0, 0.75]\), le prochain point médian est \( m_2 = \frac{0 + 0.75}{2} = 0.375 \).

Nous allons donc évaluer \( f(0.375) \).

Étant donné que \( f(0.375) \approx 0.245 \) (positif), le nouvel intervalle sera \([0, 0.375]\).

1. Initialisation de la méthode de la sécante :

La méthode de la sécante demande la connaissance initiale de deux points \( x_0 \) et \( x_1 \) proches de la solution recherchée.

2. Calcul de la nouvelle approximation :

À chaque itération, nous utilisons la formule de la sécante pour trouver un nouveau point \( x_{n+1} \) : \[ x_{n+1} = x_n - f(x_n) \frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})} \] Cette formule est dérivée de l'équation de la droite passant par les points \((x_{n-1}, f(x_{n-1}))\) et \((x_n, f(x_n))\).

3. Convergence :

La méthode continue jusqu'à ce que la différence entre deux approximations successives soit inférieure à un seuil \( \epsilon \).

4. Visualisation :

Le graphique ci-dessous montre la fonction \( f(x) = e^x - 5 \sin(x) \) ainsi que les points et les sécantes calculés à chaque itération de la méthode.

1. Initialisation de la méthode de Newton :

La méthode de Newton repose sur le remplacement de la fonction \( f \) dont on veut déterminer une racine par la tangente à \( f \) au point courant.

2. Calcul de la nouvelle approximation :

À chaque itération, nous utilisons la formule de Newton pour trouver un nouveau point \( x_{n+1} \) : \[ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} \] Cette formule utilise la dérivée de \( f \) pour trouver le point où la tangente coupe l'axe des abscisses.

3. Convergence :

La méthode continue jusqu'à ce que la différence entre deux approximations successives soit inférieure à un seuil \( \epsilon \).

4. Visualisation :

Le graphique ci-dessous montre la fonction \( f(x) = e^x - 5 \sin(x) \) ainsi que les points calculés à chaque itération de la méthode de Newton.