Laborator1 Mni.pdf

  • Uploaded by: Stefan Niculcea
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Laborator1 Mni.pdf as PDF for free.

More details

  • Words: 4,883
  • Pages: 21
Laborator 1 Funcţii Matlab 1. Obiectivul lucrării

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Introducerea noţiunilor necesare pentru utilizarea pachetului de programe Matlab. Astfel, în cadrul acestei lucrări de laborator va fi prezentat modul de introducere şi manipulare a matricelor, vectorilor şi scalarilor în Matlab.

2. Mersul lucrării

a) Noțiuni elementare

MATLAB-ul este un pachet de programe care lucrează numai cu un singur tip de obiecte, matrice numerice rectangulare cu elemente reale sau complexe. Când MATLAB intalneste un nou nume de variabilă, acesta creează automat variabila care este o matrice 1x1 si aloca memoria necesara. Daca variabila deja exista, MATLAB schimba conţinutul acesteia si daca este necesar alocă o altă cantitate de memorie. De pildă, daca tastaţi: num_studenti = 25

MATLAB creează o matrice 1x1 numita num_studenti şi alocă valoarea 25 singurului element al matricei. Numele de variabile constau intr-o literă, urmată de orice numar de litere, cifre, etc. MATLAB foloseşte doar primele 31 caractere ale unui nume de variabila. MATLAB face deosebirea între litere mari și mici. A și a nu reprezintă aceeaşi variabilă. Pentru a vizualiza matricea asociată oricărei variabile, tastaţi numele acestei variabile. Valoarea unei variabile/element al matricei poate fi un număr sau o constantă predefinită. MATLAB foloseşte pentru numere notaţia zecimală convenţională, cu punct zecimal opţional și semne plus sau minus. Notaţia stiințifică foloseşte litera e pentru a specifica 10 la puterea ... Numerele imaginare folosesc fie i fie j ca sufix. Iată câteva exemple de numere: 3 -99 9.6397238 1i -3.14159j 3+3e5i

0.0001 1.60210e-20

6.02252e23

Toate numerele sunt stocate intern folosind formatul long standardizat. Formatul extern de afișare a numerelor pe ecran poate fi modificat de catre utilizator folosind instrucțiunea format astfel: format long - pentru afișarea cu o precizie de 16 cifre semnificative

format short - pentru afișarea cu o precizie de 5 cifre semnificative format long e - pentru afișarea cu o precizie de 16 cifre + exponent format short e - pentru afișarea cu o precizie de 5 cifre + exponent Exemple: >> format long >> a=5/6 a = >> format short >> a=5/6 a = 0.8333

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

0.833333333333333

>> format long e >> a=5/6 a =

8.333333333333334e-001 >> format short e >> a=5/6 a = 8.3333e-001

Precizia de afișare variază între aproximativ 10 Exemple: >> 10^308 ans = 1.0000e+308 >> 10^309 ans = Inf >> 10^(-323) ans = 9.8813e-324 >> 10^(-324) ans = 0

-323

și 10

+308

.

În Matlab există diverse funcţii care furnizează valori ale unor constante predefinite, vezi tabelul de mai jos, ce pot fi folosite la rândul lor în construirea altor funcții sau în diverse operații aritmetice. i, j

Sunt versori, utilizați în definirea unui numar complex. i  1 , j  1 , i 2  1 j 2  1

pi eps

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

3.14159265... Precizia relativa in virgula mobila 216 în Matlab R2010a realmin Cel mai mic număr in virgula mobila 2308 în Matlab R2010a realmax Cel mai mare număr in virgula mobila 1.7977e+308 în Matlab R2010a Inf Infinit NaN Not-a number Infinit este generat prin împărțirea cu zero a unui număr ne-nul, sau prin evaluarea unor expresiii matematice care depășesc realmax. Not-a-number este generat încercând evaluarea expresiilor de genul 0/0 sau Inf-Inf care nu au valori matematice bine definite. Numele funcţiilor nu sunt rezervate, deci putem suprascrie peste oricare dintre ele o noua variabilă, de pilda eps = 1.e-6 și apoi să utilizăm acea valoare în calcule ulterioare. Funcţia originală poate fi restaurată cu funcţia clear eps. b) Noţiuni introductive privind matrice, vectori şi scalari în domeniul Matlab

