22
Leksion nr 3 Tema: Veprime me vektorët dhe matricat

Leksion nr 3 - jurgencoku.files.wordpress.com · pjestimi dhe ngritja në fuqi element pas elementi kryhet duke vendosur një pikë perpara cdo operatori aritmetik. Simboli Përshkrimi

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Leksion nr 3

Tema: Veprime me vektorët dhe

matricat

Menjëherë pasi variablat krijohen në Matlab ato mund të përdoren gjerësisht

në veprime të ndryshme aritmetike. Në leksionin e parë të gjithë variablat që

ne përdorëm ishin numra skalar dhe veprimet aritmetike me to ishin shumë të

thjeshtë. Vargjet mund të jenë një dimensional( vektor kolonë ose vektor rresht),

dy-dimensional(vargje me rreshta dhe kolona) dhe madje me dimensione me të

mëdhaja. Në këto raste veprimet aritmetike janë shumë komplekse.

Mbledhja dhe zbritja janë veprime të thjeshta aritmetike. Veprime të tjera bazë sic

janë shumëzimi, pjestimi dhe ngritja në fuqi mund të realizohen në Matlab

në dy mënyra të ndryshme :

Duke përdorur simbolet aritmetike (*, /, \ dhe ^)

Veprimet element pas elementi. Këto veprime përdorin simbolet .*, ./, .\, .^ .

3.1 Mbledhja dhe Zbritja • Mbledhja dhe zbritja realizohet për matricat me madhësi të njejtë (të dyja

matricat duhet të kenë të njejtën nr rreshtash dhe kolonash).Nqse një nr

skalar i mblidhet ose i zbritet një matrice, ky nr i mblidhet ose i zbritet cdo

elementi të një matrice.

>> VectA=[8 5 4]; VectB=[10 2 7];

>> VectC=VectA + VectB

VectC =

18 7 11

>> A=[5 -3 8; 9 2 10]

A =

5 -3 8

9 2 10

>> B=[10 7 4; -11 15 1]

B =

10 7 4

-11 15 1

>> A-B

ans =

-5 -10 4

20 -13 9

Përcaktojme dy vektorë.

Përcaktojme VektC si shumë

të dy vektorëve.

Përcaktojme matricën A dhe B me madhësi 2

3.

Bëjmë diferencën e matricës A me matricën B.

3.2 Shumëzimi • Veprimi i shumëzimit (*) në Matlab ekzekutohet duke u

bazuar në rregullat e algjebrës lineare, që do të thotë që të kryhet veprimi i shumëzimit (A*B) nr i kolonave të matricës A duhet të jetë i barabartë me nr e rreshtave të matricës B. Rezultati është një matricë e cila ka të njejtin nr rreshtash si matrica A dhe te njejtin nr kolonash si matrica B. Shembull: Nqse matrica A(4x3) dhe B(3x2) matrica që përftohet nga veprimi A*B ka madhësinë (4x2). Shumëzimi i matricave katrore(me të njejtën madhësi) na rezulton po nje matrice katrore me te njejtën madhësi si dy matricat. Nqse matrica A dhe B kanë të njejtën madhësi (n

n) atëherë A*B≠B*A.

• Dy vektorë mund të shumëzohen nqse nr i elementëve është i njejtë, ku njëri prej vektorëve është vektor rresht dhe tjetri vektor kolonë. Kjo quhet ndryshe dhe prodhimi dot i dy vektorëve. ( Në Matlab ka një funksion të përcaktuar të quajtur dot(a,b) që bën shumëzimin e dy vektorëve.)

Shembuj

>> A=[1 4 2; 5 7 3; 9 1 6; 4 2 8]

A =

1 4 2

5 7 3

9 1 6

4 2 8

>> B=[6 1; 2 5; 7 3]

B =

6 1

2 5

7 3

>> C=A*B

C =

28 27

65 49

98 32

84 38

>> D=B*A

??? Error using ==> mtimes

Inner matrix dimensions must agree.

Përcaktojmë matricën A me madhësi(4x3).

Përcaktojmë matricën B me madhësi(3x2).

Kryejmë shumëzimin e matricës A me matricën B.

Shumëzimin e matricës B me matricën A nuk mund ta

