Vous êtes sur la page 1sur 7

Analyse numrique pour ingnieurs Quatrime dition Programmes Matlab

Andr Fortin Professeur titulaire GIREF Dpartement de mathmatiques et de statistique Universit Laval 14 aot 2012

Commentaires gnraux
Plusieurs des mthodes dcrites dans le livre sont disponibles sous forme de programme dans le langage Matlab. Ces programmes sont disponibles ladresse : Les programmes principaux se trouvent dans le chier : programmes_matlab_analyse_numerique.zip Ces programmes ncessitent lutilisation de fonctions dont on trouvera des exemples dans le chier : exemples_fonctions.zip La dcompression de ces deux chiers produira les rpertoires : programmes_matlab_analyse_numerique et exemples_fonctions Tous les programmes fournis fonctionnent essentiellement de la mme manire, avec des arguments dentre et de sortie qui varient suivant la mthode. Un simple copier-coller des exemples dappel (obtenu laide la commande help ) est souvent susant pour les utiliser. Vous pouvez aussi vous inspirer des programmes fournis pour crer vos propres applications dans Matlab.

Programmes du chapitre 2
1. Mthode de la bissection : bissection.m 2. Mthode des points xes : points_fixes.m 3. Mthode de Newton : newton.m 4. Mthode de la scante : secante.m 5. Mthode de Steenson : steffenson.m Les mthodes de la bissection, de Newton et de la scante ncessitent de dnir la fonction f (x) dont on cherche les racines. La fonction : fonc.m en est un exemple. Rappelons que la mthode de Newton ncessite aussi la drive de la fonction : derivee_fonc.m dont on trouvera des exemples dans le rpertoire : exemples_fonctions On peut aussi utiliser des fonctions dites anonymes dont la syntaxe est : f_anonym = @ (x) x.^2 -2 ou encore f_anonym2 = @ (x,y) x.^2 + y.^2 -2 pour une fonction de deux variables. Les mthodes des points xes et de Steenson utilisent une fonction g (x) comme dans le chier : g.m dont on trouvera aussi un exemple au mme endroit. Pour obtenir laide en ligne dans le logiciel Matlab, il sut dutiliser la commande help suivi du nom du programme matlab (sans le suxe .m), comme par exemple help newton du chapitre 2 qui fera apparatre :

Methode de Newton en une variable pour resoudre f(x) = 0 Programmeur: A. Fortin Reference: Analyse numerique pour ingenieurs, A. Fortin, Presses internationales Polytechnique, 2008 Section 2.4 Exemples dappel: [x, err] = newton(fonc, derivee_fonc, 2.0, 10, 1.0e-6) [x, err] = newton(fonc, derivee_fonc, 2.0, 10, 1.0e-6, resul.dat) Si vous avec une fonction anonyme (@) (on ne met pas les apostrophes) [x, err] = newton(f_anonyme, df_anonyme, 2.0, 10, 1.0e-6) [x, err] = newton(f_anonyme, df_anonyme, 2.0, 10, 1.0e-6, resul.dat) Arguments Entree: 1) f: Le nom entre apostrophes ( ) du fichier .m contenant la fonction f(x). comme par exemple fonc (correspondant a un fichier fonc.m) ou encore le nom de la fonction anonyme comme par exemple f_anonyme = @(x) x*x - 2.; 2) df: mmes indications quau point 1 mais pour la drive de la fonction; 3) x0: Vous devez fournir un estime initial. 4) nmax: Vous devez fournir le nombre maximal diterations. 5) epsilon: Vous devez fournir le critere darret. 6) resul: Si vous voulez les resultats dans un fichier, vous devez fournir le nom entre apostrophes ( ) de ce fichier. Exemple: resul.dat qui creera un fichier nomme resul.dat. Retour: 1) x est un vecteur contenant les differentes iterations. 2) Sil y a convergence, err est le vecteur dont les composantes sont |x_n - r|, r etant la racine trouvee. Sinon, err est une matrice vide. Il sut donc de modier votre guise les arguments pour rsoudre un problme laide de la mthode de Newton.

Programmes du chapitre 3
Matlab possde sa fonction propre pour la dcomposition LU . On peut lappeler par la commande : [P, L, U] = lu(A) On peut rsoudre un systme linaire de la forme Ax = b laide des commandes : b1 = P*b; y = L\b1; x = U\y; % Permutation du vecteur b % Systme triangulaire infrieur % Systme triangulaire infrieur

ou de manire encore plus concise par la commande : x = A\b ; qui fait toutes ces oprations dun seul coup. On peut aussi calculer le dterminant dune matrice par la commande : det(A) ; sa norme par la commande : norm(A,1) ou norm(A,inf); son conditionnement par la commande : cond(A,1) ou cond(A,inf); et son inverse par : inv(A) ; Nous vous fournissons de plus un programme pour la mthode de Newton pour les systmes : systeme_non_lineaire.m On peut voir un exemple de systme non linaire dans le chier sys.m

Programmes du chapitre 5
1. Le polynme de Newton : polynome_newton.m 2. La spline cubique : spline_cubique.m Utiliser la commande help pour voir comment les utiliser.

Programmes du chapitre 6
1. Mthode des trapzes : int_trapezes.m 2. Mthode de Simpson 1/3 : int_simpson13.m 3. Mthode de Simpson 3/8 : int_simpson38.m 4. Mthode de Boole : int_boole.m 5. Mthode de Romberg : int_romberg.m 6. Mthode de Gauss-legendre : int_gauss.m 7. Mthode des splines cubiques : int_spline_cubique.m Toutes ces mthodes utilisent un chier contenant la fonction intgrer comme le chier fonc.m , ou encore une fonction anonyme ou encore, un vecteur contenant les valeurs de la fonction aux points dintgration. Utiliser la commande help pour voir comment les utiliser.

Programmes du chapitre 7
1. Mthode dEuler explicite : euler_explicite.m 2. Mthode dEuler modie : euler_modifiee.m 3. Mthode du point milieu : point_milieu.m 4. Mthode du Runge-Kutta dordre 4 : runge_kutta4.m 5. Mthode de tir tir.m 6. Mthode de tir non linaire tir_non_lineaire.m Toutes les mthode de rsolution dquations direntielles ont besoin de connatre la fonction f (t, y ). On trouvera un exemple dans le chier eq_diff.m dans le cas dune quation direntielle ou encore : systeme_eq_diff.m pour un systme. La mthode de tir linaire utilise les fonctions : a0.m, a1.m, a2.m tandis que la variante non linaire utilise un chier : systeme_tir.m