You are on page 1of 18

Chng 2 - Ma trn v cc php ton

Chng 2

Ma trn v Cc php ton cho ma trn

Trong phn ny, ta s xem xt cc bin n, cc i lng v hng cng vi cc bin ma trn cng cc php tnh c bn, cc hm chc nng sn c v cc ton t c s dng trong phn mm Matlab.

2.1 Vector - i lng v hng v ma trn


Khi gii quyt mt vn k thut no , iu quan trng l ph i xem xt cc d liu lin quan ti vn . Mt s d liu c gi tr n nh din tch hnh vung, mt s d liu lin quan ti nhiu i lng nh to 1 im trong khng gian gm 3 gi tr x,y,z ... Tt c nhng d liu ny c dng cu trc c bit gi l ma trn (matrix). Cc phn t ca ma trn c sp xp theo hng v ct. Mt gi tr n c th coi l mt ma trn ch c duy nht 1 hng v 1 ct hay cn gi l i lng v hng (scalar). Ma trn ch c mt hng hoc mt ct c gi l vector. cp nht ti 1 phn t ca ma trn ta s dng ch s hng v ct ca n (subscripts). V d: C4,3 Kch thc ca ma trn c th hin mxn c ngha l c m hng v n ct. 2.1.1 Cch nhp gi tr cho ma trn hay cc i lng v hng

Phn I - C s

14

Chng 2 - Ma trn v cc php ton C 4 cch lit k sau y cho vic vo d liu cho cc bin v hng hay ma trn. + Lit k trc tip cc phn t ca ma trn + C th c d liu t mt file d liu. + S dng ton t (:). + Vo s liu trc tip t bn phm. * Mt s cc quy nh cho vic nh ngha ma trn Tn ma trn phi c bt u bng ch ci v c th cha ti 19 k t l s, ch ci, hoc du gch di c t bn tri du bng. Bn phi ca du bng l cc gi tr ca ma trn c vit theo th t hng trong du ngoc vung. Du chm phy (;) phn cch cc hng. Cc gi tr trong hng c phn cch nhau bi du phy (,) hoc du cch; cc gi tr c th l s m hay dng. Du thp phn c th hin l du chm (.). Khi kt thc nhp mt ma trn phi c du (;). a. Lit k trc tip: L cch nh ngha ma trn mt cch n gin nht. Cc phn t ca ma trn c lit k trong du ngoc vung.
>> A=[3,5]; >> B=[1.5,3.1]; >> C=[-1,0,0; -1,1,0; 1,-1,0; 0,0,2];

C th xung dng phn bit tng hng ma trn. V d:


>>C=[ -1 0 0 -1 1 0 1 -1 0 0 0 2 ];

Khi s phn t trn mt hng ca ma trn qu ln, ta c th dng du ba chm (...) th hin s phn t ca hng vn cn. V tip tc vit cc phn t dng tip theo. V d: Vector F c 10 phn t ta c th vit nh sau:
>> F = [ 1, 52, 64, 197, 42, -42,...

Phn I - C s

15

Chng 2 - Ma trn v cc php ton


55, 82, 22, 109 ];

Bn c th nh ngha mt ma trn t mt ma trn khc nh sau


>> B = [ 1.5, 3.1 ]; >> S = [ 3.0, B ];

Ma trn S c th hiu nh sau: S = [ 3.0, 1.5, 3.1]; Bn c th cp nht ti tng phn t mt bng cch s dng ch s ca n:
>> S(2) = -1.0;

Gi tr ca phn t th 2 trong ma trn S s thay i t 1.5 thnh -1.0. Bn c th m rng ma trn bng cch thm cho n phn t mi. Thc hin lnh sau:
>> S(4) = 5.5;

Ma trn S lc ny s c 4 phn t: S = [ 3.0, -1.0, 3.1, 5.5 ]; Nu ta thc hin lnh ny:
>> S(8) = 9.5;

Th ma trn S s c 8 phn t, cc phn t S(5), S(6), S(7) s t ng nhn gi tr l 0. b. C th c d liu t mt file d liu c: Thng qua lnh load cho php nhp vo d liu ca ma trn lu tr trc trong a c. S dng ton t (:) Du hai chm (:) c s dng to vector t ma trn. iu ny to iu kin cho thun li trong vic x l s liu. - V d: Mun v biu theo h to x,y cho 1 file d liu no , ta d dng ghi cc s liu x vo 1 vector v cc s liu y vo 1 vector khc. Ti v tr ca du (:) trong ma trn, n i din cho tt c cc hng hoc tt c cc ct. - V d: Cc lnh sau y s a tt c cc d liu ct th nht trong ma trn data1 vo vector x v ton b d liu ct th 2 ca ma trn vo vector y:
>> x = data1 (: , 1);

