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
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 \)
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
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.