Vous êtes sur la page 1sur 7

Samedi 4 février 2023

4 heures
Mathématiques Appliquées

Épreuve de Mathématiques I
Stratégie de vente d’actions
______________

La présentation, la lisibilité, l’orthographe, la qualité de la rédaction et la précision des raisonnements entre-


ront pour une part importante dans l’appréciation des copies.

Un banquier s’est imposé de vendre une action en dix jours ouvrables. Chaque jour, suivant le cours du
jour, il décide de vendre ou d’attendre dans l’espoir de vendre mieux plus tard. S’il n’a pas réalisé la vente
au neuvième jour, il s’impose de vendre son action au dixième jour, au cours de ce dixième jour. Quelle
stratégie va-t-il choisir pour maximiser le prix de sa vente ?
Le problème ci-dessous propose, dans un cadre théorique précis, d’évaluer diverses stratégies pour de tels
choix en chaîne.
On considère une suite d’expériences aléatoires identiques et indépendantes, à laquelle on associe une
suite (𝑋𝑖 )𝑖∈ℕ∗ de variables aléatoires, définies sur un espace probabilisé (Ω, 𝒜, 𝑃), indépendantes et toutes
de même loi.
On considère un entier naturel 𝑛 non nul.
Si 𝑛 est égal à 1, on définit le gain 𝐺1 par : 𝐺1 = 𝑋1 .
Si 𝑛 est supérieur ou égal à 2, on se donne pour chaque entier 𝑖 de ⟦1, 𝑛 − 1⟧, un seuil 𝜎𝑖 et on définit le
gain 𝐺𝑛 de la façon suivante :
⦁ si, pour tout entier 𝑖 strictement inférieur à 𝑛, 𝑋𝑖 < 𝜎𝑖 , alors 𝐺𝑛 = 𝑋𝑛
⦁ sinon, 𝐺𝑛 = 𝑋𝑘 où 𝑘 est le plus petit rang 𝑖 tel que 𝑋𝑖 ≥ 𝜎𝑖 .
Le gain 𝐺𝑛 est une variable aléatoire dont l’espérance est notée 𝑔𝑛 .
(Dans l’exemple introductif du banquier, 𝑛 est égal à 10, 𝑋𝑖 représente le cours de l’action au jour de rang 𝑖
et 𝐺10 est égal au prix de la vente de l’action).
On étudie en partie I, trois stratégies dans le cas d’expériences aléatoires discrètes et en partie II, trois
stratégies dans le cas d’expériences aléatoires continues. On étudie dans le préliminaire une suite numé-
rique que l’on retrouvera à la fin de la partie II. Les parties I et II sont dans une large mesure indépen-
dantes.
Préliminaire
On définit la suite (𝑢𝑛 )𝑛∈ℕ∗ par :
1 1 + 𝑢𝑛2
𝑢1 = et ∀𝑛 ∈ ℕ∗ , 𝑢𝑛+1 =
2 2
1. On considère les scripts Python suivants ainsi que les résultats de leurs exécutions.

import numpy as np
import matplotlib.pyplot as plt
u=np.zeros(301)
u[1]=1/2
for k in range(1,300) :
u[k+1]=(1+u[k]**2)/2
v=np.arange(1,301)
plt.plot(v,u[1:301],'.')
plt.show()

import numpy as np
import matplotlib.pyplot as plt
u=np.zeros(3001)
u[1]=1/2
for k in range(1,3000) :
u[k+1]=(1+u[k]**2)/2
v=np.arange(1,3001)
plt.plot(v,v*(1-u[1:3001]),'.')
plt.show()

Quelle conjecture peut-on déduire du premier graphique quant à la convergence de la suite (𝑢𝑛 )𝑛∈ℕ∗ ?
Conjecturer à partir du second graphique des réels 𝛼 et 𝛽 tels que, au voisinage de l’infini :
𝛽 1
𝑢𝑛 = 𝛼 + +𝑜( )
𝑛 𝑛
2.a) Montrer que, pour tout entier 𝑛 ∈ ℕ∗ , 1⁄2 ≤ 𝑢𝑛 < 1.
2.b) Montrer que la suite (𝑢𝑛 )𝑛∈ℕ∗ est convergente et déterminer sa limite.
3. On pose, pour tout entier naturel 𝑛 non nul, 𝑣𝑛 = 1 − 𝑢𝑛 .
3.a) Montrer que, pour tout entier naturel 𝑛 non nul, on a :
1 1 1
− =
𝑣𝑛+1 𝑣𝑛 2 − 𝑣𝑛
puis, en déduire que, pour tout 𝑛 de ℕ∗ ,
1 𝑛+3