Pe baza noțiunilor elementare se poate arăta cum se definește o matrice în Matlab. Literar o matrice poate fi definită ca fiind: a1n   a11 a12   a a22 a2 n  A   21     amn   am1 am 2 unde m şi n reprezintă numărul de linii şi respectiv numărul de coloane ale matricei. Introducerea matricelor în mediul de lucru Matlab se face prin una din metodele: introducerea explicită a listei de elemente; generarea prin instrucţiuni şi funcţii; crearea de fişiere *.m; încărcarea din fişiere de date externe. Cea mai simplă metodă de implementare a unei matrice constă în utilizarea unei liste explicite. Trebuie respectate următoarele reguli: - elementele unei linii trebuie separate prin spaţii libere sau virgulă; - liniile se separă prin semnul punct-și-virgulă ‘;’ ; - elementele matricei sunt cuprinse între paranteze drepte ‘[ ]’.

A   a11 a12

a1n ; a21 a22

a2n ;

; am1 am2

amn 

De exemplu pentru introducerea unei matrice cu 3 linii și 3 coloane se poate tasta: >> A=[1 0 -1; 2 1 3; 6 7 -8]

şi la apasarea tastelor Enter sau Return, Matlab-ul răspunde cu: A = 1 2 6

0 1 7

-1 3 -8

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Matricea A, astfel definită, poate fi utilizată în calcule sau poate fi salvată într-un fişier de date pentru o folosire ulterioară. Obs: MATLAB-ul este case sensitive - face distincţie între literele mici şi cele mari. Astfel o dată folosită notaţia cu literă mare ea va pute fi identificată în următoarele linii de comandă doar dacă este tastată cum trebuie (cu literă mare). Pentru matricele mari, la care datele de intrare nu încap pe o singură linie, se poate proceda la înlocuirea semnului ,;’ cu „Enter", ca în exemplu următor: >> A=[1 0 -1 1 2 3 6 7 -8] A = 1 1 6

0 2 7

-1 3 -8

Un alt mod de definire a unei matrice constă în apelarea numelui unui fişier de date aflat pe disc. Acest fişier trebuie să fie înregistrat în format ASCII (text), organizat ca o matrice rectangulară (completă) şi să aibă extensia *.m. Astfel, dacă pe disc se găseşte un fişier cu numele date.m care conţine următoarele două linii de text: 1 2 3 4

instrucţiunea care citeşte fişierul și generează matricea A este: >>A=date

Elementele matricelor pot fi numere reale sau complexe sau orice altă variabilă MATLAB. Elementele matricei A pot fi identificate, în MATLAB, prin notaţia A(i, j) şi semnifică elementul de la intersecţia liniei i cu coloana j. De pilda, A(4,2) este elementul de la rândul 4 - coloana 2. Pentru a face referire la un element al matricei sunt necesari doi indici, iar referirea la un element al unui vector se face cu un singur indice. În cazul selectării liniilor sau coloanelor matricelor, se folosesc formele: A(:,j) A(i,:) A(:,j:k) A(j:k,:)

selectează coloana j a matricei A selectează linia i a matricei A selectează coloanele de la j la k (cu toate liniile existente) a matricei A selectează liniile de la j la k (cu toate coloanele existente) a

A(:,i:j:k) A(i:j:k,:) A(i:j,k:l)

A(:,:) A(i:j) A(:)

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

A(:,[i,j,k]) A([i,j,k],:) A([i,j,k], [l,m,n])

matricei A selectează coloanele i, i+j, i+2j, ..., k ale matricei A (selectează cu pasul j); selectează liniile i, i+j, i+2j, ..., k ale matricei A extrage submatricea formată din elementele aflate la intersecţia liniilor de la i la j şi coloanelor de la k la l ale matricei A selectează coloanele i, j, şi k ale matricei A selectează liniile i, j şi k ale matricei A extrage submatricea formată cu elementele aflate la intersecţia liniilor i, j şi k, şi a coloanelor l, m şi n ale matricii A selectează întreaga matrice A selectează elementele A(i), A(i+1),..., A(j) ale matricei A sub forma unui vector linie selectează toate elementele matricei A, privite ca o singură coloană (începând cu prima)

Operatorul ‚:’ intervine atunci când toate elementele liniei/coloanei sunt vizate sau atunci când se dorește o parcurgere a unei suite de valori (linii/coloane) de la o limită inferioară pana la o limită superioară. Scalarii sunt asimilaţi ca matrice cu o linie şi o coloană (1x1). De exemplu elementul de la intersecţia liniei i  1 cu coloana j  1 din matricea A, anterior definită, este elementul a11 . Pentru a obţine valoarea acestui element se tastează comanda: >> A(1,1)

iar Matlab-ul returnează răspunsul: ans = 1

Vectorii sunt asimilaţi ca o matrice cu o linie (1xn) sau ca o matrice cu o coloană (mx1). De exemplu pentru matricea A, anterior definită, prima linie este  a11 a12 a13  . Ea reprezintă un vector linie şi poate fi generată în mediul Matlab prin tastarea comenzii: >> A(1,:)

ceea ce va returna: ans = 1

0

-1

 a11 

De asemenea prima coloană a matricei A este  a21  . Ea reprezintă un vector coloană şi poate fi generată a   31 

în mediul Matlab prin tastarea comenzii:

>> A(:,1)

ceea ce va returna: ans = 1 1 6

>>x=[-1.3

2

rezultă: x = -1.3000 Obs. Dacă vrem

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Obs: Vectorii şi scalarii pot fi definiţi independent de o matrice existentă, elementele acestora (precuma a matricelor) putând fi numere reale sau complexe, precum și orice expresie MATLAB. De exemplu, pentru: (l+2+3)*4/5]

1.7321

4.8000

să accesăm un element din afară matricei Matlab-ul va returna o eroare de forma:

>> t=A(4,5) ??? Attempted to access A(4,5); index out of bounds because size(A)=[3,3].

Dacă v este un vector, selecţia elementelor acestuia poate fi realizată astfel: v(i:k) selectează elementele de pe poziţiile i, i+1, i+2, ..., k ale vectorului v; dacă i>k, atunci vectorul rezultat este gol (nu are nici un element); v(i:j:k) selectează elementele de pe poziţiile i, i+j, i+2j, ..., k ale vectorului v (selectează cu pasul j); dacă j>0 şi i>k sau j>0 şi i> x(3)

returnează: ans = 4.8000 >> x(1:2:3)

returnează:

ans = -1.3000

4.8000

Unui scalar i se poate retuna valora unui element al vectorului ca în exemplul următor: >> a = x(2)

care returnează:

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

a = 1.7321

Obs: De remarcat că dacă se asignează o valoare unui element care ocupă o poziţie în afara dimensiunii maxime a vectorului referit sau a matricei, dimensiunea acestuia este mărită automat până la valoarea indicelui noului element, iar elementele nedefinite sunt setate la valoarea zero. În acest sens, instrucţiunea: >> x(5)=2*x(1)

returnează rezultatul:

x = [-1.3000 1.7321 4.8000 0 1.3000]

iar instrucţiunea: >> A(3,6)=125

returnează rezultatul: M = 1 1 6

0 2 7

-1 3 -8

0 0 0

0 0 0

0 0 125

O modalitate de a construi matrice mari constă în folosirea matricelor mici ca elemente. Spre exemplu, din două matrice 2x3 se poate construi o matrice 4x3; dimensiunile matricelor utilizate trebuie să fie alese astfel încât să se realizeze tablouri rectangulare complete.

 5 6 1 2 De exemplu fie A1    două matrice. Cu secvenţa următoare:  şi A2   7 8 3 4 >>A1 = [1 2;3 4]; >>A2 = [5 6;7 8]; >>B = [A1; A2]

