• Aucun résultat trouvé

On rappelle que l’on a : ( )

N/A
N/A
Protected

Academic year: 2022

Partager "On rappelle que l’on a : ( )"

Copied!
7
0
0

Texte intégral

(1)

Durée : 1 heure

Corrigé

On rappelle que l’on a : ( )

0

( ) ( )

2

, cos 1

2 !

n n

n

x x x

n

+∞

=

∀ ∈ = ∑ − .

L’objectif principal de cet exercice est d’écrire un programme Python permettant d’obtenir une valeur approchée de cos ( ) x pour certaines valeurs de x à l’aide du développement précédent.

Pour tout x réel, on pose : u

n

( ) ( ) ( ) x = − 1

n

2 x n

2n

! , ( )

0

( ) ( )

2

1 2 !

n k k n

k

S x x

=

k

= ∑ − et

( ) cos ( ) ( )

n n

R x = xS x .

1. Montrer que pour tout réel de l’intervalle I = − ⎡ ⎣ 2 ; 2 ⎤ ⎦ la série ∑ u

n

( ) x vérifie le critère spécial des séries alternées. En déduire : ( ) ( )

2 2

cos 2 2 !

n n

x S x x

n

− ≤

+

+ .

Soit x fixé dans I = − ⎡ ⎣ 2 ; 2 ⎤ ⎦ .

On a immédiatement, l’exposant de x étant pair :

( )

2

, 0

2 ! x

n

n n

∀ ∈ ≥ et donc

( ) ( ) ( ) ( ) ( ) ( ( ( ) ) ) ( )

( )

( )

( )

2 1 2 1

2 2

1

,

1

1 1 0

2 ! 2 1 ! 2 ! 2 1 !

n n

n n

n n

n n

x x x x

n u x u x

n n n n

+ +

+

∀ ∈ ×

+

= − × − = − × ≤

+ + .

La série ∑ ( ) ( ) 1

n

2 x

2

n

n

! est bien une série alternée.

On a immédiatement, : ∀ ∈ n , u

n

( ) ( ) ( ) ( ) x = − 1

n

2 x n

2n

! = 2 x n

2n

! puis, pour x non nul,

( ) ( )

( )

( )

( )

( ) ( ) ( )

( )( )

2 1

2 2 2

1

2 2

2 1 ! 2 !

, 2 2 ! 2 2 2 1

2 !

n

n n

n n

n

x

u x n x n x

n u x x n x n n

n

+

+

+

+

∀ ∈ = = × =

+ + + .

Or :

( )( ) ( ) ( )

2 2 2

, 2 1

2 2 2 1 2 0 2 2 0 1 2 2

x x x

n n n

∀ ∈ ≤ = ≤ =

+ + × + × × + .

Ainsi, la suite ( u

n

( ) x )

n

est décroissante.

(2)

Si x = 0 , la suite ( u

n

( ) 0 )

n

est constante à partir de n = 1 et donc décroissante…

Pour montrer enfin que l’on a

n

lim u

n

( ) x 0

→+∞

= lorsque x est non nul (c’est immédiat lorsque x l’est), on peut utiliser la formule de Stirling.

On a : ( ) 2 n ! 2 2 n 2 n

2n

2 n 2 n

2n

e e

π π

+∞

⎛ ⎞ ⎛ ⎞

× × ⎜ ⎝ ⎟ ⎠ = × ⎜ ⎝ ⎟ ⎠

∼ et il vient alors :

( ) ( ) 2

2

!

2

2

2

1 2

2

2

n n n

n n

x x ex

u x

n n n n

n e

π π

+∞

⎛ ⎞

= ×⎜ ⎟ ⎛ ⎝ ⎞ ⎠ = ×⎜ ⎟ ⎝ ⎠

∼ .

Mais :

( ) ( )

( ) ( )

1

2

1 1

ln ln ln 2 ln 2 ln 2

2 2 2

1 ln 1 ln

2 ln ln 2

4 4

ex

n

n n ex n n

n n

n n ex n

n n

π π

π

⎡ × ⎛ ⎞ ⎤ = − − + × − ×

⎢ ⎜ ⎝ ⎟ ⎠ ⎥

⎢ ⎥

⎣ ⎦

⎛ ⎞

= − × ⎜ ⎝ + − + ⎟ ⎠

On a : 1 ln 1 ln

lim 0

4 4

n

n

n n

π

→+∞

⎛ + ⎞ =

⎜ ⎟

⎝ ⎠ et donc lim 1 ln 1 ln ln ( ) ln 2 ( )

4 4

n

n ex n

n n

π

→+∞

⎛ + − + ⎞ = +∞

⎜ ⎟

⎝ ⎠ .

Alors : lim 2 1 ln 1 ln ln ( ) ln 2 ( ) lim ln 1

2

4 4 2

n

n n

n ex

n ex n

n n n n

π

π

→+∞ →+∞

⎡ ⎤

⎡ − × ⎛ ⎜ + − + ⎞ ⎟ ⎤ = ⎢ × ⎛ ⎜ ⎞ ⎟ ⎥ = −∞