realizojmë pasi nr i kolonave te B duhet të jetë i

barabartë me nr e rreshtave të A.

Shembuj

Shumëzimi i matricave me madhësi të njejtë.

>> F=[1 3;5 7]

F =

1 3

5 7

>> G=[4 2;1 6]

G =

4 2

1 6

>> F*G

ans =

7 20

27 52

>> G*F

ans =

14 26

31 45

Përcaktojmë matricën F dhe G me madhësi(2x2).

Kryejmë shumëzimin e matricës F me matricën G. (F*G)

Kryejmë shumëzimin e matricës G me matricën F.(G*F)

Shohim që rezultati nuk është i njejtë.

Shumëzimi i vektorëve

>> AV=[2 5 1]

AV =

2 5 1

>> BV=[3;1;4]

BV =

3

1

4

>> AV*BV

ans =

15

>> BV*AV

ans =

6 15 3

2 5 1

8 20 4

Shembuj

Përcaktojmë vektorin rresht AV me 3 element.

Përcaktojmë vektorin kolonë BV me 3 element.

Kryejmë shumëzimin e vektorit AV me BV. Rezultati i

marrë është një nr skalar.(Shumëzimi dot i dy vektorëve)

Kryejmë shumëzimin e vektorit BV me AV. Rezultati i

marrë është një matricë me madhësi(3x3).

Kur një varg shumëzohet menjë numër skalar cdo element në varg shumëzohet me

këtë numër. Shembull

>> A=[1 4 2; 5 7 3; 9 1 6; 4 2 8]

A =

1 4 2

5 7 3

9 1 6

4 2 8

>> b=3

b =

3

>> b*A

ans =

3 12 6

15 21 9

27 3 18

12 6 24

>> C=A*5

C =

5 20 10

25 35 15

45 5 30

20 10 40

Përcaktojmë matricën A me madhësi(3x3).

Përcaktojmë variablin b=3.

Kryejmë shumëzimin e matricës A me variablin b. Kjo mund

te realizohet duke shkruajtur b*A ose A*b.

Kryejmë shumëzimin e matricës A me numrin 5 dhe rezultatin e marrë

e emërtojmë me C. Duke ekzekutuar 5*A marrim të njëjtën rezultat.

• Matrica inverse, matrica njësi dhe përcaktori i

matricës.

>> A=[2 1 4; 4 1 8; 2 -1 3]

A =

2 1 4

4 1 8

2 -1 3

>> B=inv(A)

B =

5.5000 -3.5000 2.0000

2.0000 -1.0000 0

-3.0000 2.0000 -1.0000

>> A*B

ans =

1 0 0

0 1 0

0 0 1

>>det(A)

ans=

2

Përcaktojmë matricën A me madhësi(3x3).

Duke përdorur funksionin inv përcaktojmë

matricën B si matricën inverse të matricës A.

Matrica inverse e A mund të përcaktohet dhe si

A-1.(A^-1)

Duke shumëzuar matricën A me matricën

inverse të saj B ne përftojmë matricën njësi.

Rregullat e algjebres lineare për shumëzimin e vargjeve sigurojnë një mënyrë të

përshtatshme për të shkruajtur një sistem linear ekuacionesh. Për shembull, sistemi i

mëposhtëm është i përbërë nga 3 ekuacione me 3 të panjohura:

Mund të shkruhet në formë matricore:

Në mënyrë të tillë:

Pjestimi i drejtë dhe i zhdrejtë Pjestimi i zhdrejtë

Pjestimi i zhdrejtë përdoret për të zgjidhur ekuacionin matricor AX=B. Në këtë

ekuacion X dhe B janë vektor kolonë. Ky ekuacion mund të zgjidhet duke shumë-

zuar ne te majte te te dyja aneve te barazimit me inversin e matricës A:

A-1AX=A-1B Pra zgjidhja eshte X=A-1B

Në Matlab:X=A\B

Pjestimi i drejtë Pjestimi i drejtë përdoret për të zgjidhur ekuacionin matricor XC=D. Në këtë

ekuacion X dhe D janë vektor rreshta. Ky ekuacion mund të zgjidhet duke shumë-

