Résultat = x

publicité
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
Chapitre 7
LES ALGORITHMES
D’APPROXIMATIONS
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
On relevant les bords
on trouve cette boîte
10 cm
Prof : Soussi Ezzeddine
Page 1
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
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) X0
2) V_max0
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)
Prof : Soussi Ezzeddine
Page 2
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
4) Valeur_app_x X_max
5) Fin Valeur_app_x
T.D.O :
Objet
V_max
X_max
Type
Réel
Réel
Rôle
Calcul du volume
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
pas
v
x
Type
Réel
Réel
Réel
Rôle
Variation de x
Le volume maximum
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);
Prof : Soussi Ezzeddine
Page 3
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
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
Cp
I
Tx
Type
Réel
Entier
Réel
Prof : Soussi Ezzeddine
Rôle
Capital à atteindre
Compteur
La valeur approchée du taux
Page 4
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
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 à
‘',calcul_cap(cap,taux):2:5)
6) Fin app_2
T.D.O :
Objet
Cap
Pas
Taux
Type
Réel
Réel
Réel
la
banque
après
5
ans:
Rôle
Capital initial
Le pas de variation du taux
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);
Prof : Soussi Ezzeddine
Page 5
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
write('Donner la valeur du pas : '); readln(pas);
taux:=valeur_taux(cap,pas);
writeln('La valeur approchée du taux = ',taux:2:5);
write('La nouvelle valeur du capital à placer à la banque après 5 ans: ',calcul_cap(cap,taux):2:3);
end.
III. Problèmes d’approximations :
1. Résolution d’un problème d’approximation :
Dans un triangle ABC rectangle en A avec AB = 3 cm et AC = 2 cm ; on place un point M sur le
segment [AB] tel que AM = x.
N est la projection de M sur (BC) parallèlement à (AC).
P est la projection de N sur (AC) parallèlement à (AB).
B
M
N
3
x
A
P
C
2
On veut trouver la valeur de x pour que le rectangle AMNP ait pour valeur 1 cm2.
Pour résoudre ce problème, on doit :
 Exprimer l’aire du rectangle AMNP en fonction de x.
 Ecrire une fonction permettant de trouver la valeur de x qui donne une aire de rectangle
très proche de 1 cm2.
On doit exprimer l’aire du rectangle en fonction de x. on se basant sur les données suivantes :
 Le triangle ABC est rectangle en A.
 AB = 3.
 AC = 2.
Sachant aussi que le triangle ABC est formé par :
 Le triangle MBN rectangle en M.
 Le rectangle AMNP.
 Le triangle PNC rectangle en P.
L’aire du triangle =
(3*2)/2 = 3 cm2
L’aire du triangle ABC = aire (MBN)
+ aire (AMNP) + aire (PNC)
On suppose que x représente la longueur du rectangle AMNP et y représente sa largeur, on aura
:
Aire de (AMNP) = (x*y).
Aire de (MBN) = (3-x)*y/2.
Aire de (PNC) = x*(2-y)/2.
Aire de (ABC) = (x*y) + (3-x)*y/2 + (2-y)*x/2 = 3
Prof : Soussi Ezzeddine
Page 6
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
(x*y) + (3*y/2) – (x*y/2) + (x) – (y*x/2) = 3
(x*y) + (3*y/2) – (x*y) = 3 – x
3*y/2 = 3 –x
Se qui donne la largeur y = (2 – 2/3 *x).
Donc l’aire de rectangle (AMNP) :
x*y = x * (2 – 2/3 *x) = 1
-2/3 *x2 + 2*x -1 = 0
C’est un polynôme de second degré dont les solutions ne sont pas des valeurs exactes. Donc on
doit trouver la valeur approchée de x qui est la solution, pour cela on doit faire appel à une
fonction et avec pas représente la précision sur la valeur approchée de x.
Donc soit l’algorithme de la fonction suivant :
0) Fonction Valeur_x (pas :réel) :réel
1) x  0
2) Répéter
x  x + pas
a  -2/3 * carré (x) + 2 * x
jusqu’à (a>= 1)
3) Valeur_x  x-pas
4) Fin Valeur_x
T.D.O :
Objet
Type
Rôle
x
Réel
Calcul de x
A
Réel
Calcul d’aire
Algorithme du programme principal :
0) Début rectangle
1) Ecrire (‘’ Donner la valeur de pas : ‘’), lire (pas)
2) x  Valeur_x (pas)
3) A   -2/3 * carré (x) + 2 * x
4) Ecrire (‘’ La valeur approchée de x = ‘’ , x :2 :5 , ‘’ la valeur approchée de l’aire = ‘’ , A :2 :5)
5) Fin rectangle
T.D.O :
Objet
Type
Rôle
x
Réel
Calcul de x
A
Réel
Calcul d’aire
Pas
Réel
Pas de variation de x
Programme Pascal :
program rectangle;
uses wincrt;
var
pas,a,x:real;
Function valeur_x ( pas : real) : real;
var
a,x:real;
begin
x := 0;
Repeat
x := x + pas;
a := -2/3*sqr(x)+ 2*x;
until (a>=1);
Valeur_x := x - pas;
Prof : Soussi Ezzeddine
Page 7
Chapitre 7 : Les algorithmes d’approximations
3ème Sciences de l’informatique
end;
begin
write('Donner la valeur du pas : '); readln(pas);
x:=valeur_x(pas);
a := -2/3*sqr(x)+ 2*x;
writeln(' La valeur approchée de x = ' , x :2 :5 , ' la valeur approchée de l''aire = ' , A :2 :5);
end.
Prof : Soussi Ezzeddine
Page 8
Téléchargement