La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 ANALYSE NUMERIQUE M.CHAYVALLE- D. HERVOUET - H.ROLANDO- I. RAYNE TP A2 - Travail de groupe CNAM 2002-2003.

Présentations similaires


Présentation au sujet: "1 ANALYSE NUMERIQUE M.CHAYVALLE- D. HERVOUET - H.ROLANDO- I. RAYNE TP A2 - Travail de groupe CNAM 2002-2003."— Transcription de la présentation:

1 1 ANALYSE NUMERIQUE M.CHAYVALLE- D. HERVOUET - H.ROLANDO- I. RAYNE TP A2 - Travail de groupe CNAM

2 2 ANALYSE NUMERIQUE

3 3 PRESENTATION Le Menu… A lexécution du programme une fenêtre parent dimensionnable souvre, dans sa barre de menus se trouvent les fonctions du programme soit: FICHIER, ETUDE et AFFICHAGE. La construction du menu est réalisée par un fichier de ressources : ressource.h Chaque fois que lutilisateur sélectionne un item du menu dans le programme, Windows envoie un message WM_COMMAND à la boucle de message. Au sein de la boucle de message, le programme vérifie la valeur du mot de moindre poids du DWORD wParam pour déterminer litem de menu sélectionné. Les Items du menu… FICHIER déroule un sous-menu contenant les actions: Nouveau,Ouvrir,Enregistrer,Quitter. Nouveau et Ouvrir permettent de stocker un polynôme dans un tableau : polynôme [i], dont la dimension sera donnée par la valeur du degré du polynôme.

4 4 PRESENTATION (suite) OUVRIR, permet d appeler un polynôme enregistré. NOUVEAU, permet, à laide de boites de dialogue successives, de saisir le degré max du polynôme ainsi que les coefficients des puissances de x. Les boites de dialogue initialisées sur [dMax], décrémentent la valeur des exposants pour chaque coefficients constituant notre polynôme [dMax – 1] jusquà 0, à laide des boutons Suivant, Précédent et Terminé. Les différentes valeurs saisies pourront être mémorisées par ENREGISTRER. Lorsque polynôme[i] est renseigné les différentes procédures se cachant derrière ETUDE deviennent actives, soient : - FONCTION - GRAPHE Ces deux procédures sont exécutées à lintérieur de fenêtres enfants supportées par notre fenêtre principale.

5 5 ALGORITHME Lalgorithme de Bairstow... Le programme est principalement articulé autour de cet algorithme, ( recherche des racines dun polynôme de degré n). Pour cela on utilise la méthode de "Léonard Bairstow". Elle consiste à calculer tous les facteurs quadratiques de P(x). n P(x) = a 0 (x 2 + Pjx + qj) si P est un polynôme de degré 2n. J=1 n P(x) = a 0 (x – γ) (x 2 + Pjx + qj) si P est un polynôme de degré 2n+1. J=1

6 6 ALGORITHME (suite) (p0, qo) arbitraire : Itération:

7 7 ALGORITHME (suite) Résultat: Soient p la limite de la suite p (i) et q la limite de la suite q (i) b k la limite de la suite b k (i) et c k la limite de la suite c k (i) P(x) = (x 2 + px + q) (b 0 x n-1 + b 1 x n b n-1 ). On recommence l'opération en remplaçant les a i par les b i, en prenant pour valeurs de départ dans cette nouvelle étape les valeurs de p et q obtenues à la précédente, et ainsi de suite jusqu'à ce qu'on ait déterminé tous les facteurs quadratiques de P, d'où l'on déduit ses racines. Les racines du polynôme nous permettent entre autres de tracer la courbe de la fonction polynomiale, et ce, de façon centrée à lintérieur de la fenêtre enfant Graphe. Les racines réelles et complexes seront affichées par la procédure Fonction et serviront à lélaboration du tableau de variation.

8 8 FONCTIONNEMENT (Procédure graphe) dist_y dist_ x

9 9 FONCTIONNEMENT (Procédure graphe suite ) Nous commençons par déclarer trois variables en static nommées : dist_x, dist_ y et dist. Lorsque dMax = 2, dist correspond à la position graphique de la racine max, or cette racine risquant dêtre confondue avec le bord de notre fenêtre on lui retranche, pour laffichage, 20% de la zone graphique. Il en sera de même pour la racine mini. dist_x représente la distance graphique entre la première et la dernière racine, celles-ci déterminées par lalgorithme de Bairstow. Les racines du polynôme sont ensuite triées par la fonction " tri_bulle". dist_y est directement calculé à partir de la dérivée f (x). Après comparaison des valeurs dist_x et dist_y, la valeur de dist sera ajustée et prendra la valeur 1.4 dist_x ou 1.4 dist_y, ceci déterminant la taille de la zone d affichage p/r à la taille de la fenêtre graphique.