Phn I - C s

16

Chng 2 - Ma trn v cc php ton


>> y = data1 (: , 2);

Du hai chm cn c th s dng lm k hiu tng qut trong ma trn mi. Nu du hai chm nm gia 2 s nguyn, th n i din cho tt c cc s nguyn nm gia 2 s nguyn . V d: du 2 chm l k hiu tng qut ca vector H c cha cc s t 1 n 8.
>> H = 1:8;

Nu du hai chm nm gia 3 s, th du 2 chm i din cho tt c cc s c gi tr t s th nht n s th 3, s th 2 c s dng lm mc tng. - V d: du 2 chm l k hiu tng qut trong vector hng c tn TIME c cha cc s t 0.0 n 5.0 c mc tng l 0.5:
>> TIME = 0.0 : 0.5 : 5.0;

Mc tng m c th hin trong v d sau:


>> VALUES = 10 : -1 : 0;

Du hai chm cn c s dng chn cc ma trn con t 1 ma trn khc. - V d: Gi s c ma trn C c cho nh sau:
>> C=[ -1 0 0 -1 1 0 1 -1 0 0 0 2 ];

Dng lnh:
>> C_PARTIAL_1 = C( : ,2:3); >> C_PARTIAL_2 = C(3:4,1:2);

Ta s nhn c ma trn sau: C_PARTIAL_1 =[ 0 0 1 0 -1 0 0 2 ]; Nu du hai chm nh ngha cc ch s khng hp l nh C(5:6,:), th s c hin th thng bo li. Trong MATLAB ma trn rng (empty matrix) l gi tr hp l. Ma trn rng c th c nh ngha nh sau: C_PARTIAL_2 =[1 -1 0 0 ];

Phn I - C s

17

Chng 2 - Ma trn v cc php ton


>> A = [ ]; >> B = 4 : -1 : 5

Ma trn rng khc vi ma trn ch ton s 0. Cui cng, C(:) tng ng vi mt ct di c cha ct u tin ca ma trn C, tip n l ct th hai ca ma trn C, v c nh vy tip tc. y l ton t rt mnh ca Matlab. d. Vo s liu trc tip t bn phm. Ta c th nhp ma trn t bn phm. C php:
>> Z = input('Nhp gi tr cho Z');

Khi thc hin lnh ny, my s hin th xu k t 'Nhp gi tr cho Z' v i ngi s dng nhp s liu vo. Ngi s dng c th g mt biu thc nh sau [5.1 6.3 -18.0] xc nh gi tr ca Z. Nu ngi s dng ch g enter m khng nhp gi tr no vo th ma trn Z s c coi l ma trn rng. Nu lnh kt thc vi du (;) th gi tr ca Z s c hin th. Nu khng c du (;) th khng c hin th. 2.1.2 Hin th ma trn C nhiu cch hin th ma trn. Cch n gin nht g tn ca ma trn ri enter. Tuy nhin, c mt s lnh c dng hin th ma trn vi cc phn t ma trn c biu din theo nhiu kiu khc nhau. Dng mc nh l 5 ch s c ngha sau du thp phn (gi l short format). Mt s dng hin th khc c lit k di y: format long format short format short e format long e format format compact Dng s ch s c ngha di (15 ch s c ngha sau du thp phn tr ln) Cn gi l default format (c 5 ch s c ngha) Dng s phy ng ngn (di 1015) Dng s phy ng ln (t 1015 tr ln. V d: 6.023e+23) Hin th du (m, dng) ca cc phn t ca ma trn. Cho php gim khong cch gia cc phn t trong ma trn 18

Phn I - C s

Chng 2 - Ma trn v cc php ton format loose disp Hu b lnh format compact tr li ch hin th thng thng. Hin th thng bo trong du ngoc n hoc hin th ni dung ca ma trn. V d:
>> disp(temp); disp(' F ');

Ta s nhn c: 78 F Trong temp l tn ca ma trn cha 1 gi tr nhit F l 78. fprintf Lnh ny cho php in tham s u ra theo ng dng m ta mong mun: c text v c gi tr s. Trong lnh ny c th c cha c nhng dng trng. C php ca n nh sau:
>> fprint( nh dng, ma trn);

