Tải bản đầy đủ (.doc) (14 trang)

4 ma tran va cac phep toan ve ma tran

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (143.44 KB, 14 trang )



CM Soft 70 NCT F2 Q10

chơng 4
Ma trận - các phép toán về ma trận.
4.1 Khái niệm:
-

Trong MATLAB dữ liệu để đa vào xử lý dới dạng ma trận.

-

Ma trận A có n hàng, m cột đợc gọi là ma trận cỡ n m. Đợc ký hiệu
An m

-

Phần tử aij của ma trận An m là phần tư n»m ë hµng thø i, cét j .

-

Ma trËn đơn ( số đơn lẻ ) là ma trận 1 hµng 1 cét.

-

Ma trËn hµng ( 1  m ) số liệu đợc bố trí trên một hàng.
a11 a12 a13 ... a1m

-


Ma trËn cét ( n  1) sè liÖu đợc bố trí trên 1 cột.
a11
a21
a31
.
.

an1
4.1.1 Các qui định để định nghĩa một ma trận:
-

Tên ma trận có thể gồm 31 ký tự. Bắt đầu phải bằng chữ
cái sau đó có thể là số, chữ cái, các ký tự đặc biệt ... Tên
đặt bên trái dấu bằng , bên phải dấu bằng là các phần tử của
ma trận.

-

Bao quanh các phần tử của ma trận bằng dấu ngoặc vuông.

-

Các phần tử trong ma trận đợc cách nhau bởi ký tự trống hoặc
dấu phẩy ( , ).

-

Kết thúc một hàng trong ma trận bởi dấu ( ; ).

4.1.2 Các cách để nhËp mét ma trËn:


- LiƯt kª trùc tiÕp:VD >> A =[1 2 3; 4 5 6 ; 7 8 9]
Trang 1




CM Soft 70 NCT F2 Q10

>> B =[1 2 3;
456;
7 8 9]
-

NhËp th«ng qua lƯnh. Dïng lƯnh input

>> input('Nhap gia tri cho ma tran C = ')
Nhap gia tri cho ma tran C = [1 3 4;4 5 7;7 5 8]
ans =
1

3

4

4

5

7


7

5

8

Chó ý khi kÕt thóc mét c©u lƯnh cã thể dùng dấu (; ) hoặc
không dùng dấu ( ;).
Nếu dùng dấu (;) câu lệnh đợc thực hiện nhng kết quả

-

không hiện ra màn hình.
Nếu không dùng dấu ( ; ) câu lệnh đợc thực hiện và kết

-

quả đợc hiện ra màn hình.
Trong cả 2 trờng hợp trên sau khi câu lệnh đợc thực hiện

-

kết quả đều đợc lu vào trong bộ nhớ và có thể sử dụng
cho các câu lÖnh tiÕp theo.
Vd
>>a = [1 2 3;3 2 4;4 5 1];
>> b = [1 2 3;4 5 6;7 8 9]
b=
1


2

3

4

5

6

7

8

9

C¶ 2 ma trận A, B đều đợc lu vào trong bộ nhớ và có thể đợc sử dụng
cho những câu lÖnh tiÕp theo.
Trang 2




CM Soft 70 NCT F2 Q10

>> c = a*b
c=
30


36

42

39

48

57

31

41

51

4.1.3 HiÓn thị lại ma trận:
-

Để hiển thị lại ma trận ta gõ tên ma trận sau đó enter.

VD >> c
c=

-

30

36


42

39

48

57

31

41

51

Để hiển thị nội dung của ma trận hoặc lời thông báo (trong dấu
nháy đơn) ta dùng lệnh: disp
VD >> disp (c)
c=
30

36

42

39

48

57


31

41

51

>> disp('hiển thị lời thông báo này')
hiển thị lời thông báo này
Chú ý:
-

Các phần tử trong ma trận có thể là c¸c sè phøc:
VD >> a=[1+3i 2+2i;3+i 1+i]
a=
1.0000 + 3.0000i 2.0000 + 2.0000i
3.0000 + 1.0000i 1.0000 + 1.0000i

Trang 3




-

CM Soft 70 NCT F2 Q10

Các phần tử trong ma trận có thể là các ký tự. Nhng trớc tiên ta phải
khai báo các phần tử bằng lệnh syms
VD >> syms sinx cosx a
>> b = [ sinx cosx; a cosx]

b=
[ sinx, cosx]
[

a, cosx]

>> c=[a sinx; a a]
c=
[

a, sinx]

[

a,

a]

4.2. Xö lý trong ma trận:
4.2.1 Tạo véctơ từ ma trận:
Công thức tổng quát: Biến = giới hạn đầu : bớc chạy : gới hạn cuối
Giới hạn đầu, giới hạn cuối, bớc chạy: là các số thực
Bớc chạy có thể dơng hoặc âm.
VD Tạo 1 vectơ t chạy từ 0 đến 0.6 với bớc chạy tiến là 0.1
>> t=0: 0.1:0.6
t=
0

0.1000


0.2000