Matlab-ul returnează: B = 1 3 5

2 4 6

7

8

Dacă se tastează instrucţiunea C = [A1 A2], oare ce se va returna ca rezulatat Matlab-ul? c) Vectori şi matrici uzuale c.1. Generarea vectorilor cu pas liniar

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Generarea vectorilor cu pas liniar implică cunoaşterea limitelor intervalului (amin şi amax) şi a pasului de deplasarea (pas) între două elemente consecutive din cadrului intervalului, sau numărul de elemente ale vectorului. Dacă se cunosc limitele intervalului (amin şi amax) şi pasul (pas) dintre două elemente, se generează vectorul cu instrucţiunea: x = amin : pas : amax

unde amin, amax şi pas sunt scalari şi pot avea orice valoare reală. Numărul de elemente ale  a max  a min  vectorului rexultant este: N    1 . pas   Exemple: 1) dacă pas > 0, atunci este necesar ca amin < amax, >>x=2:5:25

returnează: x = 2

7

>>x=-20:3:10

returnează: x = -20

-17

12

17

22

-14

-11

-8

-5

-2

2) dacă pas < 0, atunci este necesar ca amin > amax. >>x=5:-2:-4

returnează: x = 5

3

>>x =-15:-3:-25

returnează: x =

1

-1

-3

1

4

7

10

-15

-18

-21

-24

3) cu pas implicit (default, pas =1) >>x = 5:10

returnează: x = 5

6

7

8

9

10

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Exemplele anterioare sunt corecte, în timp ce următoarele instrucţiuni: x = 2:-l:5; x = -5:2:-10 sunt incorecte. Dacă se cunosc limitele intervalului (amin şi amax) şi numărul de elemente (N) ale vectorului generat cu pas liniar, atunci se foloseşte instrucţiunea: x = linspace(amin, amax, N)

Pasul dintre două elemente rezultă egal cu: pas 

a max  a min . Dacă valoarea N este omisă, atunci N 1

aceasta este considerată implicit egală cu 100. Exemplu:

>>x = linspace(2.5, 7, 4)

returnează: x = 2.5000

4.0000

5.5000

7.0000

>>x = linspace(7, 2.5, 4)

returnează: x = 7.0000

5.5000

4.0000

2.5000

c.2. Generarea vectorilor cu pas logaritmic

Pentru generarea vectorilor cu pas logaritmic se utilizează funcţia logspace care se apelează cu sintaxa: x=logspace(amin,amax,N) Vectorul ,x’ conţine N elemente distribuite logaritmic între decadele 10min ,10max  . Dacă N nu este precizat, este luat implicit 50. Exemple:

>> x = logspace(-2, 2, 5)

returnează: x = 0.0100

0.1000

1.0000

10.0000

returnează: x = 0.0100

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

>> x = logspace(-2, pi, 6)

0.0316

c.3 Matricea goală

0.0997

0.3150

0.9948

3.1416

Declararea unei matrice goale se face cu instrucţiunea: X = [] care asignează lui X matricea de dimensiuni 0x0. >> x=[]

returnează: x = []

c.4. Matricea unitate

returnează o matrice de dimensiune nxn cu toate elementele egale cu 1 returnează o matrice de dimensiune mxn cu toate elementele egale cu 1 returnează o matrice de dimensiunea matricei M cu toate elementele egale cu 1

ones(n) ones(m,n) ones(size(M))

Exemple: >> ones(3)

>> ones(3,2)

returnează:

returnează:

>>A = [1 4 8;0 2 3]; >> ones(size(A))

returnează:

ans =

ans = 1 1 1

1 1 1

1 1 1

1 1 1

1 1 1

ans =

1 1

1 1

1 1

c.5. Matricea zero zeros(n)

returnează o matrice de dimensiune nxn cu toate elementele egale cu 0;

zeros(m,n) zeros(size(M))

