Calcul scientifique
Fonctionnement des ordinateurs
InformatiqueCours 13 10/12/2001
Calcul scientifique• Ordinateurs analogiques
• Ordinateurs digitaux
– Calcul symbolique
– Calcul numérique
Calcul scientifique• Ordinateurs analogiques
Exemple: solution de l’équation du mouvement
€
m d2xd t2
= −k x
Calcul scientifique• Ordinateurs analogiques
• On dispose de circuits électroniques (amplificateurs) qui, lorsqu’on y « injecte » un signal, donnent en sortie, ce signal
– Multiplié par une paramètre ajustable– Dérivé par rapport au temps– Intégré sur le temps– Etc.
€
m d2xd t2
= −k x
Calcul scientifique• Ordinateurs analogiques
On peut connecter entre eux de tels circuits dans une boucle où la sortie d’un circuit est proportionnelle à k*x (où x est un courant) , sortie qui est elle même l’entrée d’un circuit qui donne un courant proportionnel à la dérivée seconde de x.
Si le circuit se stabilise, on a « la solution » c’est-à-dire x en fonction du temps, x qu’il « suffit » de mesurer
€
m d2xd t2
= −k x
Calcul scientifique• Ordinateurs digitaux
– Calcul symbolique
Logiciels commerciaux
Maple
Mathematica
– Calcul numérique
Calcul scientifique• Ordinateurs digitaux
– Calcul symbolique
Maple- ! (factorielle) - iprime (facteurs
premiers)- evalf (évaluation) - sum- graphiques- manipulations algébriques (expand, factor)- fonctions - expressions - procédures- équations - systèmes d’équations- développements en série- dérivées - intégrales- calcul matriciel
– Calcul numérique
Calcul scientifique• Calcul numérique
Evaluation de fonctions
Exemple: e-x
€
f(x) = f (0) + x f '(0) + x2
2! f ''(0) + ...
€
e− x = 1 − x + x2
2! −
x3
3! +
x4
4! −...
Calcul scientifique• Calcul numérique
Evaluation de fonctions
Récurrences
€
e− x = 1 − x + x2
2! −
x3
3! +
x4
4! −...
€
tn = − xn
tn − 1
Calcul scientifique fonction expof (x: réel; n: entier): réel;
{n est le nombre de termes évalués} constante précision = 1.0-6
variables s, t: réels; corps s 1 t -x n 2 tant que abs(t) > précision * s faire s s + t t -t * x / n n n + 1
ftant expof s fin fonction
réel ? étendu ?
1_ expo ƒ
Calcul scientifique• Calcul numérique
Equations différentielles
Exemple: équations du mouvement
Masse attachée à un ressort:
€
m d2xdt2
= − k x
Calcul scientifique• Calcul numérique
Masse attachée à un ressort:
€
dvdt
= − km
x
€
dxdt
= v
Calcul scientifique• Calcul numérique
Masse attachée à un ressort:
€
v = v0 − km
x0 t
€
x = x0 + v t
Calcul scientifiqueMasse attachée à un ressort:
v 0.0 x 1.0 t 0.0 écrire (t , v, x); v v - k * x * dt / 2 x x + v * dt t t + dt écrire (t , v, x); pour i de 2 à 628 faire v v - k * x * dt x x + v * dt t t + dt; écrire (t , v, x);
fpour
2_ oscillateur ƒ
Calcul scientifique• Calcul numérique
autres exemples:
€
f = 1
4πε0
Q qr2 1r
3_ oscillateur ƒ
Calcul scientifique• autres exemples: Proies - prédateurs
Répéter Aold A Bold B A A + (-alpha * A + beta * B * A) * dt B B + (gamma * B - beta * Aold * B) * dt t t + dt;
écrire(i, t, A, B )i i + 1;
jusque i = 3000
4_ proies-prédateurs ƒ
dA/dt = -alpha * A + beta * B * A dB/dt = gamma * B - beta * A * B
Calcul scientifique• Calcul numérique
Intégration
3_ oscillateur ƒ
€
f (x) dxa
b
∫
Calcul scientifique• Calcul numérique
Intégration
€
f (x) dxa
b
∫f(x)xab
Calcul scientifique• Calcul numérique
Intégration
€
f (x) dxa
b
∫f(x)xab
Calcul scientifiqueIntégration
€
f (x) dxa
b
∫ ≈ f (xi) Δx∑f(x)xab
Calcul scientifiqueIntégration
€
f (x) dxa
b
∫ ≈ 12
Δx ( f (xi) + f (xi+1))∑f(x)xab
Calcul scientifiqueIntégration
€
f (x) dxa
b
∫ ≈ 12
Δx f (a) + 2 f (a+Δx) + f (a+2Δx) + ...[ ]
f(x)xab
Calcul scientifiqueIntégration
s 0pour k de 1 à N-1 faire
s s + fi + fi+1
fpours s * x * 1/2
Calcul scientifiqueIntégration
€
13Δx f (a) + 4 f (a+Δx) + 2f (a+2Δx) + 4 f (a+3Δx)...[ ]
f(x)xab
Calcul scientifiqueIntégration
s 0pour k de 1 à N par pas de 2 faire
s s + (fi + 4 fi+1 + fi+2)fpours s * x * 1/3
5_ erreurs ƒ
Fonctionnement des ordinateurs• Inverseur
• AND OR (et ou)
• Flip flop
• Demi-additionneur
• Addition de nombres codés sur 4 bits
• Accès au bus
Inverseur
Circuit ET (AND)
Circuit NON ET (NAND)
Circuit bistable
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Circuit bistable
Niveaux logiques:
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur
Niveaux logiques: addition de 2 bits
Demi-additionneur: schéma
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Additionneur: 2 nombres de 4 bits
Accès au bus (de données/ d’adresses)
Fortran• Structure générale
• Tri par insertion linéaire (10 données)GNU
• Oscillateurs– LS Fortran