CATEGORII DOCUMENTE |
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.
|
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?
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 |
Vizualizari: 14354
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved