Vous êtes sur la page 1sur 3

Faculté des Sciences Semlalia

Marrakech Analyse Numérique


Département de Mathématiques Série 2 de TP SMA4-SMI4/2023

Créer un dossier TP2 dans lequel vous enregistrez les exercices de ce TP.

Partie 1 : Semaines du 27 féverier et 6 mars 2023

Exercise 1. Nommer le script de cet exercice Tp2_ex1_bissec.py


On considère l’équation :
cos(πx/4) − (x − 0.5)2 = 0 (1)

1. Écrire une fonction f d’argument un réel x et qui renvoie la valeur de cos(πx/4) − (x − 0.5)2 .

2. Écrire une fonction utilisant la méthode de bissection nommée bissec d’arguments :

• les deux bornes a, b de l’intervalle de recherche d’une racine de (1),


• la précision ε souhaitée,
• Nmax un nombre maximal d’itérations à ne pas dépasser.

Cette fonction fournit en résultat une racine approchée de (1) à la précision ε dans l’intervalle
[a, b] et le nombre d’itérations effectuées.
On va chercher s’il y a des racines de f dans [−1, 2].

3. Ecrire des instructions pour :

• lire au clavier a, b, ε et Nmax au clavier (attention de vérifier si f (a)f (b) ≤ 0),


• afficher : soit le message "attention! changer intervalle", soit la valeur d’une
racine trouvée (1) avec le nombre d’itérations effectuées, soit le message
"nombre maximal iterations atteint". On affichera aussi le nombre d’iterations
minimal théorique.
Tester pour  = 10−7 , N max = 30 et en choisissant sucessivement l’intervalle:
(i) a = −1, b = 2, (ii) a = −1, b = 1, (iii) a = 0, b = 1, (iv) a = 0, b = 2

L’exécution doit être comme suit :

Donner les bornes : ...


si f(a)f(b)>0 : message "attention!! changez d’intervalle".
Sinon :
Donner une precision : eps = ...
Donner un nombre max d’iterations : ...
La racine est : ...
Nombre iterations est : ...
Nombre iterations theorique est : ...

Retestez tout pour  = 10−12 , N max = 30, puis N max = 50. Commenter les résultats.
Exercise 2. Nommer le script de cet exercice Tp2_ex2_fixe1.py

1. Soit l’équation x2 = 4 sin(x),


p Montrer q’une solution de cette équation est un point fixe des
fonctions x = g1 (x) = 2 sin(x) (si sin(x) ≥ 0) et de g2 (x) = 4 sin(x)/x (si x 6= 0).

2. Ecrire dans le script «Tp2_ex2_fix1.py»

(a) les fonctions g1 (x), g2 (x),


(b) une fonction ptFixe(x0,EPS,Nmax) d’arguments :
• x0 point initial,
• EPS précision souhaitée et Nmax nombre maximal à ne pas dépasser.
Cette fonction doit utiliser une boucle while et le critère d’arrêt des calculs
|xn+1 − xn | <  ou n ≥ Nmax. Elle retourne un point fixe r de g1 et le nombre niter
d’itérations effectués.

3. Ecrire des instructions pour :

• lire x0,EPS,Nmax au clavier,


• si niter ≥ Nmax on affiche "méthode divergente",
• sinon : on affiche le point fixe et le nombre d’itérations effectuées.

Tester pour une précision de 10−7 , Nmax=20 et x0 de votre choix. Faire plusieurs tests : par
exemple : x0 = 0.5, 1.5, 2, 2.5, 3. Que conclure ?
(Facultatif ) : Compléter le script pour programmer la constante de convergence asymp-
totique et le nombre minimal d’itérations théorique. Pour cela, modifier ptFixe qui doit
retourner r, niter et la constante k = max |g 0 (xn )|.
n≥0

4. Recommencer l’étude pour g2 en prenant  = 10−7 , Nmax = 20, 200, 2000 et un terme initial
de votre chloix. Que conclure ?

Exercise 3 (Facultatif ). On considère les deux fonctions f (x) = x − x3 et g(x) = x + x3 .

