Sunteți pe pagina 1din 2

ANALYSE NUMERIQUE

avril 2000

Srie 4 : Elimination de Gauss e


Sensibilisation aux erreurs darrondis (Applet Java) login student sans password, puis rpondez aux questions (nom, prnom, e e section, date de naissance, ces donnes sont utilises par le LEAO). e e Lancez Internet Explorer. Favoris (bookmark) Numerical Analysis (Prof. J. Rappaz) Home Page. Clickez sur Enoncs et corrigs 2000, lancez lapplet Java de la srie 4. e e e Lalgorithme dlimination de Gauss pour une matrice tridiagonale e Il sagit de complter et dexcuter un algorithme permettant de rsoudre un e e e syst`me linaire Ax = b grce ` la mthode dlimination de Gauss, la matrice A e e a a e e tant tridiagonale et symtrique. e e Soit A la N N matrice tridiagonale, suppose rguli`re, et dnie par : e e e e a 1 c1 c1 a 2 c2 .. .. . . c2 A= (1) .. .. . . cN 2 cN 2 aN 1 cN 1 cN 1 aN Lalgorithme dlimination de Gauss appliqu ` la matrice tridiagonale A a pour e ea consquence de transformer le syst`me linaire Ax = b en un syst`me quivalent e e e e e U x = d, la matrice U ayant la forme suivante : 1 u1 1 u2 .. .. . . . U = .. . uN 2 1 uN 1 1 Soit xi et bi , i = 1, ..., N , les composantes des vecteurs x et b. Lalgorithme dlimination de Gauss appliqu ` la matrice A peut alors se formuler : e ea u1 := c1 /a1 ; b1 := b1 /a1 ; Faire i = 1 a (N 1) ` p := ai+1 ??; ui+1 :=?/p; xN (p est le pivot) (2)

bi+1 := [bi+1 ??]/p; := bN ; xi := bi ??;

Faire i = N 1 a 1, pas de (1) `

Le chier Matlab elimin.m est ` votre disposition. A partir de la donne de a e ai , i = 1, N , ci , i = 1, N 1, et du vecteur b, cet algorithme rsoud le syst`me e e linaire Ax = b, o` A est donne par (1). Cet algorithme est incomplet, vous devez e u e le complter. Pour tester lalgorithme, vous pouvez considrer le cas o` ai = 2, e e u i = 1, ..., N , ci = 1 i = 1, ..., N 1 et bi = 1, i = 1, ..., N . Il est alors facile 1 de vrier que la solution du syst`me linaire est donne par xi = i(N + 1 i), e e e e 2 i = 1, ..., N .

Le chier elimin.m function [b]=elimin(N) % % function [b]=elimin(N) % --------------------% Etant donne un entier N, lalgorithme delimination de Gauss % est utilise pour resoudre le systeme lineaire Ax=b, % ou A est la matrice tridiagonale symetrique % de diagonale a, sous et sur-diagonales c. % % parametres % % N : nombre dinconnues du systeme lineaire % a : N-vecteur, diagonale de A % c : (N-1)-vecteur, sous et sur-diagonales de A % b : N-vecteur, second membre du systeme lineaire en entree, % solution du systeme lineaire Ax=b en sortie % u : (N-1)-vecteur, utilise lors de lelimination de Gauss % % exemple dappel : b=elimin(10) % % % remplissage de la matrice A et du second membre b % for i=1:N a(i)=2.; c(i)=-1; b(i)=1.; end % % algorithme delimination de Gauss % u(1)=c(1)/a(1); b(1)=b(1)/a(1); for i=1:N-1 p = a(i+1)-?*?; u(i+1)=?/p; b(i+1) = (b(i+1) - ? * ?) / p; end % % resolution du systeme lineaire triangulaire superieur % for i=N-1:-1:1 b(i) = b(i) - ? * ?; end Excution du chier elimin.m avec Matlab e Pour excuter le chier elimin.m, vous utiliserez le logiciel Matlab. e Sur Internet Explorer, clickez sur elimin.m, puis enregistrez le chier elimin.m sur le disque temp. Lancer le programme Matlab, ouvrez le chier elimin.m et compltez-le. e Dans la fentre Matlab, tapez cd C :\temp, puis b=elimin(10) pour excuter e e le chier elimin.m avec N = 10. Exercice supplmentaire e Soit A la N N matrice dnie par (1) et soit D une N N matrice de e e e coecients dij , i, j = 1, ..., N donns. Ecrire un algorithme pour rsoudre AE = D o` E est une N N matrice ` dterminer. Sinspirer de lalgorithme (2) et nutiliser u a e e quun seul tableau supplmentaire, de coecients dij , i, j = 1, ..., N . En entre de e lalgorithme, les coecients dij seront les coecients de la matrice D. En sortie de lalgorithme, les coecients dij seront les coecients de la matrice E.