⎢ ⎝ ⎠ ⎥ ⎝ ⎠

⎣ ⎦ ⎢ ⎣ ⎥ ⎦ et

finalement : lim 1

2

lim ( ) 0

2

n

n n n

ex u x

n n π

→+∞ →+∞

⎡ × ⎛ ⎞ ⎤ = =

⎢ ⎜ ⎝ ⎟ ⎠ ⎥

⎢ ⎥

⎣ ⎦ .

Pour tout réel x de l’intervalle I = − ⎡ ⎣ 2 ; 2 ⎤ ⎦ , la série ∑ u

n

( ) x vérifie le critère spécial des séries alternées.

On a alors la majoration classique : R

n

( ) xu

n+1

( ) x , c’est-à-dire :

( ) ( ) ( ( ( ) ) ) ( )

2 1 2 2

cos 2 1 ! 2 2 !

n n

n

x x

x S x

n n

+ +

− ≤ =

+ +

( ) ( ) ( )

2 2

2 ; 2 , , cos

2 2 !

n n

x n x S x x

n

⎡ ⎤

+

∀ ∈ − ⎣ ⎦ ∀ ∈ − ≤ +

(3)

2. Ecrire une fonction Python RangMini qui calcule le plus petit entier naturel n tel que

( )

2

2 ! x

n

n ≤ ε où ε est un réel strictement positif fixé.

La fonction RangMini recevra comme argument une variable x, correspondant au réel x, et une variable epsilon correspondant au réel ε .

Les factorielles seront obtenues via une fonction Python Fact (à écrire).

On a d’abord :

def Fact(n):

if n==0:

return(1) else:

return(n*Fact(n-1))

Pour la fonction RangMini, on va calculer

( )

2

2 ! x

n

n pour des valeurs successives de n (la variable correspondante sera incrémentée à chaque itération) tant que la condition

( )

2

2 ! 0 x

n

n > est vérifée. La dernière valeur de n devra être retournée. On peut donc considérer le code suivant :

def RangMini(x,epsilon):

n = 0

while x**(2*n)/Fact(2*n) > epsilon:

n += 1 return(n)

Le principe du calcul de l’approximation de cos ( ) x pour tout réel x de l’intervalle I est alors :

• On fixe/demande la précision souhaitée (réel ε ).

• On détermine le plus petit entier n tel que

( )

2

2 ! x

n

n ≤ ε .

• On calcule S

n1

( ) x qui est une valeur approchée de cos ( ) x à ε près.

(4)

3. Ecrire une fonction Python EvalSommePartielle qui recevra comme argument une variable x, correspondant au réel x, et une variable n, correspondant à un entier n et évaluera S

n

( ) x (vous écrirez et utiliserez une fonction récursive PolyHorner mettant en œuvre la méthode de Horner pour l’évaluation des polynômes).

Pour les détails de la mise en œuvre de la méthode de Horner on se réfèrera au cours.

Nous proposons le code suivant :

def PolyHorner(L,x):

if len(L)==1:

return(L[0]) else:

L[-2] += L[-1]*x del L[-1]

return(PolyHorner(L,x))

L’évaluation de ( )

0

( ) ( )

2

1 2 !

n k k n

k

S x x

=

k

= ∑ − , c’est-à-dire l’évaluation du polynôme

( ) ( )

0

1 2 !

n k

k k

k X

=

∑ − au point x

2

, consiste alors à appeler la fonction précédente avec la liste des coefficients ( )

( ) 2 1 !

k

k

− . Dans un premier temps, on construit donc cette liste puis on appelle la fonction PolyHorner. D’où le code possible suivant :

def EvalSommePartielle(x,n):

L = []

for i in range(n+1):

L.append((-1)**i/Fact(2*i)) return(PolyHorner(L,x))

Remarque : la liste L peut également être définie comme suit :

L = [(-1)**i/Fact(2*i) for i in range(n+1)]

Ainsi, on peut aller jusqu’à écrire la fonction de façon très compacte : def EvalSommePartielle(x,n):

return(PolyHorner([(-1)**i/Fact(2*i) for i in range(n+1)],x))

4. Ecrire enfin une fonction Python CosApprox qui recevra comme argument une variable x correspondant au réel x de l’intervalle I et une variable epsilon, correspondant au réel

ε , et qui renverra une valeur approchée de cos ( ) x à ε près.

(5)

Le contenu de la fonction CosApprox comporte deux étapes principales :

• La détermination, grâce à la fonction RangMini, du plus petit indice n tel que

( )

2

2 ! x

n

n ≤ ε .

• Calcul de la somme partielle S

n1

( ) x (rappelons que nous avons :

( ) ( )

2

1

2 !

n n

S x x

n ε

< ≤ ).

D’où le code possible :

def CosApprox(x,epsilon):

return(EvalSommePartielle(x**2, RangMini(x,epsilon)-1))

En définitive, on aura le code complet possible suivant (avec une version « standard » de la fonction EvalSommePartielle) :

def Fact(n):

if n==0:

return(1) else:

return(n*Fact(n-1))

def PolyHorner(L,x):

if len(L)==1:

