PROGRAMMATION SCIENTIFIQUE EN C
Résolution de système d’équations non-linéaires (racines d’équations) Introduction Méthode de recherche directe des racines Exemple de recherche directe Problème d’optimisation (échelle)
Introduction Les équations non-linéaires peuvent être exprimées sous une forme, f(x) = 0 Les valeurs de x qui satisfont f(x) = 0, sont les raci-nes et représentent par le fait même les solutions
Introduction
Introduction Pour des fonctions simples, les racines peuvent être trouvées de façon analytique Pour un polynôme de degré 2:
Introduction Les racines d’un polynôme de degré 3 peuvent aussi être déduites de manière analytique 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 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 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 Mais la chance de trouver les racines exactes est faible Par contre, nous savons qu’une estimation des valeurs des racines est souvent suffisante
Méthode de recherche directe La méthode directe est la plus facile mais aussi la moins efficace 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 recherchée
Méthode de recherche directe 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 Nous pouvons déterminer la présence d’une racine dans un sous-intervalle [A,B] en déterminant si: f(A)f(B) < 0
Méthode de recherche directe
Méthode de recherche directe 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 FIN POUR
Méthode de recherche directe Algorithme de recherche directe (voir l’exemple EX-RACINE-DIRECTE)
Méthode de recherche directe Algorithme de recherche directe Problèmes possibles (racines multiples et discon-tinuitées
Exemple de recherche directe (problème d’optimisation) Utilisation de la recherche directe
Exemple de recherche directe (problème d’optimisation) Utilisation de la recherche directe
Exemple de recherche directe (problème d’optimisation: voir exempleEchelle.xls)
Exemple de recherche directe (problème d’optimisation: voir exempleEchelle.xls) Passage par zéro à 45 degré l1+l2 = 28,28
Exemple de recherche directe (problème d’optimisation: voir le projet EX-ECHELLE) Passage par zéro à 45 degré l1+l2 = 28,28
Rappels sur les notions de dérivées Dérivée de fonctions usuelles
Rappels sur les notions de dérivées Dérivée de fonctions usuelles
Rappels sur les notions de dérivées Règles de dérivée
Rappels sur les notions de dérivées Règles de dérivée