Date post: | 31-Dec-2015 |
Category: |
Documents |
Upload: | price-walters |
View: | 27 times |
Download: | 1 times |
PROGRAMMATION SCIENTIFIQUE EN C
PRO-1027
Résolution de système d’équations non-linéaires (racines d’équations)
Introduction Méthode de recherche directe des racines Travail pratique 2 a
– Recherche directe
– Impression dans un fichier
– Visualisation avec xgraph Examen 1
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:
a
acbbx
a
acbbx
cbxax
2
4
2
4
0
2
2
2
1
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 recher-ché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éteminant si f(A)f(B) < 0
Méthode de recherche directe
Méthode de recherche directe
Algorithme de recherche directeracineDIR(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
Algorithme de recherche directe – Problèmes possibles (racines multiples et discon-
tinuitées
Travail pratique 2 a
Utilisation de la recherche directe
Travail pratique 2 a
Utilisation de la recherche directe
0sin
cos
)(sin
)cos(
sin)sin()(
sin
sin
21
22
1221
12
21
C
Cw
CA
CAw
dC
dl
C
w
CA
wllCl
CABC
wl
B
wl
Travail pratique 2 a
Impression dans un fichier
void ecrireFONCTION(float *f, float *x, char *argv[])
{
int i;
FILE *fptr;
fptr = fopen(argv[ ], ’ ’w ’ ’);
for(i=0;i<=NBVAL;i++)
fprintf(fptr, ’ ’%f %f \n ’ ’,x [i],f[i]);
fclose(fptr);
}
Travail pratique 2 a
Visualisation avec xgraph
xgraph fich