Buts:
- Analyse numérique: SOLUTION
Changement de Base
1. Donner la valeur décimale des entiers suivants, la base dans laquelle ces entiers sont codés étant précisée.
- (a) 1011011 et 101010 en binaire (base 2) ;
(1011011)2 = (91)10 ; (101010)2 = (42)10
- (b) A1BE et C4F3 en hexadécimal (base 16) ;
(A1BE)16 = (41406)10 ; (C4F3)16 = (50419)10
- (c) 77210 et 31337 en octal (base 8).
(77210)8 = (32392)10 ; (31337)8 = (13023)10
2. Coder l’entier 2 397 successivement en base 2, 8 et 16.
(2397)10 = (100101011101)2 = (4535)8 = (95D)16
3. Donner la valeur décimale du nombre 10101, dans le cas où il est codé en base 2, 8 ou 16.
(10101)2 = (21)10 ;
(10101)8 = (4161)10 ; (10101)16 = (65793)10 ;
Nombres entiers et Arithmétique
4. Combien d’entiers positifs peut-on coder en binaire sur un octet ?
Un octet contient 8 bits, on peut donc coder 28 = 256 entiers.
5. Combien de bits faut-il pour représenter 65 563 entiers différents en binaire ?
Avec b bits, on peut coder 2b entiers
différents. Pour coder n entiers, il nous faut donc m bits tels que 2m-1 <
n <= 2m, c.-à-d. m-1 < log2n <= m. On a donc m =
[log2n]. Ainsi pour n=65563, on a m=log265563=17
6. Coder en binaire sur un octet les entiers 105 et 21 puis effectuer l’addition binaire des entiers ainsi codés. Vérifier que le résultat sur un octet est correct.
(105)10 = (1101001)2 ;
(21)10 = (10101)2 ; La somme donne: (1101001)2
+ (10101)2 = (1111110)2 ; Aucun débordement sur un octet.
Représentation binaire des entiers négatifs
7. Indiquer la valeur codée par le mot de 16 bits 1101100101110101 suivant qu’il représente un entier non signé, ou un entier signé.
En non signé, la valeur est
(1101100101110101)2 = (55 669)10. En signé, le premier
bit (bit de signe) vaut 1, c’est donc un nombre négatif dont la valeur est
-(101100101110101)2 = -(22901)10
8. Indiquer la valeur codée par la suite 1101100101110101 qui représente un entier signé en complément à 2 sur 16 bits.
C’est un nombre négatif. Complément à 2 : 0010011010001011 donc -9867.
9. Coder les entiers 61 et -61 sur un octet en utilisant la représentation par le signe et la valeur absolue. Montrer que l’addition binaire de ces entiers ainsi codés produit un résultat incorrect. Montrer qu’en revanche le résultat est correct si ces entiers sont codés en utilisant la représentation par le complément à 2.
En utilisant la représentation signe et valeur
absolue: (61)10 = (00111101)2 ; (-61)10 =
(10111101)2 ; La somme donne: (00111101)2 +
(10111101)2 = (11111010)2 = (-122)10; Le
résultat est incorrect!
En utilisant la représentation par complément à 2: (61)10 = (00111101)2 ; (-61)10 =
(11000011)2 ; La somme donne: (00111101)2 +
(11000011)2 = (00000000)2 = (0)10; Par
contre ici nous arrivons au bon résultat.
Représentation des réels
10. En virgule fixe, décoder le nombre binaire 11.011 puis coder en binaire le réel 11.625.
(10.011)2 =
[1x21+1x20+0x2-1+1x2-2+1x2-3+]10
= [2+1+0.25+0.125]10 = 3.37510
(11.625)10 = [8+2+1+0.5+0.125]10 =
[23+21+20+2-1+2-3+]10
= 1011.1012
11. En virgule flottante normalisée, coder en binaire au format simple précision le réel 12.575
Correction
Si vous suivez les notes de cours, vous devez obtenir ce résultat:
(12.575)10 = (1100.1001001...)2
S:0
E:10000010
M:10010010011001100110011
Le résultat ci-dessus (précédemment affiché) est obtenu avec un décalage de 1 bit donc moins précis car on perd le 23 bits qui équivaut à 2-20.
(12.575)10 = (1100.1001001...)2
= [0.11001001001 ... x 10100]2 = 0|10000011|11001001001100110011001|
Chiffres significatifs et erreurs absolue/relative
12. Si tous les chiffres significatifs de 476.6 et 3.11918 sont exacts:
Quelle est l'erreur absolue de leur somme? Quelle en est l'erreur relative?
Combien de chiffres significatifs exacts a-t-elle?
u*=476.6, du=0.05 (du étant delta u);
v*=3.11918, dv=0.5 x 10-5
erreur absolue de leur somme: du + dv = 0.050005 approx. = 0.05
u+v = (476.6 + 3.11918)+/- 0.05 = 479.71918 +/- 0.05
Il y a donc une décimale exacte dans la somme, et on peut écrire, en
arrondissant:
u+v = 479.7 +/- 0.1
L'erreur relative de la somme est:
0.050005/479.71918 = 0.00010424... approx. = 0.0001
13. Calculer le produit de 369.7 par 0.0042131 si les chiffres significatifs de ces quantités sont tous exacts. Erreur relative, erreur absolue. Arrondir au nombre de chiffres significatifs exacts.
Posons u = 369.7 +/- 0.05 et v = 0.0042131 +/-
0.5x10-7
Pour l'erreur absolue du produit, on peut utiliser la formule directe: udv
+ vdu
369.7x0.5x10-7+0.0042131x0.5 approx. = 0.00023
L'erreur relative de u: 0.05/369.7 approx. = 0.00014
L'erreur relative de v: 0.5x10-7/0.004231 approx. = 0.000012
et uv = 1.55758307
L'erreur relative du produit est donc 0.00014 + 0.000012 approx. = 0.00015
donc 3 chiffres significatifs exacts (3 décimales exacts).
uv = 1.558 +/- 0.001
Zéros d'une fonction à l'aide de Newton
14. En utilisant la méthode de Newton, calculer les bornes sup et inf de la
racine carrée de 2, pour deux itérations et pour une valeur de départ x0=1.41
f(x)=x2-2; f'(x)=2x et x0=1.41
sachant la formule de Newton : xn+1=xn-f(x)/f'(x), nous aurons ce qui
suit:
x0=1.41
x1=x0-f(x0)/f'(x0)=x0-([x02-2]/[2x0])=1/2(x0+2/x0)
x1=1/2(1.41+2x1.41)=1.4143
x2=2 ; Comme a valeur est approximée <=>
x1x2=2 donc si x1=1.4143,
x2=2/x1=1.4141
la vraie valeur de x est comprise entre x1 et x2
donc: 1.4141 < x < 1.4143
en suivant le même principe:
x2=1/2(1.4143+2x1.4143)=1.4142136
et 1.4142135 < x < 1.4142136
15. Trouver le zéro de la fonction x3+4x2-10=0 dans
l'intervalle [1,2]. Précision=0.0005 et le nombre d'itérations=20. Quel est le
nombre réel d'itérations utilisés pour calculer le zéro de la précédente fonction.
|
|