zuar ne te djathte te te dyja aneve te barazimit me inversin e matricës C.

XCC-1=DC-1 Pra zgjidhja eshte X=DC-1

Në Matlab:X=D/C

3.3 Pjestimi

Shembuj • Pjestimi i zhdrejtë Zgjidh sistemin e meposhtëm:

>> A=[4 -2 6; 2 8 2; 6 10 3];

>> B=[8; 4; 0];

>> X=A\B

X =

-1.8049

0.2927

2.6341

Ose

>> Xb=inv(A)*B

Xb =

-1.8049

0.2927

2.6341

Zgjidh sistemin e mëposhtëm:

>> C=[4 2 6; -2 8 10; 6 2 3];

>> D=[8 4 0];

>> Xd=D/C

Xd =

-1.8049 0.2927 2.6341

Ose

>> Xd=D*inv(C)

Xd =

-1.8049 0.2927 2.6341

• Pjestimi i drejtë

Shembuj

3.4 Veprimet element pas elementi

• Veprimet element pas elementi përdoren vetëm për vargjet që kane

të njejtën madhësi. Veprimet ekzekutohen me elementët të cilët

janë në të njejtat pozicione në vargjet përkatëse. Shumëzimi,

pjestimi dhe ngritja në fuqi element pas elementi kryhet duke

vendosur një pikë perpara cdo operatori aritmetik.

Simboli Përshkrimi Simboli Përshkrimi

.* Shumëzimi ./ Pjestimi i

drejtë

.^ Ngritja në

fuqi

.\ Pjestimi i

zhdrejtë

Shembuj >> A=[2 6 3; 5 8 4]

A =

2 6 3

5 8 4

>> B=[1 4 10; 3 2 27]

B =

1 4 10

3 2 27

>> A.*B

ans =

2 24 30

15 16 108

>> C=A./B

C =

2.0000 1.5000 0.3000

1.6667 4.0000 0.1481

>> B.^3

ans =

1 64 1000

27 8 19683

>> A*B

??? Error using ==> mtimes

Inner matrix dimensions must agree.

>> x=[1:8]

x =

1 2 3 4 5 6 7 8

>> y=x.^2-4*x

y =

-3 -4 -3 0 5 12 21 32

>> z=[1:2:11]

z =

1 3 5 7 9 11

>> y=(z.^3+5*z)./(4*z.^2-10)

y =

-1.0000 1.6154 1.6667 2.0323 2.4650 2.9241

Shembuj

3.5 Përdorimi i vargjeve në funksionet e

përcaktuara në Matlab

>> x=[0:pi/6:pi]

x =

0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416

>> y=cos(x)

y =

1.0000 0.8660 0.5000 0.0000 -0.5000 -0.8660 -1.0000

>> d=[1 4 9;16 25 36;49 64 81]

d =

1 4 9

16 25 36

49 64 81

>>H=sqrt(d)

H =

1 2 3

4 5 6

7 8 9

3.6 Funksionet e përcaktuara për analizën e

matricave Funksioni Përshkrimi Shembulli

mean(A) Nqse A është një vector, komanda

gjen mesataren e elementeve qe

përmban ky vektor.

>>A=[5 2 9 4];

>>mean(A)

ans=

5

C=max(A)

[d,n]=max(A)

Përcakton vlerën më të madhe te

vektorit A. Nqse A është një matricë

, C është një vector rresht i cili

përmban elementet me te mëdhenj

të cdo kolone.

Nqse A është një vector, d është

elementi më i madh i vektorit A , n

pozicioni i tij.

>>A=[5 2 9 4 11 6 7 11 0 1];

>>C=max(A)

C=

11

>>[d,n]=max(A)

d=

11

n=

5

min(A)

[d,n]=min(A)

E njejta si max(A) por për

elementin më të vogël.

E njejta si [d,n]=max(A) por për

elementin më të vogël.

>>A=[5 2 9 4];

>>min(A)

ans=

2

sum(A) Nqse A është një vector, komanda

përcakton shumën e elementëvë të

vektorit A.

>>A=[5 2 9 4];

>>sum(A)

ans=

20

sort(A) Nqse A është një vektor, komanda

ben renditjen e elementët në rendin

rritës.

>>A=[5 2 9 4];

