Kit Survie Python
Kit Survie Python
I. Graphiques 3
II.2. Réduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
V. Probabilités 10
VI. Polynômes 11
L’épreuve de mathématique 2 est un oral de 30 minutes qui succède à une préparation d’environ 30 minutes également.
Le sujet est constitué d’un seul exercice comportant plusieurs questions de difficultés progressives et faisant appel, pour
certaines, à l’usage de l’outil informatique. Le logiciel informatique est utilisé afin de faire des simulations du thème
abordé par l’exercice à travers quelques exemples. Il permet de faire des représentations graphiques et des calculs dans
le but de conjecturer ou de vérifier quantitativement les résultats attendus. Lors de la préparation, le candidat dispose
d’un ordinateur sur lequel sont installés les logiciels Pyzo et Scilab, ainsi que des documents d’aide fournis à tous les
candidats présentant les fonctions des bibliothèques qui pourront être utiles sans pour autant être exigibles.
À l’issue de la préparation le candidat doit présenter à l’examinateur les résultats qu’il a obtenus. Cette présentation
pouvant se faire au tableau et/ou devant l’ordinateur, le candidat pouvant faire des allers-retours entre l’ordinateur
et le tableau. L’examinateur évalue durant cette présentation la qualité de la pratique mathématique en regard des
prestations des autres candidats. Il tient compte aussi, même si ce n’est pas le but principal de l’épreuve, de l’usage de
Le jury tient absolument à mettre en garde contre un temps excessif consacré au code Python pendant
le temps de préparation de l’épreuve. Il s’agit avant tout d’un oral de maths, et il n’est pas raisonnable
nécessaire pour démarrer l’exercice en effectuant des conjectures est normalement extrêmement simple
et ne devrait pas être bloquant. Au pire, l’examinateur aidera le candidat pour corriger de petites
erreurs de syntaxe. Il peut y avoir du code plus élaboré, mais il sera toujours demandé à la fin. Le jury
tient également à souligner que ce n’est pas le code qui est évalué, mais l’interprétation mathématique
La première chose à faire (après avoir créé et sauvegardé le fichier bien sûr !) est d’importer les modules numpy et
[Link] :
import m a t p l o t l i b . p y p l o t a s p l t
import numpy a s np
Le principe est de donner la liste des abscisses et la liste des ordonnées des points à relier.
• [Link]() : crée une fenêtre affichant le graphe contenant toutes les données enregistrées précédemment.
X=[n f o r n in r a n g e ( 1 , 1 0 1 ) ]
Y=[( −1)∗∗ n/np . s q r t ( n ) f o r n in X]
plt . grid ()
p l t . p l o t (X,Y)
p l t . show ( )
un−1
Exercice 1. Soit (un ) la suite définie par u0 = u1 = 1 et pour tout n ∈ N∗ , un+1 = un + .
n
Écrire une fonction permettant de calculer un de manière efficace.
un+1
Vérifier graphiquement, puis démontrer que → 1. Que vaut le rayon deconvergence de la série entière ∑ un xn ?
un n→+∞
• [Link](a,b,nb) : renvoie une subdivision régulière de [a, b] avec nb points sous forme de liste
X=np . l i n s p a c e ( 0 , 1 , 1 0 0 )
Y=[ f ( x ) f o r x in X]
p l t . p l o t (X,Y)
plt . grid ()
p l t . show ( )
Par exemple, pour tracer les graphes des fonctions fn ∶ x ↦ nxn (1 − x2 ) sur [0, 1] pour n ∈ J1, 10K :
def f ( n , x ) :
return n∗x ∗∗n∗(1 − x ∗ ∗ 2 )
X=np . l i n s p a c e ( 0 , 1 , 1 0 0 )
f o r n in r a n g e ( 1 1 ) :
Y=[ f ( n , x ) f o r x in X]
p l t . p l o t (X,Y)
plt . grid ()
p l t . show ( )
T=np . l i n s p a c e ( 0 , 2 ∗ np . pi , 1 0 0 )
X=[np . s i n ( 2 ∗ t ) f o r t in T ]
Y=[np . c o s ( 3 ∗ t ) f o r t in T ]
p l t . p l o t (X,Y)
plt . axis ( ’ equal ’ )
plt . grid ()
p l t . show ( )
La première chose à faire (après avoir créé et sauvegardé le fichier bien sûr !) est d’importer les modules numpy et
[Link] :
import numpy a s np
import numpy . l i n a l g a s a l g
On récupère
• ses coefficients par A[i,j]
Matrices particulières :
• matrice nulle : [Link](n) ou [Link]((n,p)) (attention aux parenthèses)
Opérations :
• somme et multiplication par un scalaire : A+3*B
On peut aussi utiliser [Link](B) qui est plus pratique si on veut multiplier plusieurs matrices.
Exercice 3.
⎛a a1,2 B ⎞
1,1 B
Écrire une fonction tensoriel prenant comme entrée A et B ∈ M2 (R) et retournant ⎜
⎜
⎟ ∈ M4 (R).
⎟
⎝a2,1 B a2,2 B ⎠
[Link](A,b) permet de résoudre un système linéaire Ax = b où A ∈ GLn (R) et b est un tableau de taille n.
• Polynôme caractéristique : [Link](A) renvoie la liste des coefficients de χA par degré croissant.
indique que le polynôme caractéristique de
>>> A=np . a r r a y ( [ [ 1 , 2 ] , [ − 3 , − 4 ] ] )
⎛ ⎞
>>> np . p o l y (A) ⎜1 2⎟
A=⎜ ⎟ est χA (X) = X 2 + 3X + 2
⎜ ⎟
array ( [ 1 . , 3. , 2 . ] ) ⎝−3 −4⎠
⊳ P est une matrice dont les colonnes sont des vecteurs propres associés aux valeurs propres précédentes.
Exercice 4. Centrale 18
Soit An = (ai,j ) ∈ Mn (R) telle que, pour tout i, ai,i = 0 et, pour tout i ≠ j, ai,j = j.
b) Écrire une fonction renvoyant les valeurs propres de An . Afficher An et ses valeurs propres pour n variant de 2 à 10. En déduire une
conjecture sur An .
n k
c) Montrer que les valeurs propres de An vérifient l’équation ∑ = 1.
k=1 x+k
d) En déduire que An est diagonalisable.
Pour résoudre une équation du type f (x) = 0, où f est une fonction d’une variable réelle, on utilise la fonction fsolve
du module [Link]. La première chose à faire (après avoir créé et sauvegardé le fichier bien sûr !) est donc
import numpy a s np
import s c i p y . o p t i m i z e a s r e s o l
La fonction fsolve prend deux arguments : la fonction f et une valeur initiale x0 (point de départ de l’algorithme de
résolution approchée, on choisira x0 de manière raisonnable.) Elle renvoie la( les) solution(s) trouvée(s) sous forme de
>>> r e s o l . f s o l v e ( f , 1 )
def f ( x ) : array ( [ 1 . 4 1 4 2 1 3 5 6 ] )
return x∗∗2 −2 >>> r e s o l . f s o l v e ( f , − 3 )
array ([ −1.41421356])
a) Montrer que pour tout n ∈ N∗ , l’équation n(x + x3 ) = 1 admet une unique solution, que l’on notera (xn ).
import s c i p y . i n t e g r a t e a s i n t e g r
La fonction quad prend trois arguments : la fonction f , et les deux bornes d’intégration (éventuellement infinies). Le
résultat un couple (v, ε), où v est une valeur approchée de l’intégrale et ε un majorant de l’erreur. Seul v nous intéresse
La première chose à faire (après avoir créé et sauvegardé le fichier bien sûr !) est d’importer les modules numpy,
import numpy a s np
import m a t p l o t l i b . p y p l o t a s p l t
import s c i p y . i n t e g r a t e a s i n t e g r
La fonction odeint du module [Link] permet de résoudre numériquement des problèmes de Cauchy de la
forme :
On commence par définir la fonction F (c’est le plus difficile), la valeur initiale X0 et une liste d’instants T =
L’instruction [Link](F,X0 ,T) renvoie le tableau des valeurs approchées des X(tk ) où X est la solution du
problème de Cauchy.
Exemple : allure du graphe sur [0, 5] de la solution de y ′ = −ty + 1 telle que y(0) = 1
def f ( y , t ) :
return − t ∗y+1
T=np . l i n s p a c e ( 0 , 5 , 1 0 0 )
Y=i n t e g r . o d e i n t ( f , 1 ,T)
plt . grid ()
p l t . p l o t (T,Y)
def f (X, t ) :
return np . a r r a y ( [ −X[ 0 ] − 2 ∗X[ 1 ] , 2 ∗X[ 0 ] −X [ 1 ] ] )
T=np . l i n s p a c e ( 0 , 1 0 , 2 0 0 )
X=i n t e g r . o d e i n t ( f , np . a r r a y ( [ 1 , 0 ] ) , T)
X=X [ : , 0 ]
Y=X [ : , 1 ]
p l t . p l o t (X,Y)
p l t . show ( )
Exemple : représenter sur [0, 10] la solution f de l’équation différentielle xy ′′ +y ′ +xy = 0 vérifiant f (0) = 1 et f ′ (0) = 0.
(NB : on admet qu’il n’y en a qu’une, ce qui n’était pas garanti par le théorème de Cauchy)
def f (X, t ) :
return np . a r r a y ( [ X[ 1 ] , −X[ 1 ] ∗ 1 / t −X [ 0 ] ] )
T=np . l i n s p a c e ( 0 . 0 1 , 2 0 , 1 0 0 )
#j ’ a i p r i s 0 . 0 1 e t non pas 0 c a r p r o b l è m e vu
#qu ’ on d i v i s e par t
Y=i n t e g r . o d e i n t ( f , np . a r r a y ( [ 1 , 0 ] ) , T)
# Y e s t un t a b l e a u b i d i m e n s i o n n e l r e p r é s e n t a n t
#l a l i s t e d e s [ y ( t_k ) , y ’ ( t_k ) ]
print (Y)
Y=Y [ : , 0 ]
#on r é c u p è r e s e u l e m e n t l a l i s t e d e s y ( t_k )
plt . grid ()
p l t . p l o t (T,Y)
plt . savefig ( ’ bessel ’ )
p l t . show ( )
+∞ x2n 1 π
B(x) = ∑ (−1)n et J(x) = ∫ cos(x sin(t)) dt.
n=0 4n (n!)2 π 0
Tracer les graphes de B et J. Les comparer avec le graphe de f . Conjecture ? Démontrer le résultat conjecturé.
La première chose à faire (après avoir créé et sauvegardé le fichier bien sûr !) est d’importer la bibliothèque [Link]
• [Link](a,b) : renvoie un entier appartenant à l’intervalle entier [a, b[ selon la loi uniforme.
Pour définir une v.a. qui suit la loi uniforme sur {−1, 1} : 2*[Link](0,2)-1
• [Link](n,p) : renvoie un entier compris entre 0 et n selon la loi binomiale B(n, p).
Par exemple, [Link](1,0.5,100) permet de simuler 100 tirages à pile ou face avec une pièce équilibrée.
Soit (Xi ) une suite de va indépendantes suivant toutes la loi uniforme sur {−1, 1}.
On définit la suite (Sn ) par S0 = 0 et , pour n ∈ N∗ , Sn = X1 + X2 + ⋯ + Xn .
Représenter (Sn (ω)) pour une dizaine de valeurs de ω.
On joue indéfiniment à pile ou face avec une pièce qui fait pile avec une probabilité p. Soit donc (Xn ) une suite de va indépendantes suivant
toutes B(p). On note Y la longueur de la première série de 0 ou de 1 consécutifs, et z la longueur de la deuxième série.
Par exemple, si (Xn )n∈N = (1, 1, 1, 1, 0, 0, 0, 1, 1, 0, ...) on a Y = 4 et Z = 3.
Vu que p ∈]0, 1[, Y est presque sûrement finie et Z est donc bien définie, elle-même à valeurs dans N∗ (presque sûrement).
b) Déterminer la loi de (X, Y ). En déduire la loi de Y . Calculer E(Y ) et vérifier que E(Y ) ⩾ 2.
Un=P o l y n o m i a l ( [ 1 ] )
X=P o l y n o m i a l ( [ 0 , 1 ] )
P=P o l y n o m i a l ( [ − 1 , 0 , 0 , 0 , 0 , 1 ] )
L = P. roots ()
X = [ z . r e a l f o r z in L ]
Y = [ z . imag f o r z in L ]
plt . axis ([ −1.5 ,1.5 , −1.5 ,1.5])
p l t . p l o t (X, Y, " o " )
p l t . show ( )
b) Montrer que les sous-espaces des polynômes pairs et impairs sont supplémentaires orthogonaux dans E.
d) Pour P ∈ E, on pose f (P ) = 2XP ′ + (X 2 − 4)P ′′ . Montrer que f est un endomorphisme symétrique de E. Déterminer la matrice de
f dans la base canonique de E et en déduire les valeurs propres de f . Donner une base de vecteurs propres de f .
Soient α ∈ R et fα ∶ x ↦ ∫ dt.
0 1 + t2
a) Déterminer l’ensemble A des valeurs de α pour lesquelles fα est définie sur R.
b) Tracer sur l’intervalle J les graphes de fα pour une dizaine de valeurs de α dans les cas suivants :
(i) J = [−10, 10] et α ∈ A ; (ii) J = [−1, 1] et α ∈ A ∩ R+ ; (iii) J = [−1, 1] et α ∈ A ∩ R− .
Conjecturer la limite en +∞ de fα , la continuité, la dérivabilité de fα en 0.
c) Comparer fα (0) et f−α (0). En utilisant fα + f−α , montrer que fα (0) ⩾ π/2.
d) Soit α ∈ A. Montrer que fα est continue sur R et de classe C 1 sur R∗ . Déterminer la limite de fα en +∞.
e) Simplifier f1/2 (x) − f1/2 (0) en posant u = tx2 . L’application f1/2 est-elle dérivable en 0 ?
Exercice 2 :
def M( n ) :
A=np . z e r o s ( ( n+1 ,n+1))
f o r i in r a n g e ( n +1):
f o r j in r a n g e ( n +1):
i f j==i +1: A[ i , j ]= j
e l i f i==j +1: A[ i , j ]=n+1− i
return A
Exercice 3 :
def t e n s o r i e l (A, B ) :
L0=np . c o n c a t e n a t e ( (A[ 0 , 0 ] ∗ B,A[ 0 , 1 ] ∗ B) , a x i s =1)
L1=np . c o n c a t e n a t e ( (A[ 1 , 0 ] ∗ B,A[ 1 , 1 ] ∗ B) , a x i s =1)
return np . c o n c a t e n a t e ( ( L0 , L1 ) , a x i s =0)
Exercice 4 :
def M( n ) :
A=np . z e r o s ( ( n , n ) )
f o r i in r a n g e ( n ) :
f o r j in r a n g e ( n ) :
i f i != j : A[ i , j ]= j +1
return A
f o r k in r a n g e ( 2 , 1 0 ) :
print ( a l g . e i g v a l s (A( k ) ) )
Exercice 5 :
a) fn ∶ x ↦ n(x + x3 ) est continue et strictement croissante sur R, vaut 0 en 0 et 2n > 1 en x = 1, donc elle s’annule une et une seule fois
sur R et ce zéro est dans [0, 1].
def x ( n ) :
def f ( t ) :
return n ∗ ( t+t ∗∗3) −1
return r e s o l . f s o l v e ( f , 0 )
N=[n f o r n in r a n g e ( 1 , 3 1 ) ]
X=[x ( n ) f o r n in r a n g e ( 1 , 3 1 ) ]
p l t . p l o t (N,X)
p l t . show ( )
La suite (xn ) semble tendre vers 0, ce que l’on prouve en utilisant la méthode habituelle ou bien en remarquant que fn (1/n) ⩾ 1
donc 0 ⩽ xn ⩽ 1/n.
>>>[n∗x ( n ) [ 0 ] f o r n in r a n g e ( 2 0 , 3 0 ) ]
[0.9975185646221213 , 0.9977477134978423 , 0.9979465859530401 , 0.9981202808394914 , 0.998272868836279
>>> [ n ∗ ∗ 2 ∗ ( x ( n ) [ 0 ] − 1 / n ) f o r n in r a n g e ( 4 0 , 5 0 ) ]
[ −0.02495324185284309 , −0.024346819100153898 , −0.02376912300366442 , −0.02321816285295746 , −0.02269
Donc b est vraisemblablement nul. On détermine ensuite c en calculant n3 (xn − a/n − b/n2 ) pour de grandes valeurs de n
>>> [ n ∗ ∗ 3 ∗ ( x ( n ) [ 0 ] − 1 / n ) f o r n in r a n g e ( 4 0 , 5 0 ) ]
# [ − 0 . 9 9 8 1 2 9 6 7 4 1 1 3 7 2 3 6 , −0.9982195831063098 , −0.9983031661539056 , −0.9983810026771707 , −0.99845360
1 1 1
d) xn = − + o( 3 )
n n3 n
Exercice 6 :
On commence par définir la fonction g :
def g ( x ) :
def h ( t ) :
return t ∗ ∗ ( x −1)/(1+ t )
return i n t e g r . quad ( h , 0 , np . i n f ) [ 0 ]
def g ( x ) :
return i n t e g r . quad (lambda t : t ∗ ∗ ( x −1)/(1+ t ) , 0 , np . i n f ) [ 0 ]
X=np . l i n s p a c e ( 0 . 0 1 , 0 . 9 9 , 1 0 0 )
Y=[ g ( x ) f o r x in X]
p l t . p l o t (X,Y)
plt . grid ()
p l t . show ( )
Exercice 7 :
def B( n , x ) :
s=1
Exercice 8 :
def marche ( n ) :
s =[0]∗n
f o r i in r a n g e ( 1 , n ) :
s [ i ]= s [ i −1]+2∗ rd . r a n d i n t ( 0 , 2 ) − 1
return ( s )
f o r i in r a n g e ( 1 0 ) :
S=marche ( 3 0 0 0 )
N=[n f o r n in r a n g e ( 3 0 0 0 ) ]
p l t . p l o t (N, S , l i n e w i d t h =0.5)
plt . grid ()
p l t . show ( )
Exercice 9 :
b) observer qu’une fonction impaire a une intégrale nulle sur [−2, 2].
c) On code l’algorithme de Gram-Schmidt (L est une liste de polynômes, BON stocke son orthonormalisée pour le produit scalaire Φ.)
def o r t h o n o r m a l i s e (L ) :
BON=[L [ 0 ] / Norme (L [ 0 ] ) ]
f o r i in r a n g e ( 1 , l e n (L ) ) :
s=L [ i ]
f o r j in r a n g e ( i ) :
s=s −Phi (L [ i ] ,BON[ j ] ) ∗BON[ j ] / Norme (BON[ j ] ) ∗ ∗ 2
BON. append ( s /Norme ( s ) )
return BON
BON=o r t h o n o r m a l i s e ( [ Un , X,X∗ ∗ 2 ,X∗ ∗ 3 ,X∗ ∗ 4 ] )
f o r k in r a n g e ( 5 ) :
print (BON[ k ] . c o e f )
#on v é r i f i e que l a b a s e o b t e n u e e s t b i e n orthonormée :
ps=a r r a y ( [ [ Phi (BON[ i ] ,BON[ j ] ) f o r j in r a n g e ( 4 ) ] f o r i in r a n g e ( 4 ) ] )
d) La matrice de f dans la base (X k )0 ⩽ k ⩽ 4 est triangulaire supérieure, donc son spectre se lit sur sa diagonale. Pour montrer que f
est symétrique, le plus simple est d’observer que la matrice de f dans BON est symétrique (elle est diagonale !)
def f (P ) :
return 2∗X∗P . d e r i v ()+(X∗∗2 −4)∗P . d e r i v ( 2 )
f o r k in r a n g e ( 5 ) :
print ( f (BON[ k ] ) . c o e f , " e t " , ( f (BON[ k ] ) / /BON[ k ] ) . c o e f )
Exercice 11 :
a) b)
import numpy a s np
import numpy . l i n a l g a s a l g
def M( n ) :
A=np . z e r o s ( ( n+1 ,n+1))
f o r i in r a n g e ( n +1):
f o r j in r a n g e ( n +1):
i f j==i +1: A[ i , j ]= j
e l i f i==j +1: A[ i , j ]=n+1− i
return A
On conjecture que Mn a n + 1 valeurs propres distinctes, les n − 2k, avec k dans J0, nK. ; en particulier Mn est DZ
f) Pour k ∈ J0, nK, (X − 1)k (X + 1)n−k est un vecteur propre de f , associé à la valeur propre n − 2k
g) Prendre pour Un la matrice de passage de la base canonique de Rn [X] à la base ((X − 1)k (X + 1)n−k )0 ⩽ k ⩽ n
h)
from numpy . p o l y n o m i a l import P o l y n o m i a l
P=P o l y n o m i a l ( [ − 1 , 1 ] )
Q=P o l y n o m i a l ( [ 1 , 1 ] )
def U( n ) :
return np . t r a n s p o s e ( np . a r r a y ( [ ( P∗∗ k∗Q∗ ∗ ( n−k ) ) . c o e f f o r k in r a n g e ( n + 1 ) ] ) )
f o r n in r a n g e ( 2 , 5 ) :
print ( a l g . i n v (U( n ) ) . dot (M( n ) ) . dot (U( n ) ) )
Exercice 12 :
n n n(n − 1)⋯(n − k + 1) k−1 n − i
On commence par définir une fonction qui calcule ( ) via la formule ( ) = =∏
k k k! i=0 k − i
def b i n o m i a l ( n , k ) :
x=1
for i in r a n g e ( k ) :
x=x ∗ ( n− i ) / ( k − i )
return x
Cette fonction retourne un flottant ; si on veut un résultat entier, écrire return int(x) à la dernière ligne ou x=(x*(n-i))//(k-i) (division
dans N) dans l’avant- dernière.
def V( n ) :
p=1
for k in r a n g e ( n ) :
p=p ∗ b i n o m i a l ( n , k )
return p ∗ ∗ ( 1 / ( n ∗ ( n + 1 ) ) )
Attention : quand on essaie de calculer V (n) pour n > 30, on obtient un message d’erreur car les calculs intermédiaires portent sur des
flottants trop grands. On peut réparer cela :
def V2 ( n ) :
p=1
for k in r a n g e ( n ) :
p=p ∗ b i n o m i a l ( n , k ) ∗ ∗ ( 1 / ( n ∗ ( n + 1 ) ) )
return p
n n−k n
On aurait pu se montrer plus astucieux en remarquant que ( )= ( ).
k+1 k+1 k
def VV( n ) :
p = 1 ; c = 1
for k in r a n g e ( n ) :
c =(n−k ) / ( k + 1 ) ∗ ∗ ( 1 / ( n ∗ ( n +1))∗ c
p = p ∗ c
return p
Exercice 13 : .
import m a t p l o t l i b . p y p l o t a s p l t
import numpy a s np def F( x , e p s ) :
import s c i p y . i n t e g r a t e a s i n t e g r N=i n t ( np . f l o o r ( 1 / e p s ))+1
def f ( x ) : s=0
def h ( t ) : f o r k in r a n g e (N ) :
return t ∗ ∗ ( x −1)/(1+ t ) s +=(−1)∗∗k / ( x+k )
return i n t e g r . quad ( h , 0 , 1 ) [ 0 ] return ( s )
def g ( x ) :
def h ( t ) : # In [ 1 ] : F( 1 / 2 , 1 0 ∗ ∗ ( − 4 ) )
return t ∗ ∗ ( x −1)/(1+ t ) # Out [ 1 ] : 1.5708463217952673
return i n t e g r . quad ( h , 0 , np . i n f ) [ 0 ] #
X=np . l i n s p a c e ( 0 . 0 1 , 2 , 1 0 0 ) # In [ 2 ] : f ( 1 / 2 )
Y=[ f ( x ) f o r x in X] # Out [ 2 ] : 1.5707963267949292
p l t . p l o t (X,Y)
p l t . show ( ) X=np . l i n s p a c e ( 0 . 0 1 , 0 . 9 9 , 1 0 0 )
X=np . l i n s p a c e ( 0 . 0 1 , 0 . 9 , 1 0 0 ) Y=[ f ( x)+ f (1 − x ) f o r x in X]
Y=[ g ( x ) f o r x in X] p l t . p l o t (X,Y)
p l t . p l o t (X,Y) p l t . show ( )
p l t . show ( )
Exercice 14 :
n n n(n − 1)⋯(n − k + 1) k−1 n − i
On commence par définir une fonction qui calcule ( ) via la formule ( ) = =∏
k k k! i=0 k − i
def b i n o m i a l ( n , k ) :
x=1
f o r i in r a n g e ( k ) :
x=x ∗ ( n− i ) / ( k− i )
return x
Cette fonction retourne un flottant ; si on veut un résultat entier, écrire return int(x) à la dernière ligne.
On peut aussi faire : from [Link] import binom
def H( n ) :
A=np . z e r o s ( ( n+1 ,n+1))
f o r i in r a n g e ( n +1):
f o r j in r a n g e ( n +1):
A[ i , j ]= b i n o m i a l ( 2 ∗ ( i+j ) , i+j )
return A
f o r k in r a n g e ( 2 , 1 0 ) :
print ( a l g . d e t (H( k ) ) , a l g . e i g v a l s (H( k ) ) )
Exercice 15 :
An est triangulaire supérieure et ses coeffcients diagonaux sont tous distincts. Ainsi An possède n + 1 valeurs proprees distinctes (les
4k, 0 ⩽ k ⩽ n) donc est diagonalisable et ses espaces propres sont des droites.
X=P o l y n o m i a l ( [ 0 , 1 ] )
def A( n ) :
A=np . z e r o s ( ( n+1 ,n+1))
f o r j in r a n g e ( n +1):
r=l e n ( ( Phi (X∗∗ j ) ) . c o e f )
f o r i in r a n g e ( r ) :
A[ i , j ]=( Phi (X∗∗ j ) ) . c o e f [ i ]
return A
def S ( n ) :
D, P=a l g . e i g (A( n ) )
return P o l y n o m i a l (P [ : , n ] ) / P [ n , n ]
f o r n in r a n g e ( 2 , 5 ) :
print ( S ( n ) , Phi ( S ( n ) ) / ( 4 ∗ n ) )
def H( n ) :
i f n==0: return P o l y n o m i a l ( [ 1 ] )
e l i f n==1: return P o l y n o m i a l ( [ 0 , 1 ] )
e l s e : return X∗H( n −1) −(n −1)/4∗H( n −2)
l e s x=np . l i n s p a c e ( − 2 , 2 , 1 0 0 )
l e s y =[S ( 5 ) ( x ) f o r x in l e s x ]
l e s z =[H( 5 ) ( x ) f o r x in l e s x ]
plt . axis ([ −2 ,2 , −3 ,3])
plt . grid ()
plt . plot ( lesx , lesy )
plt . plot ( lesx , l e s z )
p l t . show ( )
Tout porte à croire que Hn = Sn pour tout n et que Sn admet n racines réelles distinctes.
′ ) = 4(n − 1)S ′ et que donc S ′ n = nS
Pour prouver cela, commencer par observer que ϕn−1 (Sn n n−1 .
Exercice 16 :
def I ( n ) :
def g ( t ) :
return 1/(1+ t ) ∗ ∗ n/np . s q r t (1 − t )
L=i n t e g r . quad ( g , 0 , 1 )
return L [ 0 ]
print ( [ np . l o g ( I ( n ) ) / np . l o g ( n ) f o r n in r a n g e ( 2 5 , 5 0 ) ] )
Exercice 17 :
Le code ci-dessous permet de tracer les graphes des fα sur [−1, 1] pour α ∈ {−0.8, −0.6, −0.4, −0.2, 0, 0.2, 0.4, 0.6, 0.8}.
Exercice 18 :
def simulT ( r ) :
v a l e u r s _ d i f f = [ ] #s t o c k e l a l i s t e des v a l e u r s d i f f é r e n t e s déjà obtenues
n b _ d i f f=0 # nombre de v a l e u r s d i f f é r e n t e s d é j à o b t e n u e s
n b _ e s s a i s=0 # nombre d ’ e s s a i s
while n b _ d i f f <r :
n b _ e s s a i s=n b _ e s s a i s+1
v=rd . r a n d i n t ( 1 , r +1) #on t e n t e une n o u v e l l e v a l e u r
i f v not in v a l e u r s _ d i f f : # v e s t une n o u v e l l e v a l e u r
v a l e u r s _ d i f f . append ( v )
n b _ d i f f=n b _ d i f f+1
return n b _ e s s a i s
def S ( r ) :
s=0
f o r i in r a n g e ( 1 , r +1):
s=s+rd . g e o m e t r i c ( ( r − i +1)/ r )
return s
f o r k in r a n g e ( 2 0 ) :
print ( simulT ( 1 0 ) , S ( 1 0 ) ) #on e s s a i e de comparer l e s l o i s de S e t T
On cherche à compléter un album Panini qui contient r images. Lorsqu’on achète une boite de céréales, on obtient une image (les images
sont réparties aléatoirement et uniformément dans les boites de céréales). Tr donne le nombre de boites de céréales qu’il faut acheter pour
obtenir la collection complète. Pour compléter un album Panini qui contient 100 images, il faut acheter en moyenne 518 images.
Exercice 19 :
def Y ( ) :
n = rd . p o i s s o n ( 1 / 1 2 )
i f n == 0 :
return ( 0 )
else :
s = 0
f o r i in r a n g e ( n ) :
s=s+rd . b i n o m i a l ( 5 0 , 1 / 5 0 )
return ( s )
On approche l’espérance par la moyenne et l’écart-type par la racine carrée de la moyenne des carres moins le carre de la moyenne.
f o r i in r a n g e ( 1 0 ) :
m1 = 0
m2 = 0
f o r k in r a n g e ( 1 0 0 0 ) :
y = Y( )
m1 += y
m2 += y ∗∗2
Esp=m1/1000
E c a r t=np . s q r t (m2/1000 − (m1/ 1 0 0 0 ) ∗ ∗ 2 )
print ( [ Esp , E c a r t ] )