Programmation C : Travaux Pratiques III

publicité
K. El Omari – 1
Programmation C : Travaux Pratiques III
Programmation C : Travaux Pratiques III
2ème Année IUT GTE, UPPA
Zéros de fonctions
On se propose de développer des programmes pour le calcul des racines réelles de l’équation
f (x) = 0, où f est une application IR −→ IR. Il s’agit de trouver le zéro (unique) de cette fonction
dans un intervalle [a,b].
Créer un programme pour tracer une fonction entre deux bornes a et b.
Créer un programme pour résoudre f (x) = 0 sur un intervalle [a,b] en utilisant :
–
–
–
–
l’algorithme de bissection (ou de dichotomie) ;
l’algorithme de Newton-Raphson ;
l’algorithme de la sécante
et l’algorithme de la fausse position.
Introduisez des vérifications (sécurités) des données de l’utilisateur, et présentez les résultats, de
façon soignée, en les comparant à la solution exacte.
Afin de prévilégier la modularité, programmez chaque algorithme dans une fonction séparée.
Proposer des options supplémentaires :
– Menu utilisateur
– choix d’une méthode ou comparaison des trois
– ...
Etudier les fonctions :
– f (x) = x3 − 3x2 − 3x − 35 dans [0 , 7]
exp(10x) − 1
– f (x) =
− 0, 5 dans [0 , 1]
exp(10x) + 1
– f (x) = (x − 0, 5)2 − 0, 001 dans [0 , 1] et dans [0,5 , 1]
Annexe : Algorithmes
Méthode de dichotomie
1. A partir d’un intervalle [a,b] (f (a) · f (b) < 0)
a+b
2. c =
2
3. si f (a) · f (c) < 0 : b = c
sinon : a = c
4. si |a − b| > : revenir à l’étape 2
sinon la solution est : ?
cette méthode peut être lente mais elle reste efficace.
Programmation C : Travaux Pratiques III
K. El Omari – 2
Méthode de Newton-Raphson
1. On part d’un point a au voisinage du zéro recherché (ex : milieu de l’intervalle)
f (a)
2. ∆ = − 0
f (a)
3. si |∆| > : a = a + ∆ : retour étape 2
sinon : la solution est a
cette méthode est assez rapide mais elle suppose la connaissance de la dérivée f 0 , la méthode suivante
est moins rapide mais elle n’a pas cette contrainte.
Méthode de la sécante
f (xk ) − f (xk−1 )
xk − xk−1
1. On part de deux points x0 et x1 au voisinage du zéro recherché (ex : a et b)
b−a
2. c = a − f (a)
f (b) − f (a)
3. err = |c − a|
Ici on remplace f 0 (xk ) par son approximation
4. a = b, b = c
5. si err > : retour étape 2
sinon : la solution est c
les méthodes de Newton-Raphson et de la sécante peuvent diverger. La méthode suivante est une
variante de la sécante avec une certaine précaution pour consolider la convergence.
Méthode de la fausse position
1. On part de deux points x0 et x1 au voisinage du zéro recherché (ex : a et b)
b−a
2. c = a − f (a)
f (b) − f (a)
3. si f (a) · f (c) < 0 : err = b − c , b = c
sinon : err = a − c , a = c
4. si |err| > : retour étape 2
sinon : la solution est c
Téléchargement