returnează o matrice de dimensiune mxn cu toate elementele egale cu 0 returnează o matrice de dimensiunea matricei M cu toate elementele egale cu 0

Exemplu: >> zeros(3,2)

ans = 0 0 0

0 0 0

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

retrunează:

c.6. Matricea identitate eye(n) eye(m,n)

returnează o matrice de dimensiune nxn cu elementele de pe diagonala principală egale cu unu, iar toate celelalte egale cu zero returnează o matrice de dimensiune mxn cu elementele de pe diagonala principală egale cu unu, iar toate celelalte egale cu zero - returnează o matrice de dimensiune matricei M cu elementele de pe diagonala principală egale cu unu, iar toate celelalte egale cu zero

eye(size(M)) Exemplu: >> eye(4)

returnează: ans = 1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

c.7. Matricea aleatoare

Generarea matricelor cu numere aleatoare se poate face cu: • funcţia rand pentru numere aleatoare cu distribuţie uniformă în intervalul (0.0, 1.0); • funcţia randn pentru numere aleatoare cu distribuţie normală (Gaussiană), de medie zero şi varianţă unu. rand(n) sau randn(n) rand(m,n) sau randn(m,n) rand(size(M))

returnează o matrice de dimensiune nxn cu elemente aleatoare returnează o matrice de dimensiune mxn cu elemente aleatoare returnează o matrice de dimensiune matricei M cu elemente aleatoare;

sau randn(size(M)) Exemple: >>A = [1 4 8;0 2 3]; >> rand(size(A))

ans = 0.8147 0.9058

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

returnează: 0.1270 0.9134

0.6324 0.0975

>> randn(size(A))

returnează: ans = -0.4336 0.3426

3.5784 2.7694

-1.3499 3.0349

Obs : Aceleaşi instrucţiuni apelate de doua ori, consecutiv, nu vor genera aceleaşi numere aleatoare c.8. Matricea diagonală

Dacă v este un vector (linie sau coloană) şi M este o matrice, atunci avem următoarele sintaxe: returnează o matrice pătrată diagonală, cu elementele vectorului v pe diag(v) diagonala principală returnează o matrice pătrată cu elementele vectorului v pe diagonala diag(v,k) principală dacă k=0, deasupra celei principale dacă k>0, sau sub cea principală dacă k<0; restul elementelor sunt 0 returnează un vector coloană ce conţine elementele de pe diagonala diag(M) principală a matriciei M returnează un vector coloană ce conţine elementele din matricea M de diag(M,k) pe diagonala k deasupra celei principale, dacă k>0, sau sub cea principală, dacă k<0. returnează o matrice care păstrează diagonala principala, iar restul diag(diag(M)) elementelor le setează la valoarea de zero. Exemple: -în cazul unui vector:

>> v=[11 12 13]; >> diag(v)

>> diag(v,-1) ans =

ans = 11 0 0

0 0 13

0 11 0 0

0 0 12 0

0 0 0 13

0 0 0 0

în cazul unei matrice:

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

-

0 12 0

>>M=[11 12 13;21 22 23;31 32 33] ; >> diag(M) ans = 11 22 33

c.9 Pătratul magic

>> diag(M,1)

>> diag(diag(M,1))

ans = 12 23

ans = 12 0

0 23

Pătratul magic de ordinul n este o matrice n x n, construită cu întregii de la 1 la n, care are suma elementelor de pe fiecare linie, coloană, diagonală sau anti-diagonală principală, egală. Pătratul magic are suma scalată dublu stochastic. Funcţia magic se apelează cu sintaxa: A=magic(n) unde argumentul n trebuie să fie mai mare sau egal cu 3. d) Operații cu matrice şi vectori

Calculele aritmetice asupra tablourilor de date în MATLAB pot fi: d.1 - operaţii după regulile calculului matriceal - operaţii cu matrice; d.2 - operaţii după regulile calculului scalar - operaţii cu tablouri.

