Académique Documents
Professionnel Documents
Culture Documents
ECG 2B
M. Brunault
x = 2 x = 6 a = 0
y = 7 y = 1 b = - 1
x = 3*x-2 x = y a = a + b
y = y y = x b = a - b
y+x x +y a
x*y x-y b
Q3 On souhaite écrire un programme swap qui échange la valeur des variables a et b. Que proposez-vous ?
1
3 Structures if, for, while
Q4 Écrire un programme qui demande un nombre réel r et renvoie sa racine carrée, ou un message Nombre négatif. On
utilisera from math import sqrt pour importer la fonction racine carrée.
Q5 Écrire le résultat attendu de ces instructions. Vérifier les résultats dans la console Python.
b = 5 b = 5 b = 5
for i in range(0,3): for i in range(0,3): x = b
b = b + 1 b = b + 1 for i in range(0,3):
x = b x = b b = b + 1
print(x) print(x) print(x)
Q6 On considère la suite définie par u0 = −1 et un+1 = 1 − eun . Compléter le code suivant, qui calcule le plus petit entier
n pour lequel |un | < 0.001
4 Fonctions
Q7 Écrire une fonction tente qui associe à un nombre flottant x le nombre 1+x si -1 <= x <= 0, 1-x si 0 <= x <= 1 ;
et 0 sinon.
def tente(x):
.............................
.............................
.............................
Q8 Ecrire une fonction factorielle qui prend en entrée un entier n et qui renvoie n!.
5 NumPy
1. Qu’est-ce que NumPy ? C’est la boite à outils indispensable pour faire du calcul scientifique en Python.
2. A quoi ça sert pour les concours ? C’est la bibliothèque qui permet la manipulation rapide de vecteurs et de matrices.
Elle permet également de simuler des expériences aléatoires. Certaines de ses fonctions sont exigibles par cœur.
3. Comment je l’utilise ? On l’importe avec la commande import numpy as np.
4. Et si je veux en savoir plus ? Lire https ://numpy.org/doc/stable/numpy-user.pdf (531 pages en anglais !)
2
5.1 Progressions arithmétiques
Il y a deux façons de générer des progressions arithmétiques : np.linspace et np.arange.
— np.linspace(a,b,k) crée un vecteur de taille k constitué de valeurs régulièrement réparties dans [a, b]. On contrôle
alors directement la taille du vecteur construit
— np.arange(a,b,pas) crée un vecteur constitué de valeurs dans [a, b[, et espacées de la valeur de pas. On contrôle alors
le pas de la subdivision. Attention, b n’est pas inclus !
Q10 Trouver une commande avec np.arange équivalente à np.linspace(0,1,11)
Q11 Trouver une commande avec np.linspace équivalente à np.arange(4,1,-0.2)
5.2 Matrices
1 2 ... n−1 n
2 3 ... n 1
Q12 Compléter la fonction A qui prend en entrée l’entier n et renvoie la matrice A = .
..
..
. ... ...
n ... ... n−2 n−1
def A(n):
mat = np. ______________________________ # TO DO
for i in range(____________________________): # TO DO
for j in range(__________________________): # TO DO
___________________________________ # TO DO
return mat
On rappelle que a % b renvoie a modulo b.
Q13 Écrire une fonction trace(M) qui prend en entrée une matrice carrée M et renvoie sa trace.
6 Exercices de révisions
Q14 On considère la suite (un ) définie par u0 = 1 et un+1 = 1/2 · (un + u2n ). Construire un vecteur contenant ses 20
premiers termes. Que constate-t-on numériquement ? Commentaire.
Q15 Compléter le programme suivant pour qu’il simule le nombre d’expériences faites avant le premier succès dans une
sucession d’expériences indépendantes de paramètre de succès 1/2.
import numpy as np
import numpy.random as rd
u=rd.random()
y = ------------
while -----------------:
---------------
---------------
print(’la valeur de y est :’,y)
Q16 On considèrep l’application φ définie sur R+ par φ(x) = 1 − x2 · ln(x) si x > 0, φ(x) = 1 sinon. On définit les suites
(an ) et (bn ) par a0 = (2), b0 = 2 et :
— Si φ( an +b
2
n
) est du signe de φ(an ) alors an+1 = an et bn+1 = an +bn
2
— Si φ( an +b
2
n
) est du signe de φ(bn ) alors bn+1 = an et an+1 = an +bn
2
Écrire un programme qui calcule et affiche a7 et b7 R 1 xn
Q17 On considère la suite d’ intégrales définie par In = 0 (1+x) 2 pour n ∈ N. Calculer I0 et I1 puis compléter le script
suivant pour qu’il permette le calcul de In dans la variable b (indication : chercher une relation de récurrence)
import numpy as np