Programmes convertis en Scilab – Épreuves 2010 – Corrigé
Ecricome 2010 : Exercice 2 :
On considère l’application 𝜑 définie sur ℝ∗ par : 𝜑(𝑥) = 𝑙𝑛(𝑥) − 𝑙𝑛(𝑥 + 1) +1 𝑥 1. Montrer que l’équation 𝜑(𝑥) = 1 admet une unique solution 𝛼 sur ℝ∗ et que
1
3< 𝛼 < 1 2
2. Écrire un programme qui permet d’encadrer 𝛼 dans un intervalle d’amplitude 10 .
On va raisonner par dichotomie : on construit deux suites (𝑎 ) et (𝑏 ) qui encadrent 𝛼, on calcule l’écart 𝑏 − 𝑎 et on s’arrête lorsqu’il est inférieur ou égal à 10 .
La fonction 𝜑 étant décroissante, phi((a+b)/2)<1 signifie que 𝜑(𝑎) > 1 > 𝜑 et donc que 𝑎 < 𝛼 <
function [z]=phi(x), z=log(x)-log(x+1)+1/x endfunction
a=1/3,b=1/2
while b-a>10^-3 do if phi((a+b)/2)<1 then b=(a+b)/2 else a=(a+b)/2 end
end
disp(b,a)
EML 2010 : Exercice 2 :
II. 3. Écrire un programme en Scilab qui permet de déterminer et d’afficher la plus petite valeur de 𝑛 pour laquelle on a : 𝑢 ≤ 10 .
u=1,n=0
while u>10^-3 do u=u-log(1+u^2), n=n+1 end
disp(n)
Edhec 2010 : Exercice 3 :
3. (e) Écrire un programme, en n’utilisant pas la fonction grand mais seulement la fonction rand, qui simule les valeurs prises par la variable aléatoire 𝑌.
On crée une fonction qui simule les valeurs prises par une variable de loi exponentielle de paramètre 1 en utilisant Z :
function [z]=expo(x), z=-log(1-rand()) endfunction
Problème : Partie 2
3. On rappelle que grand(1,1,’uin’,1,n) renvoie un entier compris entre 1et n.
Compléter le programme suivant pour qu’il simule l’expérience aléatoire décrite dans cette partie et pour qu’il affiche la valeur de la variable 𝑋 , l’entier k étant entré au clavier par l’utilisateur.
k=input(‘entrer un entier naturel k non nul :’) X=grand(1,1,’uin’,1,3)
for i=2:k do tirage=grand(1,1,’uin’,1,3) if X==1 then X=tirage
else if tirage <> X then X=1 end
end end
disp(X)
4. (h) Écrire une fonction Scilab, notée esp, qui renvoie 𝐸(𝑋 ) à l’appel de esp(k).
function [z]=esp(k) z=7/4-3/4*(-1/3)^k
Remarque : cette fonction avait plus d’intérêt en Pascal…