10 10 FONCTIONNEMENT (Procédure graphe suite ) De cette façon la courbe de léquation sera complètement affichée dans la fenêtre, sans débordements horizontaux même dans le cas déquations à forts coefficients et à degrés importants. Pour les polynômes de degrés supérieurs à 2 le principe reste le même, les valeurs 1.4 sont remplacées par 3. Le tracé des courbes f(x) et f (x) est effecué par un balayage suivant laxe (x,x).La fonction : "calculxy" nous renvoie la position "coordy" correspondante. On utilise ensuite MoveToEx et LineToEx pour tracer les courbes.

11 11 FONCTIONNEMENT (Procédure fonction) On travaille laffichage des différents éléments grâce à la fonction Paint. En utilisant la fonction TextOut qui écrit une chaîne à un emplacement déterminé, avec la concaténation de différentes chaînes de caractères dépendant des différents affichages désirés. Affichage fonction se fait par une écriture en ligne de tous les différents polynôme[i] avec leurs signes, mais seulement ceux, dont la valeur est différente de 0. Affichage du domaine de définition se fait uniquement par une phrase car on travaille uniquement avec des polynômes. Affichage de la parité se fait grâce à la fonction paire(reel,int&) qui reçoit les différentes racines réelles du polynôme, triées par tri_bulle. On utilise alors la plus grande racine réduite à une valeur entière et augmentée de 10. Puis on compare le résultat pour chaque valeur entre 0 et cette valeur de racine avec le résultat de lopposé de cette valeur obtenu par calculxy(xy). Ceci renvoie un integer qui est ensuite interprété pour former une chaîne de caractères caractéristique de la parité de la fonction.

12 12 FONCTIONNEMENT (Procédure fonction suite) Affichage de la dérivé se fait pareillement à laffichage de la fonction. Mais en utilisant au préalable la fonction derive(polyderive) qui permet dobtenir les différents coefficients de la dérivé. Affichage des racines se fait dans une ListBox afin de gagner de la place et de pouvoir visualiser toutes les racines. Elles sont calculées grâce à eq_Bairstow et eq_trinôme et ensuite triées. Affichage du tableau de variation se fait avec Paint, en utilisant la fonction signederive qui fait appel à calculderive.

13 13 CONCLUSION Finalement toute la fonctionnalité du programme est articulée autour de lalgorithme de Bairstow, qui nous renvoie donc les racines réelles et complexes des équations polynomiales étudiées. Un calcul sur les racines nous permet de déterminer le ratio pour laffichage des courbes f(x), f (x) et nous aide à lélaboration du tableau de variations. En revanche pour les équations à forts coefficients et degrés élevés, des erreurs de traitement peuvent être générées par cet algorithme, le programme se fige. Il reste tout à fait fonctionnel pour des équations simples. Laffichage des racines dans une List box de la procédure " Fonction " est limitée par la taille de notre fenêtre graphique; si les racines sont nombreuses le tableau de variation napparaît pas complètement. Lajout dune " Scroll barre " serait donc nécessaire et reste à développer dans la procédure " Fonction ". Dautre part, une erreur réside dans lordonnancement des racines pour laffichage dans la List box.

14 14 CONCLUSION (suite) En ce qui concerne le Graphe, les courbes représentées sont centrées par rapport à la fenêtre à laide des racines min et max. Il a donc été possible dafficher correctement laxe des abscisses courbe (hauteur) par rapport à laxe des ordonnées y de la fenêtre graphique. La courbe coupe à la bonne position laxe des abscisses (x,x) en ses racines, par contre une difficulté persiste dans le centrage de laxe (y,y) p/r à la courbe, cette représentation reste à développer. La solution réside très certainement dans lexploitation des coordx p/r au balayage des y( le principe inverse est utilisé pour laffichage de la courbe). Ceci nécessite délaborer un nouveau "pas" traduisant les coordonnées courbes p/r aux coordonnées graphiques de la fenêtre Windows. CQFD


Télécharger ppt "1 ANALYSE NUMERIQUE M.CHAYVALLE- D. HERVOUET - H.ROLANDO- I. RAYNE TP A2 - Travail de groupe CNAM 2002-2003."

Présentations similaires


Annonces Google