0.3000

0.4000

0.5000

0.6000

VD: Tạo 1 vectơ t chạy từ 0.6 đến 0 với bớc chạy lùi là 0.1
>>t=0.6:-0.1:0
t=
0.6000

0.5000

0.4000

0.3000

0.2000

0.1000

0

Chú ý : Trong trờng hợp giới hạn trên, gới hạn dới là các số nguyên và bớc
chạy bằng 1 thì ta không cần đa bớc chạy vào trong biểu thức.
VD >> C = 1:5

C=
1

2

3

4

5

4.2.2 Gọi các phần tö trong ma trËn.
Trang 4




CM Soft 70 NCT F2 Q10

MATLAB cho phÐp ta xö lý đến từng phần tử của ma trận. Để
truy cập đến từng phần tử của ma trận ta phải gọi đợc chúng
thông qua chỉ số của từng phần tử.
Tên của ma trËn( ChØ sè hµng, chØ sè cét)
VD:
>> A = [1:3; 4:6; 7:9]
A=
1

2


3

4

5

6

7

8

9

>> B = A(1,1)
B=
1
>> A(3,3) = A(2,2) + B
A=
1

2

3

4

5

6


7

8

6

Chú ý: Trong trờng hợp ta muốn gọi tất cả các hàng hoặc tất cả các cột
ta có thể dùng to¸n tư hai chÊm ( : )
VD:
>> A = [1:3; 4:6; 7:9]
A=
1

2

3

4

5

6

7

8

9


5

6

>> B = A(2,:)
B=
4
>>C = A(:,2)
C=
Trang 5




CM Soft 70 NCT F2 Q10

2
5
8
4.2.3 Gäi 1 ma trËn con tõ mét ma trËn lín.
VD
>> A = [1:3; 4:6; 7:9]
A=
1

2

3

4


5

6

7

8

9

>> B = A ( 2:3,1:2 )
B=
5
7

8

>> c =[a(1,1) a(3,3); a(2,3) a(3,1)]
c=
1

9

6

7

4.3 Các ma trận đặc biệt:
4.3.1 Ma trận zeros. Tất cả các phần tử trong ma trận đều bằng 0.

VD
>> C = zeros (2,3)
C=
0

0

0

0

0

0

0

0

0

0

0

0

0

0


0

>> d = zeros(3)
d=

4.3.2 Ma trËn ones. Tất cả các phần tử trong ma trận đều b»ng 1
Trang 6




CM Soft 70 NCT F2 Q10

VD
>> C = ones (2,3)
C=
1

1

1

1

1

1

1


1

1

1

1

1

1

1

1

>> d = ones(3)

d=

4.3.3 Ma trËn ma ph¬ng Magic: Tỉng tÊt cả giá trị các phần tử trên
hàng = Tổng tất cả giá trị các phần tử trên cột = Tổng tất cả giá trị
các phần tử trên đờng chéo của ma trËn
Vd
>> A = Magic (3)
A=
8

1


6

3

5

7

4

9

2

4.3.4 Ma trËn eye. TÊt cả các phần tử trên đờng chéo có giá trị 1,
các phần tử khác có giá trị 0.
VD
>> B = eye (3)
B=
1

0

0

0

1


0

0

0

1

4.4 C¸c phÐp to¸n vector:

Trang 7




Phép toán
Cộng, trừ
Nhân mảng
Chia trái mảng
Chia phải mảng
Luỹ thừa mảng

CM Soft 70 NCT F2 Q10

Công thức
A+B, A-B
A.B = C
B\A
A/B
AB


4.4.1 Các phần tử là các số thực:
>>a=[1 1 2;2 1 1]
a=
1

1

2

2

1

1

>> b=[1 2 2; 1 1 1]
b=
1

2

2

1

1

1


1

2

4

2

1

1

>> c=a.*b
c=

>> d=a./b
d=
1.0000

0.5000

1.0000

2.0000

1.0000

1.0000

1.0000


2.0000

1.0000

0.5000

1.0000

1.0000

>> e=a.\b
e=

>> f=a.^b
f=
1

1

4

2

1

1
Trang 8

Matlab

A+B, A-B
A.*B
B.\A
A./B
A.^B




CM Soft 70 NCT F2 Q10

4.4.2 Các phần tử là c¸c sè phøc.
>>a=[1+i 2+3i;3-4i 1+3i]
a=
1.0000 + 1.0000i 2.0000 + 3.0000i
3.0000 - 4.0000i 1.0000 + 3.0000i
>> b=[2+i 2+2i;1-4i 3+3i]
b=
2.0000 + 1.0000i 2.0000 + 2.0000i
1.0000 - 4.0000i 3.0000 + 3.0000i
>> c=a.*b
c=
1.0000 + 3.0000i -2.0000 +10.0000i
-13.0000 -16.0000i -6.0000 +12.0000i
4.4.3 Các phần tử là c¸c tham sè:
>> syms a b c
>>A=[a b; b c]
A=
[ a, b]
[ b, c]