Operaţiile cu matrice trebuie sa respecte regulile: - adunările şi scăderile se realizează între matrice de aceiaşi dimensiune (de ex. o matrice (mxn) se poate aduna cu o matrice (m1xn1) dacă m=m1 şi n=n1); - înmulţirea a două matrice nu se poate efectua întotdeauna decât dacă numărul de coloane ale primei matrice este egal cu numărul de linii celei de a doua matrice de ex. pentru o matrice (mxn) şi o matrice (m1xn1) înmulţirea se poate realiza doar dacă n=m1, iar matricea rezultată va fi întotdeauna de dimensiune (mxn1)); - a înmulţi o matrice cu un scalar înseamnă a înmulţii toate elementele matricei cu acel scalar; - împărţirea la dreapta a două matrice, de exemplu A și B, presupune A/B=A*B^(-1)=A*inv(B); - împărţirea la stânga a două matrice A și B presupune A\B=B/A=A^(-1)*B=inv(A)*B deci dimensiunile inversei lui A trebuie să corespundă dimensiunilor matricei B în conformitate cu regulile de înmulțirie a două matrice; - ridicarea la pătrat a unei matrice presupune ca aceasta să fie pătratică (numărul de linii egal cu numărul de coloane). Operaţiile cu tablouri presupun:

- operanzii trebuie să aibă aceiași dimensiune, fie că este vorba de un vector sau o matrice, și poartă denumirea de tablouri; - operaţiile aritmetice (înmulţire, împărţire, ridicare la putere, etc) se realizează între elementele situate pe aceeaşi poziţie ale tablourilor, cunoscute sub numele de operaţii element cu element; - simbolul oricărei operații matematice dacă este insoțit de operatorul ,.’ (de exemplu .*, ./ etc.) atunci operațiile matematice sunt realizate element cu element între tablouri; - dacă unul dintre operanzi este un scalar, acesta operează cu fiecare element al tabloului.

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Operatorii folosiţi în calculele aritmetice cu tablouri şi matrice sunt prezentaţi în Tabelul 1: Tabelul 1. Operatori aritmetici în MATLAB Operaţia Scalari Matrice Tablouri Adunarea + + + Scăderea Înmulţirea * * .* Împărţirea la \ \ .\ stânga Împărţirea la / / ./ dreapta Ridicarea la ^ ^ .^ putere Transpunerea A’ A’ A .’

Dacă se declară în Matlab scalarii a=2, b=5 şi matricele:  1 2 3  11 12 13  A   2 4 5 , B  8 10 15 , C    , C1   ,  4 5 6 14 15 16 

7 8  17 18  2 4 6       D   9 10  , D1   19 20  , E   8 9 10  11 12  12 14 20   21 22       

Se pot verifica pe rând operaţiile matematice prezentate în tabelul de mai jos, conform scrierii literare în coloana a 2-a și conform rezultatelor ce le returnează Matlab-ul în coloana a 3-a. Adunarea

Tip de dată Scalari

Matrice

Scrierea literară op = a+b

op = C+C1

Comenzi Matlab

>> op=a+b op = 7

>> op=C+C1 op = 12 14 18 20

16 22

op = A+B

Tablouri op = A+C

op = a+C

20

>> op=A+C ??? Error using  plus Matrix dimensions must agree. >> op=a+C op = 3 6

4 7

5 8

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Scalarmatrice (tablou)

>> op=A+B op = 10 14

Scăderea

Tip de dată Scalari

Matrice

Scrierea literară op = a-b

op = D1-D

op = A-B

Tablouri

op = A-C

Scalarmatrice (tablou)

op = b-A

Comenzi Matlab

>> op=a-b op = -3

>> op=D1-D op = 10 10 10 10 10 10

>> op=A-B op = -6 -6

-10

>> op=A-C ??? Error using  minus Matrix dimensions must agree. >> op=b-A r10 = 3

1

0

Înmulţirea

Tip de dată Scalari

Scrierea literară op = a*b

op = A*B

Marice

op = A*D (1x3)*(3*2)=(1x2) op=D*C1 (3*2)*(2*3)=(3x3)

Comenzi Matlab

>> op=a*b op = 10

