Documente Academic
Documente Profesional
Documente Cultură
METODE NUMERICE
Calculul in Mthcad
Definitii Fie A o matrice patratica cu n linii si n coloane cu elemente reale.
a1 , 1 a2 , 1 A= .... an , 1
x1 x2 x= ... xn
pentru care exista un numar real l astfel incat are loc egalitatea A x = x Numarul real l pentru care are loc egalitatea de mai sus se numeste valoarea proprie corespunzatoare vectorului propriu x.
Fie matricea
1) Determinati valorile si vectorii ai matricei A. 2) Cercetati daca matricea A este diagonalizabila. In caz afirmativ aduceti matricea A la forma diagonala. Solutie folosind calculul numeric. 1. Determinarea valorilor proprii Determinarea valorilor proprii ale unei matrice se face in Mathcad folosind functia eigenvals
Nicolae Danet
METODE NUMERICE
:= eigenvals ( A)
2 =2 4
2. Determinarea vectorilor proprii Pentru determinarea vectorilor proprii ai matricei A se foloseste functia eigenvecs. 0 0.5 0.577 C = 1 0.707 0.577 0 0.5 0.577
C := eigenvecs ( A)
1 C =1
2 C =1
3 C =1
In continuare determinam vectorii proprii care corespund fiecarei valori proprii si verificam acest lucru pornind de la definitie.
1 = 2
0 1 C = 1 0
0 1 1 A C 1 C = 0 0
2 = 2
0 2 2 A C 2 C = 0 0
3 = 4
0 3 3 A C 3 C = 0 0
Nicolae Danet
METODE NUMERICE
v1 := eigenvec ( A , 1)
v1 = 1
v2 := eigenvec ( A , 2)
v2 = 1
v3 := eigenvec ( A , 3)
v3 = 1
3. Diagonalizarea matricei A Teorema. Matricea A este diagonalizabila daca si numai daca exista o baza a spatiului R3 formata din vectori proprii ai lui A. Acesata afirmatie este echivalenta cu: A este diagonalizabila daca si numia daca matricea C are determinantul nenul. Se calculeaza determinantul matricei C. C = 0.577
Deoarece determinantul lui C este nenul, matricea A este diagonalizabila. Forma diagonala a matricei A este 2 0 0 C A C = 0 2 0 0 0 4
1
Nicolae Danet
METODE NUMERICE
Metoda puterii
Metoda puterii (pas cu pas) Determinati cu o precizie de sase zecimale cea mai mare valoare proprie a matricei 1 2 1 A := 3 5 2 1 4 3 si vectorul propriu corespunzator. Solutie. Matricea A are o valoare proprie principala deoarece toate elementele sale sunt strict pozitive (Teorema lui Perron). Alegem un vector initial nenul oarecare 1 0 z := 1
ORIGIN 0
Efectuam iteratiile de mai jos pana cand primele sase zecimale din doua valori succesive ale catului Rayleigh q k coincid. k k z y := k z k + 1 k := A y z k k + 1 qk := y z
k := 0
qk = 7.333333
k := 1
k k z y := k z
k + 1 k := A y z
k k + 1 qk := y z
qk = 8.066667
Nicolae Danet
METODE NUMERICE
k := 2
k k z y := k z
k + 1 k := A y z
k k + 1 qk := y z
qk = 8.009887
k := 3
k k z y := k z
k k + 1 qk := y z
qk = 8.001259
k := 4
k k z y := k z
k k + 1 qk := y z
qk = 8.000158
k := 5
k k z y := k z
k k + 1 qk := y z
qk = 8.000020
k := 6
k k + 1 qk := y z
qk = 8.000002
Nicolae Danet
METODE NUMERICE
k := 7
k k z y := k z
k + 1 k := A y z
k k + 1 qk := y z
qk = 8.0000003083
k := 8
k k z y := k z
k k + 1 qk := y z
qk = 8.0000000385
Verificare
Nicolae Danet
METODE NUMERICE
Metoda puterii
Metoda puterii pentru determinarea tuturor valorilor proprii ale unei matrice Folosind metoda puterii, determinati cu o precizie de cinci zecimale toate valorile proprii si vectorii proprii ai matricei de mai jos. 4 2 1 A := 2 6 3 1 3 5 Solutie. Matricea A este reala, simetrica si are toate elementele pozitive, ceea ce arata ca putem aplica metoda puterii. Alegem un vector initial nenul oarecare, de exemplu 1 z := 1 1 Dimensiunea matricei n := cols ( A ) n=3 ORIGIN 1
Determinarea valorii proprii principale Efectuam iteratiile pana cand primele cinci zecimale din doua valori succesive ale catului Rayleigh qk coincid. Subprogram pentru determinarea valorii proprii de modul maxim (valoarea proprie principala) Numarul de iteratii estimat: N := 5
Acest numar poate fi modificat ulterior pentru satisfacerea preziziei date. valprmax ( A , z , N) := for k 0 .. N y z z
z A y q y z q 1 := valprmax ( A , z , N) 1 = 9.41882660594575
Nicolae Danet
METODE NUMERICE
1 := 2
1 = 9.41883
Vectorul propriu corespunzator valorii proprii principale se determina cu subprogramul de mai jos. vecprmax ( A , z , N ) := for k 0 .. N y z z
z A y y 1 v := vecprmax ( A , z , N + 1)
Verificare
Determinare valorii proprii de modul minim Subprogram pentru determinarea celei mai mici valori proprii a unei matricei. Redefinim valoarea numarului de iteratii estimat. valprmin ( A , z , N ) := for k 0 .. N y z z N := 12
1 = 2.19441330981206 2 = 2.19440394430960
3 := 2
3 = 2.19440
Nicolae Danet
METODE NUMERICE
Vectorul propriu corespunzator acestei valori proprii este determinat de subprogramul de mai jos. vecprmin ( A , z , N) := for k 0 .. N y z z
z lsolve ( A , y) y 3 v := vecprmin ( A , z , N + 1)
Verificare
Determinarea celorlalte valori proprii ale matricei Deoarece valorile proprii extreme sunt 3 = 2.1944 1 = 9.41883
Pentru determinarea celelalte valori proprii vom considera o constanta situata intre aceste valori. Vom da lui , pe rand, una din valorile 3,4,5,6,7,8. Fie := 3
Subprogramul de mai jos determina o valoare propie intermediara a unei matrice. N := 8 valpr ( A , z , N , ) := for k 0 .. N y z z
1 = 3.38677669896397 2 = 3.38677166459008
Nicolae Danet
METODE NUMERICE
2 := 2
2 = 3.38677
Vectorul propriu corespunzator acestei valor proprii se obtine cu subprogramul de mai jos. vecpr ( A , z , N , ) := for k 0 .. N y z z
Verificare
Concluzie 9.419 = 3.387 2.194 0.375 0.815 0.444 v = 0.726 0.04 0.687 0.577 0.578 0.576
Folosind functiile din Matcad avem 3.38677 eigenvals ( A) = 2.19440 9.41883 0.816 0.441 0.374 eigenvecs ( A) = 0.039 0.687 0.726 0.577 0.577 0.577