Upload
leonce-riou
View
102
Download
0
Embed Size (px)
Citation preview
Tutorat en bio-informatique
Le 21 novembre 2012
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
y = 4
y = x2
01'
01'
xf
yf
y
x
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
y = 4
y = x2
01'
01'
xf
yf
y
x (1,1) 0)1,1( f
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
y = 4
y = x2
01'
01'
xf
yf
y
x (1,1) 0)1,1( f
1)0,0( f
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
y = 4
y = x2
01'
01'
xf
yf
y
x (1,1) 0)1,1( f
1)0,0( f
94281)4,2( f
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
y = 4
y = x2
01'
01'
xf
yf
y
x (1,1) 0)1,1( f
1)0,0( f
94281)4,2( f34281)4,2( f
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
27) Cherchez le maximum et le minimum absolu de f sur l'ensemble D.
, D est la région bornée par la parabole
et la droite .
yxxyyxf 1),(2xy 4y
y = 4
y = x2
01'
01'
xf
yf
y
x (1,1) 0)1,1( f
1)0,0( f
94281)4,2( f34281)4,2( f
minimum
maximum
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
xyzzyxf
zyx
),,(
100
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
xyzzyxf
zyx
),,(
100
22100),(
)100(),(
100
xyyxxyyxf
yxxyyxf
yxz
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
xyzzyxf
zyx
),,(
100
22100),(
)100(),(
100
xyyxxyyxf
yxxyyxf
yxz
xyxxf
yyxyf
y
x
2100'
2100'2
2
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
xyzzyxf
zyx
),,(
100
22100),(
)100(),(
100
xyyxxyyxf
yxxyyxf
yxz
xyxxf
yyxyf
y
x
2100'
2100'2
2
22 21002100
0''
xxyxyxyy
ff yx
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
xyzzyxf
zyx
),,(
100
22100),(
)100(),(
100
xyyxxyyxf
yxxyyxf
yxz
xyxxf
yyxyf
y
x
2100'
2100'2
2
22 21002100
0''
xxyxyxyy
ff yx
Posons x = y dans l'une ou l'autre des dérivées.
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
yx
x
xx
xxf
xxxxyxxf
y
y
3/100
3100
3100
03100'
21002100'
2
2
222
Posons x = y dans l'une ou l'autre des dérivées.
Exercices 2 et 3 (MAT1400) - solutions
Chapitre 11.7, Analyse - concepts et contextes vol. 2
35) Déterminez trois nombres positifs dont la somme vaut 100 et dont le produit est maximum.
yx
x
xx
xxf
xxxxyxxf
y
y
3/100
3100
3100
03100'
21002100'
2
2
222
Posons x = y dans l'une ou l'autre des dérivées.
3/1003/200100
100
z
yxz
Au programme…
• Algorithmes de recherche dans un tableau
• Algorithmes de tri dans un tableau
Algorithmes
• Qu'est-ce qu'un algorithme?
C'est un processus logique permettant la résolution d'un problème en programmation.
www.le-dictionnaire.com
Algorithmes
• On analyse la performance d'un algorithme en évaluant son temps d'exécution dans le pire cas.
• En effet, le meilleur cas ne se produit presque jamais dans la réalité, donc il n'est pas intéressant.
• Le cas moyen est souvent le plus difficile à calculer et il peut être peu représentatif du pire cas.
• L'analyse du temps d'exécution dans le pire cas nous donne la garantie que l'algorithme ne pourra être plus lent peu importe ce qu'on lui donne en entrée.
Algorithmes
• Soit T(n), la fonction qui définie les opérations effectuées par l'algorithme sur n, le nombre d'entrées. On dira que :
T(n) = O( f(n) ) si pour des constantes positives c et n0, on a T(n) <= cf(n) quand n >= n0
f(n) Temps
c constant
logn logarithmique
n linéaire
nlogn nlogn
n2 quadratique
n3 cubique
2n exponentiel
n! factoriel
Recherche dans un tableau non trié
• On doit parcourir toutes les positions du tableau jusqu'à ce qu'on trouve l'élément recherché (recherche directe)
function rechercheDirecte(tab, element){
for (var i = 0; i < tab.length; i++){
if (tab[i] == element){
return i;}
}return -1;
}
Pire cas :
temps linéaire ( O (n) )
Recherche dans un tableau trié• On peut parcourir toutes les positions du tableau jusqu'à
ce qu'on trouve l'élément recherché ou qu'on dépasse la valeur de l'élément recherché (recherche linéaire).
function rechercheLineaire(tab, element)
{
for (var i = 0; i < tab.length; i++)
{
if (tab[i] == element)
return i;
else if (tab[i] > element)
return -1;
}
return -1;
}
Pire cas :
temps linéaire ( O (n) )
Recherche dans un tableau trié• On peut faire une recherche binaire
function rechercheBinaire(tab, element){
var gauche = 0;var droite = tab.length - 1;while (gauche <= droite){
var centre = Math.floor((gauche + droite) / 2);if (tab[centre] == element)
return centre;else if (tab[centre] > element)
droite = centre - 1;else
gauche = centre + 1;}return -1;
}
Recherche dans un tableau trié• On peut faire une recherche binaire
function rechercheBinaire(tab, element){
var gauche = 0;var droite = tab.length - 1;while (gauche <= droite){
var centre = Math.floor((droite – gauche) / 2) + gauche;if (tab[centre] == element)
return centre;else if (tab[centre] > element)
droite = centre - 1;else
gauche = centre + 1;}return -1;
}
Pire cas :
dans O (log n)
Algorithmes de tri
• La meilleure façon de trier un tableau est de séparer notre tableau en deux parties : une partie triée et une partie non triée
• Il n'y aurait aucun avantage à créer un deuxième tableau : cela nécessiterait plus d'espace et plus d'opérations
Tri par sélectionfunction triSelection(tab){
for (var i = 0; i < tab.length-1; i++){
var posMin = i;for (var j = i + 1; j < tab.length; j++){
if (tab[j] < tab[posMin]){
posMin = j;}
}if (posMin != i){
var temp = tab[i];tab[i] = tab[posMin];tab[posMin] = temp;
}}
}
O(n2) dans tous les cas
Tri par insertion
function triInsertion(tab){
for (var i = 1; i < tab.length; i++){
var aPlacer = tab[i];
var j = i - 1; while (j >= 0 && tab[j] > aPlacer) {
tab[j+1] = tab[j];j--;
}
tab[j+1] = aPlacer;}
}
Ici, on peut faire mieux qu'avec le tri par sélection. Dans le meilleur cas (un tableau déjà trié), le tri par insertion prend un temps linéaire.
Toutefois, dans le pire cas (tableau trié en ordre décroissant), cet algorithme prendra aussi un temps quadratique.
Tri bullefunction triBulle(tab){
do{var inversionFaite = false;for(var i = 0; i < tab.length-1; i++){
if(tab[i] > tab[i+1]) {
var temp = tab[i+1];tab[i+1] = tab[i];tab[i] = temp;inversionFaite = true;
}}
} while(inversionFaite);}
Comme pour le tri insertion, dans le meilleur cas (un tableau déjà trié), le tri bulle prend un temps linéaire.
Toutefois, dans le pire cas (???), cet algorithme prendra aussi un temps quadratique.
Tri bullefunction triBulle(tab){
do{var inversionFaite = false;for(var i = 0; i < tab.length-1; i++){
if(tab[i] > tab[i+1]) {
var temp = tab[i+1];tab[i+1] = tab[i];tab[i] = temp;inversionFaite = true;
}}
} while(inversionFaite);}
Comme pour le tri insertion, dans le meilleur cas (un tableau déjà trié), le tri bulle prend un temps linéaire.
Toutefois, dans le pire cas (plus petit élément en dernière position), cet algorithme prendra aussi un temps quadratique.
Exercices (MAT1400)
Chapitre 12.2, Analyse - concepts et contextes vol. 2
19) Calculez le volume du solide dressé sur le rectangle
R = [-1, 1] x [-2, 2] et coiffé par le paraboloïde elliptique
.
23) Calculez le volume du solide du premier quadrant compris dans le cylindre et le plan x = 2.
19/4/ 22 zyx
29 yz
Référence
• Weiss, MA (2007). Data Structures and Algorithm Analysis in Java. Second Edition. Pearson Education, Boston, 555 pages.