>> op=A*B ??? Error using  mtimes Inner matrix dimensions must agree. >> op=A*D op = 105 116 >> op=D*C1 op =

189 239 289

op=A.*B

Tablouri

Scalarmatrice (tablou)

219 277 335

>> op=A.*B r12 = 16 40

75

>> op=A.*D ??? Error using  times Matrix dimensions must agree. >> op=a*C op = 2 4 6 8 10 12

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

op=A.*D

204 258 312

op=a*C

(rezultat identic pt. a.*C)

Împărţirea la dreapta

Tip de data Scalari

Matrice

Scrierea literară op=a/b

op=A/B

op=A*B^(-1) = =A*pinv(B)

(1x3)*(3x1)=1x1

op=A/E

op=A*E^(-1) =A*inv(E) (1x3)*(3x3)=(1x3)

op =A/D (r23=A*pinv(D)) (1x3)/(3x2)=(1x3)*(2x3 )

Tablouri

op =A./B (1x3)./(1x3)

Comenzi Matlab

>> op=a/b op = 0.4000 >> op=A/B op = 0.3368

>> op=A*pinv(B) op = 0.3368

Obs: Deoarece matricea nu este pătratică inversa matricii B este prelucrată în Matlab cu instructiiunea pinv() >> op=A/E op = 1.0714

0.3571

-0.2500

>> op=A*inv(E) op = 1.0714 0.3571

-0.2500

Obs: Deoarece matricea este pătratică inverse matricii B este prelucrată în Matlab cu instructiiunea inv() >> op =A/D ??? Error using ==> mrdivide Matrix dimensions must agree. >> op =A./B op = 0.2500

0.4000

0.3333

Obs: Dimensiunile matricelor A şi B trebuie să coincidă

op =A./C

Scalarmatrice

op =a/A

op =a./A

Scalartablou

>> op =A/a op = 1.0000

2.0000

2.5000

>> op =a/A ??? Error using ==> mldivide Matrix dimensions must agree.

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

op =A/a

>> op =A./C ??? Error using ==> rdivide Matrix dimensions must agree.

op =A./a

>> op =a./A op = 1.0000

0.5000

0.4000

>> op =A./a op = 1.0000

2.0000

2.5000

Împărţirea la stânga

Literar Scalari

Comenzi Matlab

op=a\b

op =A\B

Matrice

op =A\E

op =D1\E

op =pinv(D1)*E1

op =E\D1

1

op = E * D1 E^(-1)*D1=

>> op=a\b op = 2.5000 >> op =A/B op = 0.3368

>> op =A\E ??? Error using  mldivide Matrix dimensions must agree. >> op =D1\E op = 42.6667 41.0000 -40.1667 -38.5000

58.0000 -54.5000

>> op =pinv(D1)*E r35 = 42.6667 41.0000 -40.1667 -38.5000

58.0000 -54.5000

>> op =E\D1 op = -8.2500 12.5000 -2.7500

-8.7857 13.2857 -2.9286

>> op =E^(-1)*D1 op =

=inv(E)*D1

op=A.\B (1x3).\(1x3)

-8.7857 13.2857 -2.9286

>> op=A.\B op = 4.0000

2.5000

3.0000

Obs: Dimensiunile matricelor A şi B trebuie să coincidă >> op=A.\C ??? Error using  ldivide Matrix dimensions must agree.

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

Tablouri

-8.2500 12.5000 -2.7500

op=A.\C

>> op=A\a op =

op=A\a

Scalarmatrice

op=a\A

op=a.\A

Scalartablou

op=A.\a

Transpusa

Literar

op= A'

Matrice

op=E'

Fie Z=[1 1+i;-1 1-i] op=Z'

Tablouri

op=E.'

0 0 0.4000

>> op=a\A op = 1.0000

2.0000

2.5000

>> op=a.\A op = 1.0000

2.0000

2.5000

>> op=A.\a op = 1.0000

0.5000

0.4000

Comenzi Matlab >> op=A' op = 2 4 5 >> op=E' op = 2 4 6