Trong nh dng c th cha c text v cc k hiu dng c bit (%e, %f,%g, /n c ghi trong cp du nhy n) iu khin cch in cc gi tr ca ma trn. Nu s dng: %e cc gi tr c in ra di dng s phy ng. %f cc gi tr c in ra di dng s phy tnh. %g th gi tr c in ra c th c dng s phy ng hoc tnh tu thuc vo bn thn n. \n th 1 dng trng s c in ra. V d:
>> fprintf( 'Nhit l: \n %4.1f F \n', temp);

Ngha l s v tr dnh in gi tr ca bin temp l 4 v mt s sau du phy. N s c hin th nh sau: Nhit l: 78.0 F

2.2 Cc ma trn c bit:

Phn I - C s

19

Chng 2 - Ma trn v cc php ton Matlab c sn mt s hm lu cc hng, gi tr c bit v cc ma trn c bit. MATLAB c mt s hm to ra cc ma trn c bit. 2.2.1 Ma trn ma phng (magic( n ) ) Ma phng bc n l ma trn vung cp n bao gm cc s nguyn t 1 n n2. Cc s nguyn c sp xp sao cho tng cc phn t trn mt hng, mt ct, ng cho l bng nhau. Hm ca ma trn ma phng tng qut ch cn mt tham s l bc ca n. V d:
>> magic(4)

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

2.2.2 Ma trn 0 ( zeros ) Hm zeros(m,n) l ma trn c kch thc mxn cha ton s 0. Nu tham s ca hm ch c 1 gi tr th hm l ma trn vung. to ra ma trn 0, dng hm zeros(n), zeros(m,n), zeros(A) vi A l ma trn bt k. V d:
>> zeros ( 4 , 4 )

ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2.2.3 Ma trn 1 ( ones ) Hm ones c nh ngha ging nh hm zeros nhng s 0 c thay bi s 1. v d:


>> ones( 4 , 4 )

ans = Phn I - C s 20

Chng 2 - Ma trn v cc php ton 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2.2.4 Ma trn ng cho c bit (Identity Matrix) Ma trn ng cho l ma trn c cc phn t nm trn ng cho chnh l 1, cn cc phn t v tr khc l 0. V d:
>> eye ( 4 )

ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

Ch l khng ch c ma trn vung mi c ng cho chnh m khi nin ny cn m rng cho c ma trn ch nht. 2.2.5 Ma trn ng cho m rng eye( m,n ) L ma trn ng cho m rng vi ma trn hnh ch nht c m hng, n ct. Cc phn t c ch s hng v ct bng nhau c gi tr l 1, ti cc v tr khc cc phn t c gi tr l khng. Khi hm ch c 1 gi tr tham s th ma trn ng cho m rng s tr thnh ma trn ng cho. Ma trn ny c to ra bi hm eye(m,n); eye(n); eye (C) (ging cc nh ngha trn). V d:
>> eye ( 4,5 )

ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0

2.2.6 Ma trn Pascal ( pasca (n) ) L ma trn cha cc gi tr ca tam gic Pascal.

Phn I - C s

21

Chng 2 - Ma trn v cc php ton V d:


>> pascal(4)

ans = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20

2.2.7 Cc ma trn dc bit khc compan gallery hadamard hankel hilb invhilb kron rosser toeplitz vander wilkinson Companion matrix. Several small test matrices. Hadamard matrix. Hankel matrix. Hilbert matrix. Inverse Hilbert matrix. Kronecker tensor product. Classic symmetric eigenvalue test problem. Toeplitz matrix. Vandermonde matrix. Wilkinson's eigenvalue test matrix.

2.3 Cc php ton v hng


2.3.1 Biu thc s hc: Php ton Cng Tr Nhn Biu thc s hc a+b a-b axb MATLAB a+b a-b a*b

Phn I - C s

22

Chng 2 - Ma trn v cc php ton Chia Chia phi Chia tri Lu tha V d:
>> a = 3 ; b = 1.2; >> a + b % Php nhp d liu % Php cng ( tr )

a/b a:b b:a ab

a/b a:b b:a a^b

ans = 4.2000
>> a/b % Php chia ( nhn )

ans = 2.5000
>> b : a % Php chia tri

ans = 1.2000
>> a^b

2.200
% Php ly tha

ans = 3.7372 2.3.2 Th t u tin ca cc ton t: Tuy nhin mt s ton t c th kt hp trong mt biu thc s hc, khi iu quan trng nht l phi bit th t u tin ca cc ton t trong biu thc. Th t u tin 1 2 3 phi 4 phi V d: cng v tr, t tri qua Ngoc n lu tha nhn v chia, t tri qua Ton t

Phn I - C s

23