1. Déterminer les points fixes de f et g dans l’intervalle [−1, +1].

2. Ecrire un script Tp2_ex3_fixe2.py dans lequel :

• on définit les fonctions f et g


• On définit une fonction ptFixe2(a,b,x0,EPS,Nmax) d’arguments :
– les bornes a, b de l’intervalle contenant le point fixe de f
– le point initial x0 , la précision souhaitée EPS et le nombre maximal Nmax d’itérations
à ne pas attaindre.
• Cette fonction réalise les itérations du point fixe de xn+1 = f (xn ), n = 0, 1 . . . en
utilisant une boucle for. Attention elle doit vérifier si xn+1 ∈
/ [a, b], alors on arrête
l’exécution par un message Hors intervalle!!
• Les calculs sont arrêtés lorsque l’erreur |xn+1 − xn | <  ou n ≥ itermax, pour un petit
nombre  > 0 et la fonction renvoie le point fixe de f et le nombre d’itérations.

3. Tester la fonction pour  = 10−6 , N max = 5000 et afficher des messages telle que
"suite divergente" ou "suite convergente vers ... apres ... iterations" .
Expliquer les résultats.

4. Refaire l’étude pour le point fixe de g.

TP/Analyse Numérique Page 2 SMA4-SMI4/2023


Partie 2 : Semaines du 6 mars et 13 mars 2023

Exercise 4. Nommer le script de cet exercice Tp2_ex4_newton.py


On considère l’équation √
x π 3
− + sin(x/2) + − =0 (2)
4 6 2
1. Montrer que (2) admet deux racines dans [−2π, π], l’une notée r1 négative simple et l’autre
notée r2 positive double. (on pourrait illustrer par un graphique).

2. Définir explicitement la suite (xn ) générée par la méthode de Newton pour résoudre numérique-
ment (2). Préciser une valeur de x0 qui assure la convergence de (xn )n vers r1 . Justifier.

3. Avec le choix de x0 de la question 2., donner l’ordre de convergence de (xn )n et le facteur


de convegence asymptotique en fonction de r1 .

4. Décrire brièvement les problèmes numériques qui risquent de survenir pour approcher r2 .

5. Ecrire une fonction nommée newton qui implémente l’algorithme de newton d’une équation
fonc(x)=0, où fonc est une fonction quelconque de dérivée dfonc :
def newton ( fonc , dfonc , x0 , tol , nmax ) :
...
for ...
...

• Les arguments sont : fonc,dfonc,x0 : terme initial, tol une tolérance pour la
précision et nmax le nombre maximal d’itérations permis.
• La fonction utilise une boucle for et dresse un tableau avec les colonnes
en en
n, xn , en = |xn+1 − xn |, , ,n ≥ 1
en−1 e2n−1
(cette fonction ne retourne pas de résultat : ne contient aucune instruction return)
• Le critère d’arrêt de calcul des itérées xn sera en < tol
• Les instructions qui testent la fonction affichent notamment
– si la convergence a lieu : la racine, le nombre d’itérations,
– et éventuellement la constante de convergence asymptotique théorique.
– un message de divergence sinon.

6. Tester la fonction pour approcher la racine négative, en partant de x0 = −5 avec une


précision tol = 10−6 , et un nombre d’itérations maximal Nmax = 40. Afficher les résultats
en format scientifique et les commenter en comparant avec la valeur théorique de la constante
de convergence asymptotique.

7. Refaire l’étude cette fois-ci en partant de x0 = −2.5. La méthode converge vers quelle
racine ? Préciser l’ordre de convergence et comparer avec la question (6)

8. Initialiser maintenant respectivement en x0 = −3, −2, −1.9, −1.8, −1.5, 1.5, 2.3.
Observer les résultats, expliquer et conclure.

9. (Facultatif ) Modifier le programme précédent en utilisant les résultats du cours et exécuter


à nouveau pour montrer que la convergence vers r2 est quadratique pour x0 voisin de r2 .

TP/Analyse Numérique Page 3 SMA4-SMI4/2023

Vous aimerez peut-être aussi