Vous êtes sur la page 1sur 2

Vincent Neiger et Henri Lastakowski 2010–2011

Matlab – TP no 5

1 Trouver le zéro d’une fonction


On s’intéresse ici à différentes méthodes pour déterminer une approximation du zéro d’une
fonction. Prenons par exemple la fonction f définie par f (x) = x3 + 31 x + cos(x) − 43
Q 1.a) À l’aide de la commande fplot, montrer que f est strictement croissante, et
qu’elle admet un unique zéro sur l’intervalle [0,1]. Donner une estimation de ce zéro. (Utiliser
l’aide pour savoir comment utiliser la commande fplot !)

Une première méthode numérique pour déterminer le zéro de la fonction consiste à créer
un tableau de valeurs de x, à créer un tableau des valeurs f (x) correspondantes, et à déter-
miner pour quelle valeur de x, f (x) est le plus proche de zéro.
Q 1.b) Utiliser cette méthode pour avoir une estimation du zéro de f.

Ici, comme on sait que la fonction est monotone, une méthode plus efficace (c’est-à-dire
plus rapide en temps de calcul), est la méthode de dichotomie. Comme f est croissante, on sait
que si f (x) > 0, alors le zéro de f est plus petit que x. On sait que le zéro de f est compris entre
0 et 1, comme f (0.5) < 0, on sait que le zéro de f est dans l’intervalle [0.5 ;1], on calculera donc
ensuite f(0.75) et ainsi de suite.
Q 1.c) Utiliser la méthode de dichotomie pour avoir une estimation du zéro de f .
Combien d’étapes sont nécessaires pour avoir une précision de 10−3 , de 10−6 ? Comparer avec
la méthode précédente.

Si vous êtes motivés, vous pouvez aussi utiliser la méthode de Newton pour trouver le zéro
de la fonction.

2 Crible d’Ératosthène
Il s’agit d’une méthode pour trouver tous les nombres premiers entre 1 et n. On com-
mence par créer un vecteur contenant tous les entiers entre 2 et n. Ensuite, à chaque étape,
on procèdera comme suit :
– Si le premier nombre du vecteur est "barré", on ne fait rien.
– Si le premier nombre n’est pas "barré", on barre tous les multiples de ce nombre contenus
dans le vecteur.
Q 2.a) Utiliser sur papier le crible d’Ératosthène pour déterminer les nombres pre-
miers entre 1 et 40.
Q 2.b) Implémenter cet algorithme dans Matlab pour déterminer tous les nombres
premiers entre 1 et n.
Matlab – TP no 5 2/2

3 Résolution d’une équation différentielle


On ne trouve pas toujours de solution analytique à une équation différentielle. On a donc
souvent recours à l’outil informatique pour résoudre numériquement des équations. La plus
ancienne méthode (qui n’est pas la plus efficace), est la méthode d’Euler. Considérons par
exemple l’équation de l’oscillateur amorti :

d2 x ω0 dx
2
(t) = − (t) − ω02 x(t) (1)
dt Q dt
La méthode d’Euler consiste à réaliser à chaque étape :
- x(t + dt) = x(t) + dt ∗ dx dt (t)
2
dx
- dt (t + dt) = dt (t) + dt ∗ ddt2x (t)
dx
2
- Calculer ddt2x (t + dt) à partir de l’équation (1)
On prendra ω0 = 1, diverses valeurs de Q, et on partira des condtions initiales x(0) = 1,
dx
dt (0) = 0.
Q 3.a) Utiliser la méthode d’Euler pour tracer l’évolution temporelle de x, dx
dt , ainsi
que le portrait de phase de l’oscillateur amorti. On choisira de manière judicieuse la taille de
l’intervalle temporel et la valeur de dt.