𝑣𝑛 2
3.b) Montrer que :
1 1 𝑥
∀𝑥 ∈ [0,1], ≤ +
2−𝑥 2 2
puis, en déduire que :
1 1 1 1
∀𝑛 ∈ ℕ∗ , − ≤ +
𝑣𝑛+1 𝑣𝑛 2 𝑛 + 3
3.c)
(i) Montrer que pour tout réel 𝑥 ∈ [0,1[, ln(1 − 𝑥) ≤ −𝑥 et en déduire que pour tout entier 𝑛 ≥ 2,
𝑛
1
∑ ≤ ln(𝑛)
𝑘
𝑘=2
(ii) En déduire alors que :
1 𝑛+2
∀𝑛 ∈ ℕ∗ , ≤ + ln(𝑛 + 2)
𝑣𝑛 2
3.d) Déterminer alors un équivalent de 𝑣𝑛 quand 𝑛 tend vers +∞ et valider la conjecture faite à la ques-
tion 1.

Partie I. Exemples d’expériences aléatoires discrètes


Dans cette partie, 𝑟 est un entier impair, supérieur ou égal à 3, et on suppose que, pour tout entier naturel
𝑖 non nul, la variable aléatoire 𝑋𝑖 est discrète, de loi uniforme sur l’ensemble
1 2 𝑟−1
{0, , , … , , 1}
𝑟 𝑟 𝑟
𝑘
∎ Question préliminaire. Soit 𝑖 ∈ ⟦0, 𝑛⟧. Pour tout entier 𝑘 ∈ ⟦0, 𝑟⟧, que vaut 𝑃 (𝑋𝑖 = ) ?
𝑟
1. Première stratégie.
On pose 𝜎1 = 0.
1.a) Quelle est alors la variable aléatoire 𝐺𝑛 ?
1.b) Calculer alors l’espérance 𝑔𝑛 de 𝐺𝑛 ?
2. Deuxième stratégie.
On pose, pour tout entier naturel 𝑛 supérieur ou égal à 2 et tout entier 𝑖 de {1,2, … , 𝑛 − 1}, 𝜎𝑖 = 0,5.
2.a) Montrer que 𝑃(𝑋1 < 0,5) = 1⁄2.
2.b) Exprimer, en fonction des variables 𝑋1 , … , 𝑋𝑛 , l’événement [𝐺𝑛 = 𝑗⁄𝑟 ] en distinguant les cas :
𝑟−1 𝑟+1
𝑗 ∈ ⟦0, ⟧ et 𝑗 ∈ ⟦ , 1⟧
2 2
En déduire que la loi de 𝐺𝑛 est donnée par :
𝑟−1 𝑗 2 1 𝑛
∀𝑗 ∈ ⟦0, ⟧, 𝑃 (𝐺𝑛 = ) = ( )
2 𝑟 𝑟+1 2
𝑟+1 𝑗 2 1 𝑛
∀𝑗 ∈ ⟦ , 1⟧ 𝑃 (𝐺𝑛 = ) = (1 − ( ) )
2 𝑟 𝑟+1 2

2.c) Calculer 𝑔𝑛 . Montrer que la suite (𝑔𝑛 )𝑛∈ℕ∗ est croissante.


2.d) Prévoir la limite de 𝑔𝑛 lorsque 𝑛 tend vers +∞, puis vérifier par le calcul.
2.e) Déterminer la limite de 𝑔𝑛 lorsque 𝑟 tend vers +∞.
3. Troisième stratégie.
On pose, pour tout entier naturel 𝑛 supérieur ou égal à 2 et tout entier 𝑖 de ⟦1, 𝑛 − 1⟧, 𝜎𝑖 = 1.
3.a) Exprimer, en fonction des variables 𝑋1 , … , 𝑋𝑛 , l’événement [𝐺𝑛 = 𝑗⁄𝑟 ] pour tout 𝑗 de ⟦0, 𝑟 − 1⟧. En
déduire alors la loi de 𝐺𝑛 .
3.b) Montrer que
1 𝑟 𝑛−1
𝑔𝑛 = 1 − ( )
2 𝑟+1
Vérifier alors que la suite (𝑔𝑛 )𝑛∈ℕ∗ est croissante.
3.c) Prévoir la limite de 𝑔𝑛 lorsque 𝑛 tend vers +∞, avec 𝑟 fixé. Vérifier par le calcul.
3.d) Déterminer la limite de 𝑔𝑛 quand 𝑟 tend vers +∞, avec 𝑛 fixé.
4. À l’aide des graphiques donnés en annexe à la fin du sujet, indiquer sans justification la meilleure
stratégie dans chacun des cas suivants :
4.a) Le banquier dispose de 10 jours et le prix de l’action est fixé parmi 0, 0.2, 0.4, 0.6, 0.8, 1.
4.b) Même question s’il ne dispose que de 5 jours (avec le même échelonnement de prix)
4.c) Le banquier dispose de 15 jours et le prix de l’action est fixé parmi 0, 1/9, 2/9, …., 8/9, 1.