8 9 10

12 14 20

>> op=Z' op = 1.0000 1.0000 - 1.0000i >> op=E.' op = 2

8

12

-1.0000 1.0000 + 1.0000i

4 6

9 10

14 20

>> op=Z.' op = 1.0000 1.0000 + 1.0000i

Obs: Pentru transpusa tabloului cu numerele complexe se poate observa ca in afară de convertirea liniilor în coloane şi viceversa, are loc şi conjugarea numerelor complexe

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

op = Z.'

-1.0000 1.0000 - 1.0000i

Ridicarea la putere

Literar Scalari

op = a^2

op=A^2

Matrice

op=E^2

op=A.^2

Tablouri

op=E.^2

op=a^A

op=A^a

Scalarmatrice

op=a^E

Comenzi Matlab

>> op=a^2 op = 4

>> op=A^2 ??? Error using ==> mpower Inputs must be a scalar and a square matrix. >> op=E^2 op = 108 128 208 253 376 454

172 338 612

>> op=A.^2 op = 4 16

25

>> op=E.^2 op = 4 16 64 81 144 196

36 100 400

>> op=a^A ??? Error using ==> mpower Inputs must be a scalar and a square matrix. >> op=A^a ??? Error using ==> mpower Inputs must be a scalar and a square matrix. >> op=a^E op = 1.0e+009 * 0.2584 0.5073 0.9163

0.3119 0.6125 1.1062

0.4193 0.8234 1.4872

op=E^a

>> op=a.^A op = 4 16

32

>> op= A.^a op = 4 16

25

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

op=a.^A

>> op=E^a op = 108 128 172 208 253 338 376 454 612 Obs: Matricea E este pătratică

op=A.^a

>> op=a.^E op =

Scalartablou

op=a.^E

op=E.^a

3. Cerinţe

4 256 4096

16 512 16384

64 1024 1048576

>> op=E.^a op = 4 16 36 64 81 100 144 196 400 Obs: Dimensiunea tabloului nu trebuie să fie neapărat pătratică

1 2 3 4 5 6  2 3 4 5 6 1   1. Fie A   3 4 5 6 1 2    4 5 6 1 2 3  5 6 1 2 3 4  Să se scrie instrucţiunile care permit selectarea din matricea A a: - liniei a 2-a; - coloanei a 3-a; - submatricei formată din liniile 1-2 şi coloanele 4-6; - submatricei formată din liniile 1, 4 şi coloanele 2, 4,5; - să se extragă două submatrice 3x3 şi să se concateneze acestea două sub forma unei matrice 3x6, iar apoi 6x3; - să se înlocuiască elementul de a linia 10, coloana 10 cu valoarea 10. 2. Fie vectorul v  1 2 4 6 1 6 7 0 8 1 0 1 Să se scrie instrucţiunile care permit selectarea din vectorul v a:

- penultimului element; - elementelor aflate la poziţii pare; - elementelor aflate la poziţii impare; - transformă vectorul v în vector coloană; - adaugă elementul 20 egal cu suma primelor 7 elemente ale vectorului v .

cop adr y ian righ a.b t re url s iba erve sa@ d to ug al.r o

3. Să se genereze un vector intre limitele -10 şi 10: - cu pas implicit; - cu pas generat astfel incat intervalul sa aiba 20 elemente; - cu un pas logaritmic. 1 2  11   10 11 12      4. Fie matricele, vectorii şi sclarul: A=  3 4  ,B=   ,C= 1 2 3 , D=  22  , p=4. 20 21 22   5 6  33    Să se verifice ce operaţii matematice pot fi realizate cu acestea (operaţii matriceale şi operaţii cu tablouri). 6. Fie dată matricea A =[l 2 3; 4 5 6;.7 8 9]. Să se genereze o matrice având diagonala principală identică cu cea a matricei A şi cu celelalte elemente egale cu zero.

Related Documents

Laborator1
October 2019 3
Laborator1 Mni.pdf
December 2019 7

More Documents from "Stefan Niculcea"