Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Introducere in calculul matriceal

Matlab



+ Font mai mare | - Font mai mic



Introducere in calculul matriceal

In mediul de programare MATLAB, o matrice reprezinta o retea (tablou) dreptunghiulara de numere. O semnificatie speciala li se atribuie uneori matricelor 1 x 1, care sunt scalari, si matricelor cu un singura rand sau coloana, care sunt vectori. Practic, notiunea fundamentala in MATLAB este aceea de vector: cu una doua sau mai multe dimensiuni.



Software-ul MATLAB dispune si de alte cai de a stoca atat date numerice cat si siruri de caractere, insa, la inceput, cel mai bine sa se considere totul ca o matrice. Operatiile in MATLAB sunt concepute sa fie cat mai natural posibil. Acolo unde alte limbaje de programare lucreaza cu cate un numar, pe rand, MATLAB permite sa se lucreze repede si usor cu intreaga matrice. Un bun exemplu de matrice, folosit in aceasta lucrare, apare si in gravura renascentista Melencolia I, realizata de artistul german, amator de matematica in acelasi timp, Albrecht Drer.

Aceasta imagine este incarcata de simbolism matematic, si daca se priveste cu atentie, se va distinge o matrice in coltul din dreapta sus. Aceasta matrice este cunoscuta ca patratul magic, si, pe timpul lui Drer, multi credeau ca are intr-adevar proprietati magice. Si chiar se dovedeste ca are cateva caracteristici fascinante care merita studiate.

Matrice de intrare

Cel mai potrivit mod de a incepe programarea in MATLAB este asimilarea operatiilor cu matrice. Se apeleaza programul MATLAB si se urmeaza fiecare exemplu.
In MATLAB o matrice se poate introduce in mai multe moduri astfel:

. se introduce o lista explicita de elemente;

. se incarca matricea din fisiere externe de date;

. se genereaza matricea folosind functii interne; 

. se creeaza matricea cu propriile functii in fisiere .m.



Se incepe prin a introduce matricea lui Drer sub forma unei liste a elementelor sale. Trebuie doar sa se urmeze cateva conventii de baza:


. se separa elementele unui rand prin blank-uri sau prin virgule.                       

. se foloseste punctul si virgula, ; , pentru a marca sfarsitul fiecarui rand.
. se incercuieste intreaga lista de elemente cu paranteze patrate, [ ].

Pentru a de introduce matricea lui Drer, se scrie pur si simplu, in fereastra de comanda,

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

MATLAB va afisa matricea pe care tocmai s-a generat:

A =
 16 3 2 13
 5 10 11 8
 9 6 7 12
 4 15 14 1

Aceasta matrice se potriveste cu numerele din gravura. Odata ce s-a introdus matricea, ea va fi in mod automat memorata in spatiul de lucru al MATLAB-ului. Se poate face referire la ea numind-o pur si simplu A. Acum ca exista matricea A in spatiul de lucru, trbuie cautate motivele pentru care aceasta matrice a fost gasita atat de interesanta. De ce este ea magica?

sum, transpose, si diag

Probabil este usor de observat ca proprietatile speciale ale unui patrat magic au legatura cu numeroasele moduri de a-i aduna elementele. Daca se ia suma de pe oricare rand sau coloana, sau cea de pe oricare dintre cele doua diagonale principale, se va obtine de fiecare data acelasi numar. Daca se verifica acest lucru folosind MATLAB-ul atunci intr-adevar este o matrice speciala. Prima instructiune care se va incerca este:

sum(A)

MATLAB-ul raspunde cu:



ans =
 34 34 34 34

Atunci cand nu se specifica o variabila de iesire, MATLAB-ul foloseste variabila ans, prescurtare de la answer, pentru a stoca rezultatele unui calcul. Daca s-a calculat un vector rand, care contine sumele coloanelor lui A, este clar ca elementele de pe fiecare coloana insumeaza aceeasi valoare, suma  magica, 34.



Dar sumele de pe randuri? MATLAB are o preferinta pentru lucrul cu coloanele unei matrice, asa ca, o modalitate de a obtine sumele de pe randuri este aceea de a transpune matricea, de a calcula apoi sumele de pe coloane ale transpusei, si, in cele din urma, transpunerea rezultatului. Pentru a alege o alta cale, prin care se evita dubla actiune de transpunere, se foloseste argumentul dimensiune pentru functia sum.



MATLAB-ul dispune de doi operatori de transpunere. Operatorul apostrof (de exemplu, A') efectueaza o transpozitie conjugata complexa. Aceasta inverseaza o matrice dupa diagonala sa principala, si schimba de asemenea si semnul componentei imaginare a oricarui element complex al matricei. Operatorul punct-apostrof (de exemplu, A.'), transpune fara a afecta semnul elementelor complexe. Pentru matricele care nu contin ca elemente decat numere reale, ambii operatori returneaza acelasi rezultat.


Astfel, A' produce:

ans =
 16 5 9 4
 3 10 6 15
 2 11 7 14
 13 8 12 1

iar

sum(A')'

produce un vector-coloana care contine sumele de pe fiecare rand

ans =
 34
 34
 34
 34

Suma elementelor de pe diagonala principala se obtine cu ajutorul functiilor sum si diag:

diag(A)

produce rezultatul

ans =
 16
 10
 7
 1

iar

sum(diag(A))

produce

ans =
 34

Cealalta diagonala, asa-numita antidiagonala, nu este atat de importanta din punct de vedere matematic, asa ca MATLAB nu are o functie gata configurata pentru aceasta. Insa exista o functie care a fost initial destinata utilizarii in programele de grafica, fliplr, care intoarce o matrice de la stanga spre dreapta:

sum(diag(fliplr(A)))
 ans =
 34

Astfel s-a verificat daca matricea din gravura lui Drer este intr-adevar un patrat magic, si, in decursul prezentarii, s-au incercat si cateva operatii MATLAB asupra matricei. Urmatoarele sectiuni continua sa foloseasca aceasta matrice pentru a ilustra capacitati suplimentare ale MATLAB-ului.

Tema : Sa se scrie un program Matlab care sa calculeze si/sau sa afiseze matricea Drer, transpusa matricei, suma elementelor pe coloane, diagonala principala, suma elementelor pe diagonala principala si antidiagonala.





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 13247
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved