(c) Lorsque f est la densité suivante : f(p) = 52 × exp(−5|p− 0.5|). On veillera à donner un titre à chacun des graphes, ainsi que préciser les axes des abscisses et des ordonnées. On pourra créer trois fonctions (qui acceptent des vecteurs en entrée) prior pour p 7→ f(p), likelihood pour p 7→ f(y|p) et post pour p 7→ f(p|y). A partir de la loi a posteriori f(p|y) on peut définir un estimateur de p, on peut prendre comme estimateur de p le mode de la loi a posteriori 1 : pˆ = argmaxpf(p|y). On va étudier cet estimateur dans les questions qui suivent. 3. Coder une fonction gd qui trouve un extrema local d’une fonction sur un intervalle I ⊂ R par la méthode dite de descente de gradient. Cette approche utilise le fait que le maximum est à chercher parmi les points d’annulation de la dérivée. On pourra aussi utiliser que la dérivée d’une fonction f au point x0 s’approche par df(x0) = (f(x0 + h)− f(x0 − h)/(2h), pour un choix de h petit. On en déduit l’algorithme dit de descente de gradient suivant : [Initialisation. ] On choisit une valeur initiale x0 ∈ I. [Itérations. ] On met à jour la valeur xk par xk+1 donné par : xk+1 = xk + γdf(xk), pour un paramètre γ à calibrer. On pourra prendre γ = 1/100 par défaut. [Fin. On se fixe un critère d’arrêt, soit petit et on s’arrête lorsque : |df(xk)| ≤ . Par précaution, on ajoute aussi un nombre d’itération maximal N = 1000. Expliquer pourquoi cet algorithme permettra de calculer pˆ. Coder une fonction qui prend en argument une fonction f , un point x0, les paramètres h et γ, la résolution et renvoie un point d’annulation de la dérivée de f . Tester votre fonction gd sur la fonction g(x) = 1−x2 et comparer le résultat obtenu avec la fonction optimize de Python. Bonus : Discuter les limitations d’un tel algorithme. 4. Calculer l’estimateur pour les différents priors considérés à la question 2. Pour trouver l’argument maximal de l’a posteriori le dénominateur joue-t-il un rôle ? Le choix du prior semble-t-il influencer l’estimation ? 1. D’autres estimateurs sont possibles comme la médiane a posteriori par exemple. 2 5. (Bonus) L’estimateur ainsi obtenu vous semble-t-il consistant ? Etablir et mettre en œuvre un protocole permettant d’offrir une justification numérique. Pour cela, à la place des données (1) utilisées jusqu’à présent, on pensera à générer un échantillon Y ∼ B(n, p) pour différentes valeurs de n et p (par exemple p = 0.75). Que constate-t-on avec le second prior de la question 2 si p = 1/3 ? 2 Exercice 2 (R) 2.1 Préliminaires : Fractions continues Soit a = (a0, . . . , an) une séquence finie d’entiers strictement positifs, la fraction continue associée à a est par définition le nombre rationnel f = a0 + 1 a1 + 1 a2+ 1 a3+ 1 a4+... (3) Par exemple, la fraction rationnelle associée à (3, 1, 1, 5) est 3 + 1 1 + 1 1+ 15 On dira que a est la réduite de f . Pour tout nombre rationnel f il existe une réduite a telle que f admet la représentation donnée par l’équation (3). Par exemple 15644 a pour réduite la séquence (3, 1, 1, 5) de l’exemple ci-dessus. Dans cet exercice vous serez amenés à calculer la réduite d’un nombre rationnel à partir de l’algorithme de division euclidienne. Par souci de simplicité on considérera des rationnels non négatifs. 2.2 Questions 6. On rappelle que à deux entiers non négatifs a, b, b > 0, on associe de façon unique deux entiers non négatifs q, r tels que a = qb + r et r < b. Pour calculer le quotient q et le reste r de la division euclidienne de a par b on pourra soustraire b à a jusqu’au moment où on obtient une différence inférieure à b : cette différence donnera r et le nombre de soustractions faites donnera q. Plus précisément, on considère l’algorithme de division euclidienne suivant : [Entrée. ] Deux entiers a, b avec a ≥ 0 et b > 0 [Initialisation. ] r ← a et q ← 0 [Itérations. ] Tant que r ≤ b : r ← r − b et q ← q + 1 [Sortie. ] Rendre r, q Coder une fonction div_euclid qui implémente l’algorithme ci-dessus. Dans la fonction, on ajoutera une commande qui teste si l’argument b mis en entrée est bien strictement positif et qui renvoie le message d’erreur "Erreur: b doit être strictement positif" sinon. On ajoutera également une commande qui teste si l’argument a est bien non négatif et qui renvoie le message d’erreur "Erreur: a ne peut pas être négatif" sinon. Comme vérification, calculer le quotient et le reste de la division de 77708431 par 2640858 et comparer ces résultats à ceux obtenus avec les fonctions standard de R. 7. On considère un nombre rationnel non négatif f0f1 , et on cherche la réduite qui lui est associée. On peut commencer par observer que par division euclidienne il existe deux entiers a0 et f2 < f1 t.q. f0 = a0f1 + f2. Si f2 = 0 on a f0f1 = a0 et (a0) est la réduite cherché. Si f2 > 0 on a f0 f1 = a0 + 1 f1 f2 et on peut procéder et trouver par division euclidienne deux entiers a1 et f3 < f2 tels que, si f3 > 0, f1 f2 = a1 + 1 f2 f3 , 3 ce qui donne f0 f1 = a0 + 1 a1 + 1 f2 f3 . On continue de cette sorte en faisant à chaque itération la division euclidienne de fi−1 par fi pour obtenir ai−1 et fi+1 jusqu’au moment où fn+1 = 0. Par construction, la séquence (a0, . . . , fn) est la réduite de f0f1 . Coder une fonction reduite qui prend en argument deux entiers f0 ≥ 0, f1 > 0 et implémente la procédure décrite ci-dessus pour rendre en sortie la réduite de f0f1 . Comme vérification on calculera la réduite de 777084312640858 . 8. Coder une fonction frac_cont qui prend en entrée une séquence d’entiers strictement positifs a = (a0, . . . , an) et rend en sortie la valeur de la fraction continue associé à a en notation décimale (Rappel : la notation décimale de 12 est 0.5.) Comme vérification on montrera que la fraction continue associée à la réduite de 777084312640858 a la même valeur en notation décimale de 777084312640858 . 9. Bonus : Si (a0, . . . an) est la réduite d’un nombre rationnel f , pour tout 0 ≤ p ≤ n la séquence (a0, . . . , ap) est dite réduite d’ordre p de f . Les fractions continues associées aux réduites d’ordre p < n donnent des approximations de f . Pour tout 0 ≤ p < n calculer l’approximation de f = 777084312640858 donnée par la fraction continue associée à la réduite d’order p de f et la comparer avec la valeur de f . On montrera à l’aide d’un graphique approprié que ces approximations sont de plus en plus précises pour des valeurs de p de plus en plus grandes. 4 欢迎咨询51作业君