Pierre-Louis CAYREL 2008-2009
Pr´epa HEC 2 disponible surwww.cayrel.net
Lyc´ee Lavoisier Feuille n◦8
Dichotomie et polynˆ omes
1 Dichotomie
Exercice 1 Soit f la fonction d´efinie sur [0,+∞[ par :
∀x∈[0,+∞[, f(x) = xexpx−1 2
1. Calculer la d´eriv´ee def, en d´eduire ses variations sur [0,+∞[. Etudier la convexit´´ e def, puis tracer sa repr´esentation graphique.
2. Monter que l’´equation f(x) = 0 admet une unique solution sur [0,+∞[ et que cette solution appartient `a l’intervalle ]0,1[. On notera α cette solution.
3. ´Ecrire une fonction Pascal nomm´ee f qui `a un param`etre r´eel x associe le r´eel f(x).
Exercice 2 On d´efinit trois suites r´eelles (an)n∈N,(bn)n∈N, et (cn)n∈N∗ par a0 = 0, b0 = 1 et pour tout n∈N :
cn+1 = an+bn
2 ;an+1 =
an si f(an).f(cn+1)60 cn+1 sinon
etbn+1 =
cn+1 si f(an).f(cn+1)60 bn sinon
1. (a) Montrer que pour tout n∈N, bn−an = 21n.
(b) ´Etudier le sens de variation des suites (an) et (bn).
(c) V´erifier que pour tout entier n, f(an)<0 et f(bn)>0.
(d) D´eduire des questions pr´ec´edentes que les suites (an) et (bn) convergent vers la mˆeme limite et que cette limite est α d´efinie dans l’exercice pr´ec´edent.
2. ´Etablir que pour toutn, an 6α6bn.En d´eduire une fonction Pascal, utilisant la fonction f de l’exercice pr´ec´edent, nomm´ee dicho qui prend comme param`etre un r´eel epset qui renvoie une valeur approch´ee de α `aeps pr`es.
2 Polynˆ omes
Exercice 3 On d´eclare un typedonnees par : CONST
nmax = 20;
TYPE
donnees = ARRAY[0..nmax] OF real;
1. ´Ecrire une proc´edure Entre_donnees qui prend comme param`etre un tableau de type donnees et qui m´emorise dans ce tableau les n + 1 valeurs d’une famile de nombres entr´ees au clavier par l’utilisateur.
2. On suppose donn´ees cinq variables : a de type donnees, L et x de type r´eel, et j et k de type entier. Expliquer le d´eroulement de la s´equence d’instruction suivante et d´eterminer le contenu de la variable L `a l’issue de celle-ci.
WriteLn(’j,x?’); ReadLn(j,x);
L:= 1;
FOR k := 0 TO nmax DO Begin
IF k <> j THEN L := L*(x-a[k])/(a[j]-a[k]);
End;
3. ´Ecrire un programme en Pascal qui, en utilisant la proc´edure entre_donnees, permet d’entrer au clavier deux familles de valeurs (ai)06i6n et (bi)06i6n puis qui ´evalue en x (donn´ee par l’utilisateur) le polynˆome d’interpolation de f aux noeuds a0, a1, . . . , an :
Pn =
n
X
j=0
bjLj
Exercice 4 (Via ESCP - Oral 2001) On consid`ere la fonctionf d´efinie sur R∗+ par : f(x) = exp(−x1).
1. Montrer que pour tout entier naturel n la d´eriv´ee n-i`eme de f v´erifie, pour tout r´eel x strictement positif, la relation :
f(n)(x) = Pn(1 x)f(x)
o`u (Pn)n>0 est la suite de polynˆomes d´efinie par P0(X) = 1 et par la relation : Pn+1(X) =X2[Pn(X)−Pn0(X)]
2. ´Etablir que pour tout entier n, Pn est `a coefficients entiers et pr´eciser son degr´e.
3. On d´efinit un type : TYPE
poly = ARRAY[0..20] OF integer;
permettant de stocker de tout polynˆome de degr´e inf´erieur ou ´egal `a 20.
(a) ´Ecrire une proc´edure d’en-tˆete :
PROCEDURE MultiX2(P : poly; VAR Q : poly);
qui stocke dans Q les coefficients du polynˆome X2P(X), P ´etant le polynˆome de degr´e maximum 18 dont les coefficients sont stock´es dansP.
(b) ´Ecrire une proc´edure d’en-tˆete :
PROCEDURE Derive_poly(P : poly; VAR Q : poly);
qui stocke dansQ les coefficients du polynˆome d´eriv´e de P, et une proc´edure : PROCEDURE Diff_poly(P,Q : poly; VAR R : poly);
qui stocke dansR les coefficients du polynˆome P− Q.
(c) ´Ecrire enfin un programme faisant appel aux trois proc´edures pr´ec´edentes, qui affiche les coefficients du polynˆome P10.
Pierre-Louis CAYREL 2008-2009
Pr´epa HEC 2 disponible surwww.cayrel.net
Lyc´ee Lavoisier Feuille n◦8
Dichotomie et polynˆ omes
Correction 1
1. f est de classe C2 commecocktails de fonctions de classeC2 et :
∀x∈[0,+∞[, f0(x) = (x+ 1) expx
f0(x) est strictement positif sur ]0,+∞[ doncf est strictement croissante sur [0,+∞[.De plus, f(0) = −12 et limx→+∞f(x) = +∞.Enfin pour tout r´eel x positif :
f00(x) = (x+ 2) expx f00(x) est positif donc f est convexe sur [0,+∞[.
2. f est continue et strictement croissante sur [0,+∞[, elle r´ealise donc une bijection de [0,+∞[ surf([0,+∞[) = [−1/2,+∞[.0 appartient `a [−1/2,+∞[ il admet donc un unique ant´ec´edent par f. On en d´eduit que l’´equation f(x) = 0 admet une unique solution α.
Enfin f(1) =e−12 >0 doncf(0).f(1)<0,et par le th´eor`eme des valeurs interm´ediaires α appartient `a l’intervalle ]0,1[.
3. La fonctionf est simplement donn´ee par : FUNCTION f(x : real) : real;
BEGIN
f:= x * exp(x) - 1/2;
END;
Correction 2
1. (a) V´erifions par r´ecurrence que pour tout entier n, bn−an = 21n. – b0−a0 = 1−0 = 1 = 210, la propri´et´e est donc vraie pour n= 0;
– Supposons que pour n fix´e, bn−an = 21n. On a : soit an+1 = an+b2 n et bn+1 =bn, soit an+1 = an et bn+1 = an+b2 n. Dans les deux cas bn+1 − an+1 = bn−a2 n. D’o`u l’hypoth`ese de r´ecurrence, bn+1−an+1= 21n ×12 = 2n+11 .
– La propri´et´e est donc h´er´editaire et par r´ecurrence, on a alors pour tout entier n, bn−an = 21n.
(b) Soit n un entier. On a bn −an = 21n > 0, d’o`u bn > an. On sait de plus que cn+1 = an+b2 n, d`es lors an < cn+1 < bn. Or an+1 est ´egal soit `a an soit `a cn+1. Dans les deux cas an+1 > an. De mˆeme, bn+1 est ´egal soit `a bn soit `a cn+1 et cette fois bn+1 6bn.En conclusion, (an) est croissante et (bn) est d´ecroissante.
(c) La construction des suites (an) et (bn) est faite pour qu’elles v´erifient f(an) < 0 et f(bn) > 0. On pose en effet soit an+1 = cn+1 soit bn+1 = cn+1 suivant la va- leur de f(an).f(cn+1), de mani`ere `a toujours avoir f(an+1) < 0 et f(bn+1) > 0.
Une r´ecurrence ´el´ementaire permet donc de v´erifier que pour tout entier naturel n, f(an)<0 et f(bn)>0.
(d) (an) est croissante, (bn) est d´ecroissante, de plus d’apr`es (a),
n→+∞lim (bn−an) = lim
n→+∞
1 2n = 0.
Nos deux suites sont donc adjacentes, elles convergent vers une limite commune l.
Par continuit´e de f, on a alors limn→+∞f(an) = limn→+∞f(bn) = f(l). Or d’apr`es (c), f(an)<0 et f(bn)>0, par passage `a la limite on doit donc avoir :
f(l)60 et f(l)>0.
Ce qui n’est possible que sif(l) = 0.l est donc l’unique solution de l’´equationf(x) = 0. En conclusion : (an) et (bn) convergent versα.
2. FUNCTION dicho(eps : real) : real;
VAR
a,b,c : real;
BEGIN a := 0;
b := 1;
REPEAT
c := (a+b)/2;
IF f(a)*f(c) <= 0 THEN b := c ELSE a := c;
UNTIL b-a < eps;
dicho := a;
END;
Correction 3
1. PROCEDURE Entre_donnees(VAR t : donnees);
VAR
i : integer;
BEGIN
FOR i := 0 TO nmax DO Begin
WriteLn(’donnee num´ero’,i,’svp’);
ReadLn(t[i]);
End;
END;
2. La s´equence d’instruction propos´ee multiplieLpar les ax−ak
j−ak,pour toutk ∈[0, n] diff´erent de j. Autant le dire, `a la fin de la s´equence L vaut Πnk=0,k6=jax−ak
j−ak. En d’autres termes, la s´equence propos´ee calcule la valeur de Lj(x), j et x´etant donn´es par l’utilisateur.
3. CONST
nmax = 20;
TYPE
donnees = ARRAY[0..nmax] OF real;
VAR
a,b : donnees;
j,k : integer;
x,L,eval_P : real;
PROCEDURE Entre_donnees(VAR t : donnees);
...
BEGIN
WriteLn(’valeurs des a(i):’); Entre_donnees(a);
WriteLn(’valeurs des b(i):’); Entre_donnees(b);
WriteLn(’x?’); ReadLn(x);
eval_P := 0;
FOR j := 0 TO nmax DO Begin
L := 1;
FOR k := 0 TO nmax DO Begin
IF k <> j THEN L := L*(x-a[k])/(a[j]-a[k]);
End;
eval_P := eval_P + b[j]*L;
End;
WriteLn(’P(x)=’,eval_P);
END.
Correction 4
1. f est de classe C+∞ comme compos´ee de fonctions qui le sont. Montrons par r´ecurrence l’existence de la famille (Pn)n∈N.
– Soitx un r´eel strictement positif. f(0)(x) =f(x) et P0 est le polynˆome constant ´egal `a 1, la propri´et´e est donc v´erifi´ee au rang n = 0.
– Soit n∈N fix´e. Supposons que pour tout x >0, on ait : f(n)(x) = Pn(1
n)f(x).
Alors f(n+1)(x) est donn´e par :
∀x∈R∗+, f(n+1)(x) =Pn(1
x)f0(x)− 1 x2Pn0(1
x)f(x).
Or, pour tout x >0, f0(x) = x12 exp(−1x ) = x12f(x). Il vient :
∀x∈R∗+, f(n+1)(x) = 1 x2[Pn(1
x)−Pn0(1
x)]f(x).
Or Pn+1(X) =X2[Pn(X)−Pn0(X)],on en d´eduit :
∀x∈R∗+, f(n+1)(x) = Pn+1(1 x)f(x).
Et la propri´et´e est v´erifi´ee au rangn+ 1.
– La propri´et´e est v´erifi´ee au rang 0 et elle est h´er´editaire, elle est donc vraie pour tout entier naturel n.
2. Une r´ecurrence ´el´ementaire permet de montrer que pour tout entier naturel n, Pn est un polynˆome de degr´e 2n `a coefficients entiers.
3. (a) Soit P le polynˆome donn´e par : P(X) =a0+a1X+· · ·+aiXi+. . . , alors Q(X) = X2P(X) est donn´e par :
X2P(X) =a0X2+a1X3+· · ·+aiXi+2+. . . PROCEDURE MultiX2(P : poly; VAR Q : poly);
VAR
i : integer;
BEGIN
Q[0] := 0; Q[1] := 0;
FOR i := 2 TO 20 DO Q[i] := P[i-2];
END;
(b) PROCEDURE Derive_poly(P : poly; VAR Q : poly);
VAR
i : integer;
BEGIN
FOR i := 1 TO 20 DO Q[i-1] := i*P[i];
Q[20] := 0;
END;
PROCEDURE Diff_poly(P,Q : poly; VAR Q : poly);
VAR
i : integer;
BEGIN
FOR i := 1 TO 20 DO R[i] := P[i] - Q[i];
END;
(c) TYPE
poly = ARRAY[0..20] OF integer;
VAR
i : integer;
A,Aprime,B : poly;
PROCEDURE MultiX2(P : poly; VAR Q : poly);
...
PROCEDURE Derive_poly(P : poly; VAR Q : poly);
...
PROCEDURE Diff_poly(P,Q : poly; VAR Q : poly);
...
BEGIN
FOR i := 1 TO 20 DO A[i] := 0;
A[0] := 1;
FOR i := 1 TO 10 DO Begin
Derive_poly(A,Aprime);
Diff_poly(A,Aprime,B);
MultiX2(B,A);
End;
FOR i := 0 TO 20 DO write(’a’,i,’=’,A[i]);
END;