>> B=A
B=
[ a, b]
[ b, c]
>> C=A.*B
C=
[ a^2, b^2]
[ b^2, c^2]
4.5 C¸c phÐp to¸n vỊ ma trËn:
4.5.1 PhÐp chun vÞ:

Trang 9




CM Soft 70 NCT F2 Q10

Phép chuyển đổi véctơ hàng thành véctơ cột gọi là phép chuyển
vị. Thực hiện phép chuyển vị bằng toán tử dấu nháy đơn ( ).
VD
>> A = [1:3; 4:6; 7:9]
A=
1

2

3

4


5

6

7

8

9

1

4

7

2

5

8

3

6

9

>> B = A’

B=

Ma trËn B đợc gọi là ma trận chuyển vị của ma trËn A
4.5.2 PhÐp céng - trõ ma trËn.( + , - )
Phép cộng và trừ ma trận đợc thực hiện víi c¸c ma trËn cã cïng kÝch
cì.
Cij = Aij + Bij
Dij = AÞj - Bij
>> A = [1:3; 4:6; 7:9]
A=
1

2

3

4

5

6

7

8

9

1


4

7

2

5

8

3

6

9

>> B = A’
B=

Trang 10




CM Soft 70 NCT F2 Q10

>> C = A + B
C=
2


6

10

6

10

14

10

14

18

4.5.3 Phép nhân, chia ma trận:
C = A*B.
Để thực hiện đợc phép nhân trên thì số cột của ma trận A phải bằng
số hàng của ma trận B.
Các phần tử trong ma trận C đợc tính nh sau:
n

C ij A ik .B kj
k 1

VD các phần tử trong ma trận là các số thực.
>> A = [1 2 1; 1 0 1]
A=
1


2

1

1

0

1

>> B = [1 0 2; 2 1 1; 1 1 1]
B=
1

0

2

2

1

1

1

1

1


6

3

5

2

1

3

>> C = A * B
C=

VD c¸c phần tử trong ma trận là các số phức.
>> a=[1+2i 2+2i;1+3i 2+2i]
a=

Trang 11




CM Soft 70 NCT F2 Q10

1.0000 + 2.0000i 2.0000 + 2.0000i
1.0000 + 3.0000i 2.0000 + 2.0000i
>> b=[1+i 2+i;1+3i 2+i]

b=
1.0000 + 1.0000i 2.0000 + 1.0000i
1.0000 + 3.0000i 2.0000 + 1.0000i
>> c=a*b
c=
-5.0000 +11.0000i 2.0000 +11.0000i
-6.0000 +12.0000i 1.0000 +13.0000i
VD các phần tử trong ma trận là các tham số
>> syms a b c
>>d=[2*a b c; a b c; 0 0 a]
d=
[ 2*a, b, c]
[ a, b, c]
[ 0, 0, a]
>> e=[a b c; 2*a 2*b^2 c ; a 0 b]
e=
[

a,

b,

c]

[ 2*a, 2*b^2,
[

a,

0,


c]

b]

>> f=d*e
f=
[ 2*a^2+2*b*a+c*a,
[ a^2+2*b*a+c*a,
[

a^2,

2*b*a+2*b^3,
b*a+2*b^3,
0,

2*c*a+2*c*b]
c*a+2*c*b]

b*a]

Phép chia ma trận thực chất là phép nhân với ma trận nghịch đảo.
C

A
1
A*
B
B

Trang 12




CM Soft 70 NCT F2 Q10

Lấy ma trận nghịch đảo thùc hiƯn b»ng hµm inv.
>> A = [1 2 1; 1 0 1]
A=
1

2

1

1

0

1

>> B = [1 0 2; 2 1 1; 1 1 1]
B=
1

0

2


2

1

1

1

1

1

>> C = inv(B)
C=
0

1.0000

-0.5000

-0.5000

0.500

-1.000
1.5000

-0.5000

0.5000


>> D = A*C
D=
- 0.5000

-0.5000

2.5000

0.5000

0.5000

-0.5000

Chú ý: Trong các phép tính trên nếu nếu thực hiện với một số thực thì
tất cả các phần tử trong ma trận sẽ đợc cộng, trừ, nhân, chia ( / ) với số
thực đó tuỳ thuộc vào phép toán t¬ng øng.
>> A = [1 2 1; 1 0 1]
A=
1

2

1

1

0


1

4

2

>> B = A*2
B=
2

Trang 13




2

0

CM Soft 70 NCT F2 Q10

2

4.5.4 PhÐp quay ma trËn: Quay ma trận B đi 1 góc 90 độ theo
ngợc chiỊu kim ®ång hå.
>> a=[1 2 3;4 5 6;7 8 9]
a=
1

2


3

4

5

6

7

8

9

>> b=rot90(a)
b=
3

6

9

2

5

8

1


4

7

4.5.5.Phép đảo ma trận: Đảo các phần tử của ma trận từ trái sang
phải.
>> c=fliplr(b)
c=
9

6

3

8

5

2

7

4

1

Trang 14




×