• Aucun résultat trouvé

Optimisation d'une fonction d'une variable réelle TP 1 L3 EURIA

N/A
N/A
Protected

Academic year: 2022

Partager "Optimisation d'une fonction d'une variable réelle TP 1 L3 EURIA"

Copied!
2
0
0

Texte intégral

(1)

Optimisation d'une fonction d'une variable réelle TP 1 L3 EURIA

2 novembre 2016

Exercice 1

1. Ecrire une fonction R f=function(x) qui prend en entrée une valeur x et qui renvoie f(x) = x/2 + 1/x. Etudier les variations de f "à la main" : la fonction f a combien d'extrema locaux sur l'intervalle [1,2]? Tracer la fonctionf sur l'intervalle[1,2]à l'aide de Rainsi que sa dérivée sur le même graphique.

2. Retrouver une valeur approchée des extrema locaux def sur l'intervalle[1,2]en utilisant la fonction R optim. Quels sont les algorithmes proposés par la fonction optim ?

3. De nombreux algorithmes d'optimisation utilisent la dérivée de la fonction à optimiser.

Dans certains cas, comme celui de la fonctionf considérée dans cet exercice, il est possible de calculer la dérivée de manière analytique mais dans d'autres cas c'est impossible ou trop fastidieux. Des méthodes de type "diérence nie" peuvent alors être utilisées. Elles permettent de calculer des valeurs approchées de la dérivée.

(a) Ecrire une fonction di=function(f,x,h=1e-8) qui prend en entrée une fonctionf quel- conque, un nombre réel x et un pash (qui aura la valeurh= 108 par défaut) et qui renvoie une approximation de la dérivée def au pointxpar la formule des diérences nies

f(x)≈fˆ(x) = f(x+h)−f(x) h

i. En déduire une valeur approchée def(1).

ii. Tracer l'erreur |f(1)−fˆ(1)|en fonction de h (on pourra faire varierh entre1 et 10−16 et faire les graphiques avec une échelle logarithmique). Le choix par défaut h= 108 vous parait-il pertinent ?

iii. Dans cette question on cherche à retrouver par un raisonnement analytique la va- leur optimale dehobtenue dans la question précédente. An de décrire les erreurs numériques faites par R, on écrira quefˆ(x) =f(x) +ϵ(x)avec fˆ(x) la valeur nu- mérique renvoyée par R. La commande R .Machine$double.eps renvoie la précision machine et donc l'ordre de grandeur de la fonction ϵ. En utilisant un dévelop- pement limité à l'ordre 2 de f au voisinage de x, donner une approximation de

f(x+h)ˆ f(x)ˆ

h −f(x). Discuter.

(b) Recommencer la question précédente en utilisant l'approximation f(x)≈f˜(x) = f(x+h/2)−f(x−h/2)

h .

1

(2)

Avec quelle approximation obtient-on les meilleurs résultats ? Pourquoi ?

4. Ecrire une fonction dichotomie=function(f,a,b,tol=1e-5,h=1e-8) qui prend pour argument une fonctionf, deux réelsaetbqui correspondent aux extrémités d'un segment sur lequel f est strictement décroissante puis croissante, un pashet une tolérancetol, et qui calcule par dichotomie une approximation du minimum de f sur [a, b]. Pour cela on résoudra f(x) = 0 où f est calculée en utilisant une approximation par diérence nie avec un pash. On arrêtera l'algorithme dès qu'on a trouvé xtel que |f(x)|< tol. On testera sur la fonction de la question 1.

5. Ecrire une fonction di2=function(f,x,h=1e-8) qui prend en entrée une fonction f quel- conque, un pointxet un pashet qui renvoie une approximation de la dérivée seconde de f au pointx par la formule des diérences nies

f′′(x) f(x+h) +f(x−h)−2f(x)

h2 .

Vérier le comportement de l'approximation quandhvarie sur la fonctionf de la question 1.

6. Ecrire une fonction newton=function(f,x0,tol=1e-5,h=1e-8) qui prend pour argument une fonction f, une valeur initiale x0, un pas h et une tolérance tol, et qui calcule par la méthode de Newton une approximation du minimum def.

7. Retrouver une valeur approchée des extrema locaux def en utilisant la fonction R opti- mize. Cette fonction utilise la méthode du nombre d'or décrite ici :

https ://fr.wikipedia.org/wiki/M%C3%A9thode_du_nombre_d%27or Comprendre cet algorithme puis écrire une fonction R qui l'implémente.

8. Comparer la vitesse de convergence des algorithmes d'optimisation vus dans les questions précédentes. On pourra comparer le nombre d'itération nécessaire pour obtenir une pré- cision tol donnée. On pourra aussi utiliser la commande R system.time pour obtenir les temps de calcul eectifs. Quel algorithme est le plus ecace ?

Exercice 2 (extrait de l'examen d'informatique 2014-2015)

1. Tracer sur un même graphique le graphe de la fonction f(x) = x2cos(x) en noir et la droitey =x en rouge. On restreindra la fenêtre graphique aux intervalles x [10,10]. Reproduire schématiquement le graphique sur la copie.

2. Trouver toutes les racines de l'équationx2cos(x) =x sur l'intervalle[10,10]. Exercice 3 (extrait de l'examen d'informatique 2009-2010)

Soitf la fonction dénie parf(x) =log(x(1−x))∗sin(2πx) pourx∈[0,1].

1. Tracer cette fonction à l'aide de R. On donnera les commandes utilisées et on reproduira rapidement le graphique obtenu.

2. Cette fonction possède t'elle des extrema locaux ? Si oui, utiliser R pour en donner la valeur numérique. On donnera les commandes utilisées.

3. Utiliser R pour calculer∫1

0 f(x)dx. On donnera les commandes utilisées.

2

Références

Documents relatifs

f est une fonction strictement

Dans les conditions de cette épreuve, on considère qu'une personne est en très bonne condition physique lorsque la durée pendant laquelle son cœur bat à plus de 1,5 fois sa vitesse

La fonction f dénie dans la PARTIE A représente la fonction de demande d'un produit ; elle met en correspondance le prix f (x) exprimé en milliers d'euros et la quantité x , exprimée

[r]

a) l’intervalle dans lequel doit se situer la production x pour que l’entreprise réalise un bénéfice positif ; b) la production x 0 pour laquelle le bénéfice est maximal. Quel est

Il faut comparer les ordonnées de deux points de même abscisse, l’un sur C f , l’autre sur (D)... En discutant suivant les valeurs du réel m, trouver graphiquement le nombre

[r]

Alors que, dans le cas général, on se « contente » de … l’inégalité de Cauchy-Schwarz … On en déduira donc l’existence d’une certaine dépendance linéaire. On va préciser