Chng 2 - Ma trn v cc php ton x3 - 2x2 + x - 6.3 x2 + 0.05005x - 3.14 Nu x l mt gi tr v hng th gi tr ca f s c tnh theo cc lnh sau:
>> numerator = x^3 - 2*x^2 + x - 6.3; >> denominator = x^2 + 0.05005*x - 3.14; >> f = numerator/ denominator;

2.3.3 Cc php ton i vi vector Php ton thc Cng Tr Nhn mng Chia phi m ng Chia ng Lu ng tha m ab a.^b tri m b/a a.\b a+b ab axb a/b Cng Vit Matlab a+b a-b a.*b a./b di dng

Cc php ton trn khng ch p dng gia cc ma trn c kch thc bng nhau m cn p dng gia cc i lng v hng v i c hng. V d: B = A.*; C = A./5; Vc t B v C l vc t c kch thc bng vc t A. Xt hai vc t nh sau:
>> A = [ 2 5 6 ] >> B = [ 2 3 5 ]

B = 3*A;

C = A/5;

Tch hai vc l s c vit nh sau:


>> C = A.*B;

Phn I - C s

24

Chng 2 - Ma trn v cc php ton Vc t C s cha cc phn t nh sau: C = [ 4 15 30 ] Matlab c hai php chia: Chia tri : C = A./B; % Gi tr ca C thu c s l: C = [ 1 1.667 1.2 ]

Chia phi: C = A.\B; % Gi tr ca C thu c s l: C = [ 1 0.6 0.883 ] Ton t m i vi vc t: C = A.^2; D = A.^B; %C=[4 36 ] 25

% D = [ 4 125 7776 ] Lnh ny cn c th vit l: E = (3).^A;

E = 3.0.^A; % E = [ 9 243 729 ] Ch : E = 3.^A;

% s c xt sau.

E = 3 .^A; % Nu c khong trng gia s 3 v du chm th ng Cc v d trc xt cho cc vc t, nhng kt qu vn ng cho cc ma trn hng v ct. Xt cc lnh sau: C = [ 1:5; S = D - Z; P = D.*S; SQ = D.^3; Kt qu thu c s l nhng ma trn nh sau: D= 1 2 3 4 5 -1 -2 -3 -4 -5 0 1 2 3 4 -2 -3 -4 -5 -6 Z= 1 1 1 1 0 2 2 6 1 1 1 1 1 1 -1:-1:-5 ]; Z = ones(D);

S=

P=

6 12 2 12 20 0 3 0

Phn I - C s

25

Chng 2 - Ma trn v cc php ton S= 1 8 -1 -8 27 64 125 -27 -64 -125

Thng thng, cc d liu k thut c lu di dng ma trn. x l chng mt cch thun tin, phn mm Matlab c xy dng gm nhiu hm c th x l cc s liu di dng ma trn.

2.4. Cc php ton i vi ma trn


2.4.1 Ma trn chuyn v Ma trn chuyn v ca ma trn A l mt ma trn mi, trong ct ca ma trn mi l hng ca ma trn gc. K hiu l AT. V d: A= 1 1 1 2 1 1 AT = 1 2 1 3 1 4 Cc phn t hng ca ma trn A tr thnh phn t ct ca ma trn A . Trong Matlab ngi ta k hiu ma trn chuyn v l A'. Ngi ta s dng ton t ma trn chuyn v chuyn vect hng thnh vect ct v ngc li.
T

1 3

1 4

2.4.2 Tch v hng l tch ca hai ma trn cng c K hiu ton hc l: dot-product = A.B = ai.bi Trong Matlab: dot-product = sum(A.*B); Nu c A v B u l vect ct hoc hng th A.*B cng l mt vect. Nu A l vect hng v B l vect ct th tch v hng c tnh nh sau: dot-product = sum(A'.*B) = sum(A.*B');

Phn I - C s

26

Chng 2 - Ma trn v cc php ton V d:


>> A = [ 1 2 3; 4 5 6 ]; >> B = [ 3 4 5; 6 7 8]; >> C = A.*B % Php nhn v hng 2 ma trn A v B

C= 3 24 ans = 27 43 63 2.4.3 Nhn ma trn C = AB Trong : Ci,j = AikBkj S hng ca ma trn A phi bng s ct ca ma trn B. Ch l AB#BA (c th tn ti tch AB nhng khng tn ti tch BA). K hiu php nhn ma trn trong Matlab: V d: Vi d liu cho trong hai ma trn A v B. Php nhn ma trn c thc hin di y.
>> B = B; hp cho >> C = A* B; % o ma trn B c s hng, ct thch % php nhn ma trn A,B

8 35

15 48

>> sum(C)