return(L[0]) else:

L[-2] += L[-1]*x del L[-1]

return(PolyHorner(L,x))

def RangMini(x,epsilon):

n = 0

while x**(2*n)/Fact(2*n) > epsilon:

n += 1 return(n)

def EvalSommePartielle(x,n):

L = []

for i in range(n+1):

L.append((-1)**i/Fact(2*i)) return(PolyHorner(L,x))

def CosApprox(x,epsilon):

return(EvalSommePartielle(x**2,RangMini(x,epsilon)-1))

(6)

5. Dans cette question on étend l’intervalle de validité de la méthode ci-dessus à J = − [ π π ; ]

.

a. Montrer que l’on a : ( )

( )

2

*, *,

1

12

n n

u x x

n x

u x

∀ ∈ ∀ ∈

+

≤ .

b. En déduire que pour tout x de J, la majoration ( ) ( )

2 2

cos 2 2 !

n n

x S x x

n

− ≤

+

+ est valable pour tout entier naturel n non nul.

Retour sur la première question.

On a travaillé sur l’intervalle I car il garantissait la décroissance de la suite ( u

n

( ) x )

n

et nous permettait donc de majorer simplement la différence cos xS

n

( ) x .

Mais idéalement, on souhaiterait pouvoir disposer d’une méthode numérique valable sur un intervalle de longueur 2 π . C’est l’objet de cette dernière question.

a. A la première question, on a vu que l’on avait, pour tout x réel non nul :

( )

( ) ( )( )

2

,

1

2 2 2 1

n n

u x x

n u x n n

∀ ∈

+

+ +

On en déduit : ( )

( ) ( )( )

2 2

*, *,

1

2 1 2 2 1 1 12

n n

u x x x

n x

u x

∀ ∈ ∀ ∈

+

≤ =

× + × + .

( ) ( )

2

*, *,

1

12

n n

u x x

n x

u x

∀ ∈ ∀ ∈

+

b. Pour tout réel x non nul de J, on a :

2 2

12 12 1 x π <

et la suite ( u

n

( ) x )

n *

(notez bien l’astérisque) est strictement décroissante. Pour x = 0 elle est constante (et donc décroissante) à partir de n = 1 .

Posons alors : cos ( ) x = + 1 f x ( ) (on a donc : ( )

1

( ) ( )

2

, 1

2 !

n n

n

x f x x

n

+∞

=

∀ ∈ = ∑ − ) et, pour

tout entier naturel n non nul : ( ) ( ) ( )

2

( )

1

1 1 1

2 !

n k k

n n

k

S x x T x

=

k

= + ∑ − = + .

Pour tout réel x de J, on peut appliquer le critère spécial des séries alternées à la série

( )

* n n

u x

. On a alors, pour tout entier naturel n non nul, la majoration :

( ) ( ) ( )

2 2

2 2 !

n n

f x T x x

n

− ≤

+

+ .

(7)

En tenant compte de f x ( ) − T x

n

( ) = ( cos ( ) x − − 1 ) ( S

n

( ) x − = 1 ) cos ( ) xS

n

( ) x , il

vient finalement : ( ) ( ) ( )

2 2

*, J, cos

2 2 !

n n

n x x S x x

n

∀ ∈ ∀ ∈ − ≤

+

+ .

( ) ( ) ( )

2 2

*, J, cos

2 2 !

n n

n x x S x x

n

∀ ∈ ∀ ∈ − ≤

+

+

Notre algorithme reste donc valable pour tout réel x de J dès lors que l’on ne souhaite pas retenir S

0

( ) x = 1 comme valeur approchée du cosinus recherché…

Ceci dit, on peut très facilement montrer que la majoration précédente est encore

valable pour n = 0 et pour tout réel x de J ! ☺ MAIS en toute rigueur, ce n’est pas le

critère spécial des séries alternées qui nous la fournit…

Références

Documents relatifs

Un exercice d’application directe du cours qui permet de revoir quelques techniques calculatoires classiques (cf. le calcul de

(iv) Quelle est la probabilit´e qu’`a la ki`eme fl´echette, il atteigne la mouche pour la ni`eme fois?. (v) Quelle est la probabilit´e qu’il atteigne pour la premi`ere fois la

Chaque pi` ece a une chance sur 12 millions de tomber en panne, ce qui entraine imm´ ediatement l’explosion de la navette.. Que pensez-vous

On it` ere ind´ efiniment ce processus de construction et on note P n le polygone obtenu apr` es la n−i` eme application du proc´ ed´ e de construction... Une banque propose

L’entreprise CMC fabrique des ´ ecrans vid´ eo pour micro-ordinateur. Une ´ etude statistique a permis d’´ etablir que la demande, au Japon, pour son mod` ele ZW ´ etait

En fonction du contenu de la variable, la del s’active (état haut). Dans cet exemple en

Faire apparaître les points et tangentes remarquables ainsi que la relation entre les deux courbes..

Comme cette variable al´ eatoire suit la loi exponentielle de param` etre 0,2 min −1 , on est exactement dans la situation ´ etudi´ ee ` a la Partie A et donc on va en utiliser le