>>sort(A)

ans=

2 4 5 9

Vazhdim funksione të përcaktuara për analizën e

matricave dhe vektorëve

Funksioni Përshkrimi Shembulli

det(A) Llogarit përcaktorin e një

matrice katrore.

>>A=[2 4; 3 5];

>>det(A)

ans=

-2

dot(a,b)

Llogarit produktin scalar

e dy vectorëve a dhe b.

vektorët mund të jenë

vector kolonë ose vector

rresht

>>a=[1 2 3];

>>b=[3 4 5];

>>dot(a,b)

ans=

26

cross(a,b) Llogarit produktin

vectorial te dy vektorëve

a dhe b. Të dy vektorët

duhet të kenë nga 3

element

>>a=[1 3 2];

>>b=[2 4 1];

>>cross(a,b)

ans=

-5 3 -2

inv(A) Përcakton matricën

inverse të matricës A.

>>A=[2 -2 1; 3 2 -1; 2 -3 2];

>>inv(A)

ans=

0.2000 0.2000 0

-1.6000 0.4000 1.0000

-2.6000 0.4000 2.0000

3.7 Gjenerimi numrave te rastësishëm Komanda rand:

Gjeneron njëtrajtësisht numra të rastesishem me vlerë nga 0 deri tek 1. Komanda mund të

përdoret për përcaktimin e tyre tek një skalar, një vektor, ose një matrice si të treguara në tabelë.

Funksioni Përshkrimi Shembulli

rand Gjeneron një nr te

vetëm midis numrit 0

dhe 1.

>>rand

ans=

0.2311

rand(1,n) Gjeneron një vektor

rresht me numra midis

numrit 0 dhe 1.

>> a=rand(1,4)

a =

0.6555 0.1712 0.7060 0.0318

rand(m,n) Gjeneron një matricë

me m rreshta dhe n

kolona me numra

midis numrit 0 dhe 1.

>> rand(2,3)

ans =

0.9157 0.9595 0.0357

0.7922 0.6557 0.8491

rand(n) Gjeneron një matricë

n

n me numra midis

numrit 0 dhe 1.

>> b=rand(2)

b =

0.9649 0.9706

0.1576 0.9572

randperm(n) Gjeneron një vektor

rresht me n element

me numra nga1 tek n.

>>randperm(9)

ans =

6 3 7 8 5 1 2 4 9

Komanda randi:

Gjeneron njëtrajtësisht numra te rastesishem me vlerë nga 1 deri tek vlera max e kerkuar.

Komanda mund të përdoret për përcaktimin e tyre tek një skalar, një vektor, ose një

matrice si të treguara në tabelë.

Funksioni Përshkrimi Shembulli

randi(imax) Gjeneron një nr te vetëm

midis numrit 1 dhe imax.

>> randi(16)

ans =

14

randi(imax,n) Gjeneron një matricë n

n

me numra midis numrit 1

dhe imax

>> randi(8,3)

ans =

8 3 8

6 5 2

1 8 8

randi(imax,m,n) Gjeneron një matricë me

m rreshta dhe n kolona

me numra midis numrit 1

dhe imax

>> randi(12,2,3)

ans =

12 10 6

6 2 11

Gjithashtu ne mund te krijojme dhe matrica me numra te rastesishem midis nje vlere

minimale dhe nje vlere tjeter maximale duke shkruajtur [imin, imax]. Për shembull për të

ndërtuar një matricë me madhësi (3x4) me numra të rastësishëm midis 10 dhe 50:

>> d=randi([10,50],3,4)

d =

37 26 38 11

41 36 11 13

40 17 21 43

Komanda randn:

Gjeneron njëtrajtësisht numra te rastesishem me vlerë te devijuar nga 0 deri tek 1. Komanda

mund të përdoret për përcaktimin e tyre tek një skalar, një vektor, ose një matrice si tëk

komandat e tjera.

>> randn(4,5)

ans =

-0.0068 -0.2256 0.5525 -1.4916 -0.6156

1.5326 1.1174 1.1006 -0.7423 0.7481

-0.7697 -1.0891 1.5442 -1.0616 -0.1924

0.3714 0.0326 0.0859 2.3505 0.8886