C= 26 44 62 107 * Php lu tha: C php: A^k =(A*A*....*A) #A.^k


>> A = [ A(:,1) A( :,2)] % Chch 2 ct 1 v 2 ca ma trn A to

A= 1 4 2 5

% ma trn A vung cho php lu tha

>> C = A^3

% Php ly tha ca ma trn A

Phn I - C s

27

Chng 2 - Ma trn v cc php ton C= 57 78 156 213 2.4.4 Cc thao tc ma trn: a) Rotation (php quay): C php:
>> B = rot90(A);

Cc phn t ca ma trn A c quay mt gc 90 o theo ngc chiu kim ng h. V d: 2 1 A= -2 5 3 4 0 -1 6 ==> B = rot90(A) = 0 -1 6 1 5 4 2 -2 3

Hm rot90 cng c tham s th hai xc nh thc hin s ln quay ca cc phn t trong ma trn A. V d:
>> B = rot90(A); >>C = rot90(B);

Hai dng lnh trn tng ng vi dng lnh sau vi tham s ln quay l 2
>> C = rot90(A,2);

b) o ma trn: Trong Matlab c hai hm c s dng o mt ma trn to ra ma trn mi: fliplr(A) hm o cc phn t ca ma trn ma trn A t tri sang phi. V d:
>> A = [ 4 7 >> B = fliplr(A) 1 5 8 2 6 9 ]; 3

Phn I - C s

28

Chng 2 - Ma trn v cc php ton B= 3 6 9 2 5 8 1 4 7

flipud(B) hm o cc phn t ca ma trn B t trn xung di. Ma trn thu c kt qu nh sau:


>> C = flipud (B)

C= 9 6 3 c) Reshape: Hm ny cho php nh dng li ma trn vi s hng v s ct khc vi ma trn gc. S phn t ca ma trn gc v ma trn nh dng li phi bng nhau. Hm c ba tham s: tham s u l ma trn gc, hai tham s cn li l s hng v s ct ca ma trn mi. V d: 2 1 A= -2 5 3 4 B= 2 -2 3 1 5 4 0 -1 6 d) Trch cc phn t t mt ma trn Cc hm diag, triu, tril cho php trch cc phn t t mt ma trn. C 3 hm lin quan ti ng cho chnh: diag(A) diag(A,k) Ly cc phn t trn ng cho chnh v lu vo mt vect ct. Chn ng cho tu thuc gi tr k. k=0 chn ng cho chnh. k>0 chn ng cho th k trn ng 0 -1 6 8 5 2 7 4 1

>> B = reshape(A,1,9)

Phn I - C s

29

Chng 2 - Ma trn v cc php ton cho chnh k<0,chn ng cho th k di ng cho chnh. A=diag(V) B=triu(A) Nu V l vect ta c ma trn vung A vi vect l ng cho chnh. Sinh ra ma trn B cng c cha cc phn t ca A nm trn ng cho chnh v pha trn ng cho chnh. Cc v tr khc bng 0. L ma trn cng c vi A cha s phn t t A ngay trn v pha trn ng cho th k, cc v tr khc bng 0. L ma trn cng c vi A cha s phn t t A nm di ng cho chnh. Cc v tr khc bng 0. L ma trn cng c vi A cha s phn t t A ngay trn v pha di ng cho th k, cc v tr khc bng 0.

triu(A.k)

tril(A)

tril(A,k)

V d: Vi d liu l ma trn A cho sau


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

Cc hm trch phn t ca ma trn c vit v th hin kt qu trn mn hnh th hin :


>> diag(A) % Vector ng cho ca A

ans = 1 6 11
>> diag(A,-1) A % Vector ng cho di, v tr s 1ca

ans = 5 10
>> B=triu(A) % Phn trn ca ma trn c lu vo B % Cc phn t cn li c cho = 0

Phn I - C s

30

Chng 2 - Ma trn v cc php ton B= 1 0 0 2 6 0 3 7 11 4 8 12


% Phn trn ca ma trn tnh t ng cho -1

>> B = triu(A,-1) c lu vo B

% Cc phn t cn li c cho = 0

B= 1 5 0 B= 1 5 9 0 6 10 0 0 0 0
% Phn di ca ma trn tnh t ng cho -1

2 6 10

3 7 11

4 8 12
% Phn di ca ma trn c lu vo B

>>B = tril(A)

% Cc phn t cn li c cho = 0

11 0

>> B = tril(A,-1) c lu vo

% B. Cc phn t cn li c cho = 0

B= 0 5 9 0 0 10 0 0 0 0 0 0

Phn I - C s

31

You might also like