Chapitre 7 : Les algorithmes d’approximations 3ème Sciences de l’informatique
Prof : Soussi Ezzeddine Page 1
Chapitre 7
LES ALGORITHMES
DAPPROXIMATIONS
I. introduction :
Les algorithmes d’approximations, peuvent être utilisés pour déterminer les valeurs
approchées de la solution de certains problèmes dont on ne peut pas déterminer la valeur exacte
de la solution.
En effet, pour résoudre un tel problème, on doit balayer toute une plage de valeurs de données
avec un pas choisi. La valeur de ce pas donne la précision sur la valeur approchée de la
solution.
Dans certains problèmes la variation du pas amène un ensemble de solutions réalisables, mais il
existe toujours une meilleure solution. Un problème d’optimisation consiste à travers la meilleure
solution dite solution optimale dans un ensemble de solutions réalisables.
II. Problèmes d’optimisation :
1. Résolution d’un problème d’optimisation :
Soit une feuille de carton carrée de 10 cm de coté, on découpe aux quatre coins quatre
carrés de coté x cm, puis en relevant les quatre bords restants, on obtient une boite de forme
parallélépipédique.
On veut trouver la valeur de x telle que le volume de la boîte trouvé soit maximal.
x
10 cm
On relevant les bords
on trouve cette boîte
Chapitre 7 : Les algorithmes d’approximations 3ème Sciences de l’informatique
Prof : Soussi Ezzeddine Page 2
Travail demandé :
Déterminer le volume de la boite en fonction de x.
Chercher la valeur approchée de x tel que le volume de la boîte est maximum.
Réponse :
Le volume = largeur * longueur * hauteur
Avec Largeur = 10 2 * x
Longueur = 10 2 * x
Hauteur = x
Donc Volume = (10 2 * x) * (10 2 * x) * x
V = 4 * x3 40 * x2 + 100 * x = 4*x*(carré (x) 10*x +25)
Remarque :
La détermination du volume de la boîte en fonction de x a donné une fonction numérique.
L’étude de la variation de cette fonction montre que cette fonction admet un maximum.
Le domaine de variation de x est de 0 à 5 (c-à-d de 0 à la moitié de la mesure du coté du
carré).
La feuille de carton peut être rectangulaire donc x variera de 0 à la moitié de la mesure de la
largeur.
Ce type de problème est appelé un problème d’optimisation. La résolution de ce problème
consiste à déterminer une valeur approchée de x où la fonction admet un maximum.
Pour déterminer la valeur approchée de x on peut utiliser la fonction suivante :
Fonction valeur_app_x (pas : réel) : réel
D’où (pas) représente le pas de variation de x.
Analyse de la fonction valeur_app_x.
Résultat = x
Le domaine de variation de x est de 0 à 5.
Il faut initialiser X_max et V_max à 0.
La solution comporte une structure itérative à condition d’arrêt (Répéter jusqu’à)
pour parcourir tout le domaine de x avec une variation de pas donné.
Pour chaque répétition, nous allons :
Varier la valeur de x de pas.
Calculer la valeur du volume.
Echanger la valeur du volume maximum par la valeur calculée si ce dernier
est strictement supérieur.
La fonction retourne la valeur de x.
Algorithme de la fonction Valeur_app_x :
0) Fonction Valeur_app_x (pas : réel) : réel
1) X0
2) V_max0
3) Répéter
x x + pas
v 4* x *(carré (x) 10 * x 25)
si V > V_max alors
X_max x
V_max v
Fin si
Jusqu’à (x 5)
Chapitre 7 : Les algorithmes d’approximations 3ème Sciences de l’informatique
Prof : Soussi Ezzeddine Page 3
4) Valeur_app_x X_max
5) Fin Valeur_app_x
T.D.O :
Objet
Type
Rôle
V_max
Réel
Calcul du volume
X_max
Réel
Recherche de x
Algorithme du programme principal :
0) Début app_1
1) Ecrire (‘’ Donner la valeur du pas : ‘’) , Lire (pas)
2) X valeur_app_x (pas)
3) V 4*x*(carré (x) 10 *x -25)
4) Ecrire (‘’ La valeur approchée de x = ‘’, x : 2 : 5 , ‘’cm’’)
5) Ecrire (‘’ Le volume maximum de la boite = ‘’, v : 2 : 5 , ‘’cm3’’)
6) Fin app_1
T.D.O :
Objet
Type
Rôle
pas
Réel
Variation de x
v
Réel
Le volume maximum
x
Réel
La valeur approchée de x
Programme Pascal :
program app_1;
uses wincrt;
var
pas,v,x:real;
function valeur_app_x(pas:real):real;
var
x_max,v_max:real;
begin
x:=0;
v_max:=0;
repeat
x:=x+pas;
v:=4*x*(sqr(x) - 10*x + 25);
if v>v_max then
begin
v_max:=v;
x_max:=x;
end;
until (x >= 5);
valeur_app_x:=x_max;
end;
begin
write('Donner la valeur de pas : '); readln(pas);
x:=valeur_app_x(pas);
Chapitre 7 : Les algorithmes d’approximations 3ème Sciences de l’informatique
Prof : Soussi Ezzeddine Page 4
v:=4*x*(sqr(x)- 10*x + 25);
writeln('la valeur de x = ',x:2:5,' cm');
write('Le volume maximum de la boîte = ',v:2:5,' cm3');
end.
2. Application :
On se propose de déterminer le taux d’intérêt maximal choisi pour doubler un capital placé
dans une banque durant une période de 5 ans. La valeur du capital et le pas de variation du taux
d’intérêt sont des données.
Solutions :
A la fin du 1er mois, le capital devient :
Cm1 = Cap + (Cap * taux / 100)
A la fin du 2ème mois, le capital devient :
Cm2 = Cm1 + (Cm1 * taux / 100)
A la fin du 60ème mois, le capital devient :
Cm60 = Cm59 + (Cm59 * taux / 100)
Cm60 représente la valeur du capital après 5 ans qui doit être égale ou très proche de 2 * Cap.
On doit refaire le calcul avec chaque fois la nouvelle valeur de taux qui est égale à taux + pas.
Cap : représente le capital initial placé dans la banque.
Pas : représente la valeur de variation du taux d’intérêt.
Pour trouver la valeur approchée de taux on peut utiliser la fonction suivante :
Algorithme de la fonction valeur_taux :
0) Fonction valeur_ taux (Cap, pas : réel) : réel
1) Tx pas
2) Répéter
Cp Cap
Pour i de 1 à 60 faire
Cp Cp + (Cp * tx / 100)
Fin pour
Tx Tx + pas
Jusqu’à (Cp>= 2 * Cap)
3) Valeur_ taux tx pas
4) Fin valeur_ taux
T.D.O :
Objet
Type
Rôle
Cp
Réel
Capital à atteindre
I
Entier
Compteur
Tx
Réel
La valeur approchée du taux
Chapitre 7 : Les algorithmes d’approximations 3ème Sciences de l’informatique
Prof : Soussi Ezzeddine Page 5
L’algorithme du programme principal :
0) Début app_2
1) Ecrire (‘'Donner la capital à placer à la banque : ‘'), Lire (cap)
2) Ecrire (‘'Donner la valeur du pas : '’), Lire (pas)
3) Taux valeur_taux(cap,pas)
4) Ecrire (‘'La valeur approchée du taux = ‘',taux:2:5)
5) Ecrire (‘'La nouvelle valeur du capital à placer à la banque après 5 ans:
‘',calcul_cap(cap,taux):2:5)
6) Fin app_2
T.D.O :
Objet
Type
Rôle
Cap
Réel
Capital initial
Pas
Réel
Le pas de variation du taux
Taux
Réel
La valeur approchée du taux
Le programme principal :
program app_2;
uses wincrt;
var
cp,Cap,pas,taux:real;
Function valeur_taux (Cap, pas : real) : real;
var
i:integer;
cp:real;
begin
Taux := pas;
Repeat
Cp := Cap;
For i := 1 to 60 do
Cp := Cp + (Cp * taux / 100);
Taux := Taux + pas;
until (Cp>= 2 * Cap);
Valeur_taux := taux - pas;
end;
function calcul_cap(cap,taux:real):real;
var
i:integer;
cp:real;
begin
Cp := Cap;
For i := 1 to 60 do
Cp := Cp + (Cp * taux / 100);
calcul_cap:=cp;
end;
begin
write('Donner le capital à placer à la banque : '); readln(cap);
1 / 8 100%