TD 12 : Scilab
Exercice 1 : Manipulations 1) Notons 𝑥 = 1
√2𝜋𝑒− 1,5
2
2 et 𝑦 = ln(1 + 3√2)
Compléter les instructions x=... et y=... afin que les variables x et y soient affectées des réels définis ci-dessus.
2) Quel est l’affichage à l’issue de la ligne d’instructions suivante ?
--> x=5 , y=%pi , floor(y) , z=ans+x , ans=ans-3 , x-2 , x=ans-x
Exercice 2 : On considère le programme (script) suivant :
a=input(‘entrez la valeur de a :’) b=input(‘entrez la valeur de b :’) c=input(‘entrez la valeur de c :’) c=a+b , b=a+c , a=a*c
disp(c,b,a)
L’utilisateur en entré les valeurs 2, 3 et 4 au clavier.
Quel est alors l’affichage à l’issue de l’instruction disp(c,b,a) ?
Exercice 3 : Écrire un programme permettant d’échanger le contenu de deux variables.
Exercice 4 :
1) Notons, pour tout entier naturel non nul 𝑛, 𝑆𝑛 = ∑ 1 𝑘2
𝑛
Écrire un programme qui calcule et affiche la valeur de 𝑆𝑘=1𝑛 pour un entier naturel 𝑛 non nul entré au clavier par l’utilisateur.
2) Notons, pour tout entier naturel non nul 𝑛, 𝑃𝑛 = ∏ (1 + 1 𝑘2)
𝑛
𝑘=1
Écrire un programme qui calcule et affiche la valeur de 𝑃𝑛 pour un entier naturel 𝑛 non nul entré au clavier par l’utilisateur.
3) Soit (𝑢𝑛) la suite définie par 𝑢0 = 2 et , pour tout entier naturel 𝑛, 𝑢𝑛+1 = 1 − 𝑒−𝑢𝑛
a) Écrire un programme qui calcule et affiche la valeur de 𝑢𝑛 pour un entier naturel 𝑛 entré au clavier par l’utilisateur.
b) Écrire un programme qui calcule et affiche les termes 𝑢0, 𝑢1, … , 𝑢𝑛 pour un entier naturel 𝑛 entré au clavier par l’utilisateur.
Exercice 5 :
Soit (𝑢𝑛) la suite définie par 𝑢0 = 1 et , pour tout entier naturel 𝑛, 𝑢𝑛+1 = 1
2(𝑢𝑛+ 2 𝑢𝑛) On admet que la suite (𝑢𝑛) converge vers √2.
Écrire un programme qui calcule et affiche le plus petit entier naturel 𝑛0 tel que |𝑢𝑛0− √2| < 𝜀 pour un réel 𝜀 (aussi petit soit-il) entré au clavier par l’utilisateur.
Exercice 6 :
Écrire une fonction Scilab qui renvoie le plus petit de deux réels 𝑎 et 𝑏.
Exercice 7 :
1) Écrire une fonction Scilab qui, pour tout entier naturel 𝑛 renvoie 𝑛!
2) Écrire une fonction Scilab qui, pour tout couple d’entiers naturels (𝑛, 𝑘) renvoie (𝑛 𝑘).
Exercice 8 : Suite de Fibonacci
Soit (𝑢𝑛) la suite définie par 𝑢0 = 1, 𝑢1 = 1 et , pour tout entier naturel 𝑛, 𝑢𝑛+2 = 𝑢𝑛+1+ 𝑢𝑛
Écrire un programme qui calcule et affiche les termes 𝑢0, 𝑢1, … , 𝑢𝑛 pour un entier naturel 𝑛 ≥ 2 entré au clavier par l’utilisateur.
Exercice 9 : Conjecture de Syracuse
Soit 𝑘 un entier naturel et (𝑢𝑛) la suite définie par 𝑢0 = 𝑘 et , pour tout entier naturel 𝑛, 𝑢𝑛+1 = {
𝑢𝑛
2 si 𝑢𝑛 est pair 3𝑢𝑛+ 1 si 𝑢𝑛 est impair
La conjecture de Syracuse énonce que, quel que soit la valeur attribuée à l’entier 𝑘, on finit toujours par trouver un terme de la suite égal à 1, le suivant étant égal à 4 puis 2 puis 1 …
Cette conjecture a été énoncée il y a plus de 60 ans et n’a toujours pas été démontrée…
Écrire un programme qui calcule et affiche le plus petit entier 𝑛 tel que 𝑢𝑛 = 1 pour un entier naturel 𝑘 entré au clavier par l’utilisateur.
Exercice 10 :
1) Soient 𝑎 et 𝑏 deux entiers naturels tels que 𝑎 < 𝑏. Écrire un programme, en n’utilisant pas la fonction grand mais seulement la fonction rand, qui simule les valeurs prises par une variable aléatoire de loi uniforme sur ⟦𝑎, 𝑏⟧.
2) Soient 𝑛 ∈ ℕ∗ et ∈ ]0,1[ . Écrire un programme, en n’utilisant pas la fonction grand mais seulement la fonction rand, qui simule les valeurs prises par une variable aléatoire de loi ℬ(𝑛, 𝑝).
Exercice 11 : D’après ECRICOME 2014
On considère la fonction 𝑓 définie sur [0; +∞[ par : 𝑓(𝑥) = {
𝑥
ln(1 + 𝑥) si 𝑥 ∈ ]0; +∞[
1 si 𝑥 = 0
ainsi que la suite (𝑢𝑛)𝑛∈ℕ définie par : 𝑢0 = 𝑒 et ∀𝑛 ∈ ℕ, 𝑢𝑛+1 = 𝑓(𝑢𝑛)
1. Déterminer le signe de 𝑓 sur l’intervalle [0; +∞[. En déduire que, pour tout entier naturel 𝑛, 𝑢𝑛 existe.
2. Écrire un programme qui, pour une valeur 𝑁 fournie par l’utilisateur, calcule et affiche 𝑢𝑁.
Exercice 12 : D’après EDHEC 2013
Soit (𝑢𝑛) la suite définie par 𝑢0 = 0 et , pour tout entier naturel 𝑛, 𝑢𝑛+1 = 𝑢𝑛2 + 1 2 1. (a) Montrer que, pour tout entier naturel 𝑛, 0 ≤ 𝑢𝑛 ≤ 1.
(b) Étudier les variations de la suite (𝑢𝑛).
(c) Déduire des questions précédentes que la suite (𝑢𝑛) converge et donner sa limite.
2. Écrire un programme qui calcule et affiche la plus petite valeur de 𝑛 telle que 0 < 1 − 𝑢𝑛 < 10−3.
Exercice 13 : D’après ECRICOME 2011
On considère l’application 𝜑 définie sur ℝ+ par 𝜑(𝑥) = {1 − 𝑥2ln(𝑥) si 𝑥 > 0 1 sinon
On considère deux suites (𝑎𝑛) et (𝑏𝑛)définies par 𝑎0 = √2, 𝑏0 = 2 et, pour tout entier naturel 𝑛 : Si 𝜑(𝑎𝑛)𝜑 (𝑎𝑛+ 𝑏𝑛
2 ) < 0, alors 𝑎𝑛+1 = 𝑎𝑛 et 𝑏𝑛+1 =𝑎𝑛+ 𝑏𝑛 2 Si 𝜑(𝑎𝑛)𝜑 (𝑎𝑛+ 𝑏𝑛
2 ) ≥ 0, alors 𝑎𝑛+1 = 𝑎𝑛+ 𝑏𝑛
2 et 𝑏𝑛+1= 𝑏𝑛 Écrire un programme qui calcule et affiche 𝑎7 et 𝑏7.
(On pourra créer une fonction phi définie dans l’énoncé)
Exercice 14 : D’après ECRICOME 2010
On considère l’application 𝜑 définie sur ℝ+∗ par :
𝜑(𝑥) = ln(𝑥) − ln(𝑥 + 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−3.
Exercice 15 : D’après EDHEC 2010
On considère la fonction 𝑓 définie sur ℝ par : 𝑓(𝑥) = { 1
2𝑥2 si 𝑥 ≤ −1 ou 𝑥 ≥ 1 0 sinon
Ainsi qu’une variable aléatoire 𝑋 définie sur un espace probabilisé (Ω, 𝒜, 𝑃) admettant 𝑓 comme densité.
On a déjà démontré, dans le TD9, que 𝑌 = ln(|𝑋|) suit la loi exponentielle de paramètre 1.
En posant 𝑍 = − ln(1 − 𝑈) où la variable 𝑈 suit la loi uniforme sur [0; 1[, on a montré de même que 𝑍 suit la loi exponentielle de paramètre 1.
É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 𝑌.
Exercice 16 :
On rappelle que 𝑒 = ∑ 1 𝑘!
+∞
𝑘=0
et on admet que, ∀𝑛 ≥ 1, |𝑒 − ∑ 1 𝑘!
𝑛
𝑘=0
| ≤ 1 𝑛. 𝑛!
Compléter le programme suivant afin qu’il affiche une valeur approchée du nombre 𝑒 à 10−5 près : n=0, fact=1, erreur=1, s=1
while erreur >0,00001 n=n+1
fact=...
s=s+1/fact
erreur=...
end disp(s)
Exercice 17 : D’après EDHEC 2014
Dans cet exercice, 𝜃 désigne un réel strictement positif et 𝑛 un entier naturel supérieur ou égal à 2.
On considère une variable aléatoire 𝑋 prenant ses valeurs dans ℕ et dont la loi est donnée par :
∀𝑘 ∈ ℕ, 𝑃(𝑋 = 𝑘) = 1
1 + 𝜃( 𝜃 1 + 𝜃)
𝑘
On pose 𝑌 = 𝑋 + 1. On a déjà démontré que Y suit la loi géométrique de paramètre 1
1 +𝜃. Compléter la fonction Scilab suivante pour qu’elle simule la loi d’une variable aléatoire X : function [X]=simul(theta),
Y=1
while ... do Y=Y+1, end X=...
endfunction
Exercice 18 : D’après ECRICOME 2014
Dans cet exercice, 𝑝 désigne un réel de l’intervalle ]0;1[.
On dispose dans tout l’exercice d’une même pièce dont la probabilité d’obtenir PILE vaut 𝑝.
On effectue une succession illimitée de lancers de la pièce.
1. Écrire une fonction en Scilab d’en-tête :
function [x]=lancer(p) qui crée un nombre aléatoire dans l’intervalle [0;1] et renvoie 1 si ce nombre aléatoire est strictement inférieur à 𝑝 et 0 sinon.
2. Écrire une fonction en Scilab d’en-tête :
function [x]=premier_pile(p) qui simule autant de lancers de la pièce que nécessaire jusqu’à l’obtention du premier PILE et renvoie le nombre de lancers effectués.
Indication : si on le souhaite, on pourra utiliser la fonction lancer en la répétant convenablement.
3. Écrire un programme en Scilab qui demande un réel 𝑝 à l’utilisateur, puis qui simule autant de lancers de la pièce que nécessaire jusqu’à l’obtention du second PILE, et affiche le nombre de FACE obtenus en tout.
Indication : on pourra utiliser la fonction premier_pile en la répétant convenablement.