Partie II. Exemples d’expériences aléatoires continues


Dans cette partie, on suppose que, pour tout entier naturel 𝑖 non nul, la variable aléatoire 𝑋𝑖 suit une loi
uniforme sur [0,1]. On note 𝐹𝑛 la fonction de répartition de 𝐺𝑛 .
5. Simulation Python
On considère la fonction gain suivante, qui prend en argument d’entrée une variable seuil contenant la
liste des seuils pour les jours 1,2, … ,9, qui simule l’évolution du cours de l’action (sa cote) durant les 10
jours et qui renvoie la valeur du prix retiré à l’issue de sa vente selon le protocole décrit par l’énoncé.
• la variable cote contient la liste des prix proposés pour l’action au cours des 10 jours ;
• la variable J désigne l’indice du jour courant.
On rappelle que le langage Python commence l’indexation à 0, si bien que les jours 1,2, … ,10 sont indexés
par Python : 0,1, … ,9.
Compléter le programme de sorte que la fonction renvoie ce qui est annoncé.

import numpy.random as rd
def gain(seuil) :
cote=rd.random(10)
J=0
while (J<9) and (cote[J]<seuil[J]) :
J=J+1
return ?????

6. Rappeler 𝐹 la fonction de répartition de 𝑋1 .


7. Première stratégie.
On pose 𝜎1 = 0. Que vaut alors l’espérance 𝑔𝑛 de la variable aléatoire 𝐺𝑛 ?
8. Deuxième stratégie (seuils constants).
Soit 𝛼 un réel de [0,1[. On pose, pour tout entier 𝑛 supérieur ou égal à 2 et tout 𝑖 de ⟦1, 𝑛 − 1⟧, 𝜎𝑖 = 𝛼.
8.a) Que vaut 𝐹𝑛 (𝑡) si 𝑡 n’appartient pas à [0,1[ ?
8.b) Pour 𝑡 ∈ [0, 𝛼[, décrire l’événement [𝐺𝑛 ≤ 𝑡] et en déduire 𝐹𝑛 (𝑡).
8.c) Pour 𝑡 ∈ [𝛼, 1[, décrire l’événement [𝐺𝑛 > 𝑡] et en déduire 𝐹𝑛 (𝑡).
8.d) En déduire que la variable aléatoire 𝐺𝑛 possède une densité 𝑓𝑛 , définie par :
1 − 𝛼𝑛
∀𝑡 ∈ [0, 𝛼[, 𝑓𝑛 (𝑡) = 𝛼 𝑛−1 , ∀𝑡 ∈ [𝛼, 1], 𝑓𝑛 (𝑡) = , ∀𝑡 ∉ [0,1], 𝑓𝑛 (𝑡) = 0
1−𝛼
8.e) Déterminer 𝑔2 et montrer que 𝑔2 est maximale pour une valeur de 𝛼 que l’on donnera.
8.f) On considère le programme suivant, ainsi que le schéma qu’il commande.
Dans ce programme, Alpha est une liste contenant des valeurs de 𝛼 (équiréparties entre 0 et 1, espacées
d’un centième). La fonction gain est celle construite à la question 5.

import numpy.random as rd
import numpy as np
import matplotlib.pyplot as plt
Alpha=[k/100 for k in range(101)]
EspG=[]
for a in Alpha :
seuil=[a for k in range(10)]
G=[gain(seuil) for k in range(100000)]
EspG.append(np.mean(G))
plt.plot(Alpha,EspG)
plt.grid()
plt.show()

(i) Que contient la 𝑘-ème composante de la liste EspG ?

(ii) Justifier les valeurs au début de la courbe et à la fin.


(iii) Quel conseil peut-on donner au banquier s’il choisit cette stratégie de seuils constants ?
9. Troisième stratégie (seuils variables).
Soit (𝑎𝑘 )𝑘∈ℕ∗ une suite de réels telle que, pour tout entier naturel 𝑘 non nul, 0 ≤ 𝑎𝑘 < 1. Pour tout 𝑛 supé-
rieur ou égal à 2, et pour tout entier 𝑖 de ⟦1, 𝑛 − 1⟧, on pose : 𝜎𝑖 = 𝑎𝑛−𝑖 .
9.a) Montrer que 𝐺1 admet une densité et une espérance, et donner la valeur de 𝑔1 .
9.b) En utilisant les résultats de II.8, montrer que 𝐺2 admet une densité et une espérance, et donner la
valeur de 𝑔2 en fonction de 𝑎1 .
Déterminer alors la valeur de 𝑎1 qui maximise 𝑔2 .
9.c) Soit 𝑛 un entier supérieur ou égal à 2.
On suppose que 𝐺𝑛 admet une densité, notée 𝑓𝑛 . On suppose de plus que, pour tout entier 𝑘 de ⟦1, 𝑛⟧, 𝐺𝑘
possède une espérance 𝑔𝑘 vérifiant 𝑔𝑘 ∈ [0,1[ et que, pour tout entier 𝑘 de ⟦1, 𝑛 − 1⟧, 𝑎𝑘 = 𝑔𝑘 .
Ainsi, la variable 𝐺𝑛+1 est associée aux seuils : 𝜎1 = 𝑎𝑛 , 𝜎2 = 𝑔𝑛−1 ,…, 𝜎𝑛 = 𝑔1 .
(i) Montrer que :
∀𝑡 ∈ [0, 𝑎𝑛 [, 𝐹𝑛+1 (𝑡) = 𝑎𝑛 𝐹𝑛 (𝑡)
∀𝑡 ∈ [𝑎𝑛 , 1[, 𝐹𝑛+1 (𝑡) = 𝑡 − 𝑎𝑛 + 𝑎𝑛 𝐹𝑛 (𝑡)
(ii) En déduire que 𝐺𝑛+1 admet une densité 𝑓𝑛+1 et donner une relation entre 𝑓𝑛+1 et 𝑓𝑛 .
(iii) En déduire que 𝐺𝑛+1 admet une espérance 𝑔𝑛+1 vérifiant :
1
𝑔𝑛+1 = 𝑎𝑛 𝑔𝑛 + (1 − 𝑎𝑛2 )
2
(iv) Déterminer alors la valeur de 𝑎𝑛 qui maximise 𝑔𝑛+1 et montrer que, pour cette valeur, on a :
1 + 𝑔𝑛2
𝑔𝑛+1 =
2
10. On considère le script suivant (on suppose déclarée la fonction gain et importées les bonnes li-
brairies) :

gn=[1/2]
for k in range(1,9) :
gn.append((1+gn[-1]**2)/2)
seuil=[gn[-k] for k in range(1,10)]
G=[gain(seuil) for k in range(10000)]
print(np.mean(G))
print((1+gn[8]**2)/2)

À son exécution, il est affiché :

0.8614
0.8610

10.a) Que contient la liste gn ?

10.b) Que représente la liste seuil pour la liste gn ?

10.c) Que représente le premier des deux résultats affichés ?


10.d) Que représente le second des deux résultats affichés ? Justifier sa proximité avec le premier.
11. Quelle stratégie conseiller au banquier ?
Annexe
On donne le programme suivant ainsi que son exécution pour les valeurs de 𝑛 entrées par l’utilisateur
égales à 5, 10, 15 et 20 :

import numpy as np
import matplotlib.pyplot as plt

n=int(input("Entrer n : "))
R=np.arange(1,22,2)

g1=[1/2 for k in range(21)]


g2=[(3*r+1)/(4*r)-(r+1)/(2*r)*(1/2)**n for r in R]
g3=[1-(1/2)*(r/(r+1))**(n-1) for r in R]

plt.title("n fixé égal à "+str(n))


plt.xlabel("En abscisses : r")
plt.plot(R,g1,'k',label="g1")
plt.plot(R,g2,'k--',label="g2")
plt.plot(R,g3,'k.-',label="g3")
plt.legend()

plt.show()

Vous aimerez peut-être aussi