PROGRAMMATION SCIENTIFIQUE EN C PRO-1027
Résolution de système d’équations non-linéaires (racines d’équations) u Introduction u Méthode de recherche directe des racines u Exemple de recherche directe –Problème d’optimisation (échelle)
Introduction u Les équations non-linéaires peuvent être exprimées sous une forme, f(x) = 0 u Les valeurs de x qui satisfont f(x) = 0, sont les raci- nes et représentent par le fait même les solutions
Introduction
u Pour des fonctions simples, les racines peuvent être trouvées de façon analytique u Pour un polynôme de degré 2:
Introduction u Les racines d’un polynôme de degré 3 peuvent aussi être déduites de manière analytique u Pour des polynômes de degré supérieur, il faut utiliser des méthodes numériques de localisation des racines puisqu’aucune solution analytique existe u La plupart des fonctions non-linéaires, non-poly- nômiales requièrent aussi l’utilisation d’algorith- mes numériques de recherche de zéros de fonctions
Méthode de recherche directe u Nous pouvons trouver les racines d’une fonction non-linéaire par une approche essai et erreur par laquelle la fonction f(x) est évaluée à plusieurs points sur un intervalle [a,b] sur l’axe x jusqu’à ce que f(x) = 0 u Mais la chance de trouver les racines exactes est faible u Par contre, nous savons qu’une estimation des valeurs des racines est souvent suffisante
Méthode de recherche directe u La méthode directe est la plus facile mais aussi la moins efficace u Les étapes de cette méthode sont: –Définir un intervalle [a,b] à l’intérieur duquel nous devrions trouver les racines –Subdiviser l’intervalle [a,b] en sous-intervalles plus petits et uniformément espacés. La dimension des sous-intervalles est fonction de la précision recher- chée
Méthode de recherche directe u Les étapes de cette méthode sont: –Parcourir chaque sous-intervalle jusqu’à ce qu’un sous-intervalle contenant une racine soit localisé. Ceci survient quand f(x) = 0 dans un sous-intervalle u Nous pouvons déterminer la présence d’une racine dans un sous-intervalle [A,B] en déteminant si f(A)f(B) < 0
Méthode de recherche directe
u Algorithme de recherche directe racineDIR(float a, float b, float eps) nint = (int)((b-a)/eps) + 1 deltax = (b-a)/(float)(nint) xd = a xf = xd + deltax POUR i allant de 1 à nint FAIRE fxd = F(xd) fxf = F(xf) SI (fxd*fxf <= 0) FAIRE Imprimer l’intervalle [xd,xf] FIN SI xd = xf xf = xd + deltax FIN POUR
Méthode de recherche directe u Algorithme de recherche directe –Problèmes possibles (racines multiples et discon- tinuitées
Exemple de recherche directe (problème d’optimisation) u Utilisation de la recherche directe
Exemple de recherche directe (problème d’optimisation) u Utilisation de la recherche directe
Exemple de recherche directe (problème d’optimisation: voir exempleEchelle.xls)
Passage par zéro à 45 degré l 1 +l 2 = 28,28
Rappels sur les notions de dérivées u Dérivée de fonctions usuelles
Rappels sur les notions de dérivées u Dérivée de fonctions usuelles
Rappels sur les notions de dérivées u Règles de dérivée
Rappels sur les notions de dérivées u Règles de dérivée