Lab MN 2 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Universitatea Tehnica a Moldovei Catedra Informatica Aplicata

Metode numerice

Referat Lucrare de laborator nr.2 Varianta 2

A efectuat

st. gr. ISBM-111 Timotin Pavel

A verificat

lector asistent Coscodan Mihail

Chisinau 2012

Scopul lucrării: 1.

Să se rezolve sistemul de ecuaţii liniare Ax=b, utilizând:



Metoda eliminării Gauss;c



Metoda lui Cholesky(metoda înjumătăţirii pătrate);



Metoda iterativă a lui Iacobi cu oeroare e=10-3;



Metoda iterativăa lui Gauss-Seidel cu o eroare e=10-3 şi e=10-5;

2. Să se determine numărul de iteraţii necesare pentru aproximarea solutiei cu eroarea dată e.Să se compare rezultatele. 3.

Să se inverseze matricea A cu ajutorul metodei Jordan-Gauss.

Partea teoretică: Rezolvarea sistemelor de ecuatii liniare printr-o metoda interativa inseamna construirea unui sir de vectori x(k), k=0, 1,2,...(pornind de la un vector x0 ales arbitrar), convergent catre solutia sistemului considerat.In metodele interative , de obicei, o iteratie necesita efectuarea unui numar de ordin n2 operatii aritmetice.De aceea metodele interative se utilizeaza pentru rezolvarea sistemelor ”mari” , de dimensiune n>100 (in cazul asigurarii unei viteze sporite de convergenta pentru o alegere a aproximarii initiale adecvate). Trunchierea sirului {xk }are loc la un indice m , astfel incit xm constituie o aproximatie satisfacatoare a solutiei cautate x* . Există mai multe metode de rezolvare a sistemelor neliniare şi a problemelor de minimizare necondiţionată. Metida eliminarii lui Gauss.Metoda eliminarii a lui Gauss consta in a adduce sistemul initial la un system echivalent, avind matricea coificientilor superiori triunghiulara. Transformarea sistemului dat intr-un sistem de forma triunghiulara fara ca sa se modifice solutia sistemului se realizeaza cu ajutorul urmatoarelor obtiuni de baza: 1)rearanjarea ecuatiilor(schimbarea a 2 ecuatii intre ele); 2)inmultirea unei ecuatii cu o constanta ( diferita de zero); 3)scarderea unei ecuatii din alta si inlocuirea celei de a doua cu rezultatul scaderei.

Metoda iteraţiei şi metoda Gauss-Seidel neliniară. Metoda iteraţiei reprezintă o extindere a metodei aproximaţiilor succesive folosite în cazul ecuaţiilor de o singură necunoscută şi metoda Jacobi pentru rezolvarea sistemelor de ecuaţii liniare. Acestă metodă permite rezolvarea sistemelor de ecuaţii neliniare de forma: x1=g1(x1,x2,...xn) x2=g1(x1,x2,...xn)

................... xn=g1(x1,x2,...xn) Metoda Newton. Una dintre cele mai răspîndite metode de rezolvare a sistemelor de ecuaţii neliniare este metoda lui Newton. Această metodă este o generalizare a metodei tangentelor, propusă de însuşi Newton ca o aplicaţie practică a noţiunii de derivată. Metoda lui Newton a devenit, de-a lungul anilor, foarte populară, datorită faptului că este cu convergenţă pătratică. Eficacitatea acestei metode s-a dovedit în special în problemele de optimizare de cea mai variată formă. Metoda lui Cholesky. Metoda lui Cholesky de rezolvare a sistemelor de ecuaţii liniare algebrice se mai numeşte metoda rădăcinii pătratice şi constă în descompunerea sistemului Ax=b în două sisteme triunghiulare. In aceasta metoda se presupune ca matricea A este o matrice simetrica si pozitiv definite.

 l1 l12 . l1n     l21 0 . l2n 

 l1 0 . 0     l12 l2 . 0 

L  0 0 . l  , LT   l l . 0   3n   13 23   . . . . . . . . .   . . . . . . . . .      0 0 . ln   l1n l2n . ln 

Matricea L se allege astfel, incit A=LTL. Aceasta descompunere a matricei A se numeste factorizarea Choleskly. Teorema:Daca matricea A este simetrica si pozitiva definite, atunci exista o unica matrice inferior triunghiulara LT cu elementele diagonale pozitive, astfel incit A=LT . Codul sursa: #include #include #include #include #define N 4 #include

clock_t start,stop; float A[4][4]={ 8.1,-0.9,0.6,0.8, -0.9,14.3,0.3,0.7, 0.6,0.3,7.9,-0.4, 0.8,0.7,-0.4,10.6 }; float B[4]={7.2,10.3,-11.9,9.2}; float nota (int w,int z,float h) { int t,t1,t2; if (w