chơng Ma trận - phép toán ma trận 4.1 Khái niệm: - Trong MATLAB liệu để ®−a vμo xư lý d−íi d¹ng ma trËn - Ma trận A có n hng, 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 hμng cét - Ma trËn hμng ( × m ) sè liƯu đợc bố trí hng a11 a12 a13 a1m - Ma trËn cét ( n × 1) sè liệu đợc bố trí 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 chữ sau l số, chữ cái, ký tự đặc biệt Tên đặt bên trái dấu , bên phải dấu l phần tử ma trận - Bao quanh phần tử ma trận dấu ngoặc vuông - Các phần tử ma trận đợc cách ký tự trống dấu phÈy ( , ) - KÕt thóc mét hμng 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 3; ; 9] >> B =[1 3; 456; 9] - NhËp th«ng qua lƯnh Dïng lƯnh input Trang >> input('Nhap gia tri cho ma tran C = ') Nhap gia tri cho ma tran C = [1 4;4 7;7 8] ans = 4 7 Chó ý kÕt thóc mét c©u lƯnh cã thĨ dïng dÊu (; ) không dùng dấu ( ;) - Nếu dùng dấu (;) câu lệnh đợc thực nhng kết không mn hình - Nếu không dùng dấu ( ; ) câu lệnh đợc thực v kết đợc mn hình - Trong trờng hợp sau câu lệnh đợc thực kết đợc lu vo nhớ v sử dụng cho câu lệnh Vd >>a = [1 3;3 4;4 1]; >> b = [1 3;4 6;7 9] b= Cả ma trận A, B đợc lu vo nhớ v đợc sử dụng cho câu lệnh >> c = a*b c= 30 36 42 39 48 57 31 41 51 4.1.3 Hiển thị lại ma trận: Trang - Để 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 ma trận 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 ny') hiển thị lời thông báo ny Chú ý: - Các phần tử 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 - Các phần tử ma trËn cã thĨ lμ c¸c ký tù Nh−ng trớc tiên ta phải khai báo phần tử lÖnh syms VD >> syms sinx cosx a >> b = [ sinx cosx; a cosx] b= [ sinx, cosx] [ a, cosx] >> c=[a sinx; a a] Trang c= [ a, sinx] [ a, a] 4.2 Xö lý 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 số thực Bớc chạy dơng âm VD Tạo vectơ t chạy từ đến 0.6 với bớc chạy tiến l 0.1 >> t=0: 0.1:0.6 t= 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 VD: Tạo vectơ t chạy từ 0.6 đến 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 Chó ý : Trong trờng hợp giới hạn trên, gới hạn dới l số nguyên v bớc chạy ta không cần đa bớc chạy vo biểu thức VD >> C = 1:5 C= 4.2.2 Gọi phần tử ma trận MATLAB cho phép ta xử lý đến phần tử ma trận Để truy cập đến phần tử ma trận ta phải gọi đợc chúng thông qua số phần tử Tên ma trận( Chỉ số hng, chØ sè cét) VD: >> A = [1:3; 4:6; 7:9] A= >> B = A(1,1) Trang B= >> A(3,3) = A(2,2) + B A= Chó ý: Trong tr−êng hỵp ta muốn gọi tất hng tất cét ta cã thĨ dïng to¸n tư hai chÊm ( : ) VD: >> A = [1:3; 4:6; 7:9] A= >> B = A(2,:) B= >>C = A(:,2) C= 4.2.3 Gäi ma trËn tõ mét ma trËn lín VD >> A = [1:3; 4:6; 7:9] A= >> B = A ( 2:3,1:2 ) B= Trang 5 >> c =[a(1,1) a(3,3); a(2,3) a(3,1)] c= 4.3 C¸c ma trËn đặc biệt: 4.3.1 Ma trận zeros Tất phần tư ma trËn ®Ịu b»ng VD >> C = zeros (2,3) C= 0 0 0 0 0 0 0 >> d = zeros(3) d= 4.3.2 Ma trËn ones TÊt c¶ phần tử ma trận VD >> C = ones (2,3) C= 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 giá trị phần tử hng = Tổng tất giá trị phần tử cột = Tổng tất giá trị phần tử đờng chéo ma trận Vd Trang >> A = Magic (3) A= 4.3.4 Ma trËn eye Tất phần tử đờng chéo có giá trị 1, phần tử khác có giá trị VD >> B = eye (3) B= 0 0 4.4 C¸c phÐp to¸n vector: Phép toán Công thức Matlab Cộng, trừ A+B, A-B A+B, A-B Nhân mảng A.B = C A.*B Chia trái m¶ng B\A B.\A Chia ph¶i m¶ng A/B A./B Luü thõa mảng AB A.^B 4.4.1 Các phần tử l số thùc: >>a=[1 2;2 1] a= 1 2 1 >> b=[1 2; 1 1] b= 2 1 Trang >> c=a.*b c= 1 >> 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.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 tham số: >> syms a b c Trang >>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 chuyển vị: Phép chuyển đổi véctơ hng thnh véctơ cét gäi lμ phÐp chun vÞ Thùc hiƯn phÐp chun vị toán tử dấu nháy đơn ( ) VD >> A = [1:3; 4:6; 7:9] A= 9 ’ >> B = A B= Ma trận B đợc gọi l ma trận chun 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 với ma trận cã cïng kÝch cì Trang Cij = Aij + Bij Dij = AÞj - Bij >> A = [1:3; 4:6; 7:9] A= 9 10 10 14 10 14 18 >> B = A’ B= >> C = A + B C= 4.5.3 PhÐp nh©n, chia ma trËn: C = A*B Để thực đợc phép nhân số cét cđa ma trËn A ph¶i b»ng sè hμng cđa ma trËn B n C ij = ∑ A ik B kj k =1 Các phần tử ma trận C đợc tính nh sau: VD phần tử ma trËn lμ c¸c sè thùc >> A = [1 1; 1] A= 1 >> B = [1 2; 1; 1 1] Trang 10 B= 2 1 1 >> C = A * B C= VD phần tử ma trận l số phức >> a=[1+2i 2+2i;1+3i 2+2i] a= 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 phần tử ma trận tham số >> syms a b c >>d=[2*a b c; a b c; 0 a] d= [ 2*a, b, c] [ a, b, c] [ 0, 0, a] >> e=[a b c; 2*a 2*b^2 c ; a b] e= Trang 11 [ a, b, c] [ 2*a, 2*b^2, [ a, 0, c] b] >> f=d*e f= [ 2*a^2+2*b*a+c*a, 2*b*a+2*b^3, [ a^2+2*b*a+c*a, b*a+2*b^3, [ a^2, 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 A = A* B B Lấy ma trận nghịch đảo thực hiÖn b»ng hμm inv C= >> A = [1 1; 1] A= 1 >> B = [1 2; 1; 1 1] B= 2 1 1 >> C = inv(B) C= 1.0000 -1.000 -0.5000 -0.5000 1.5000 0.500 -0.5000 0.5000 >> D = A*C D= - 0.5000 -0.5000 2.5000 0.5000 0.5000 -0.5000 Trang 12 Chú ý: Trong phép tính nếu thực với số thực tất phần tử ma trận đợc cộng, trừ, nhân, chia ( / ) víi sè thùc ®ã t thc vo phép toán tơng ứng >> A = [1 1; 1] A= 1 2 >> B = A*2 B= 4.5.4 PhÐp quay ma trËn: Quay ma trËn B góc 90 độ theo ngợc chiều kim ®ång hå >> a=[1 3;4 6;7 9] a= 9 >> b=rot90(a) b= 4.5.5.Phép đảo ma trận: Đảo phần tử ma trận từ trái sang phải >> c=fliplr(b) c= Trang 13 ... C = 1:5 C= 4.2.2 Gäi phần tử ma trận MATLAB cho phép ta xử lý đến phần tử ma trận Để truy cập đến phần tử ma trận ta phải gọi đợc chúng thông qua số phần tử Tên ma trận( Chỉ số hng, sè cét) VD:... b= C¶ ma trận A, B đợc lu vo nhớ v đợc sử dụng cho c©u lƯnh tiÕp theo >> c = a*b c= 30 36 42 39 48 57 31 41 51 4.1.3 HiÓn thị lại ma trận: Trang - Để hiển thị lại ma trận ta gõ tên ma trận sau... Gäi ma trËn tõ mét ma trËn lín VD >> A = [1:3; 4:6; 7:9] A= >> B = A ( 2:3,1:2 ) B= Trang 5 >> c =[a(1,1) a(3,3); a(2,3) a(3,1)] c= 4.3 Các ma trận đặc biệt: 4.3.1 Ma trận zeros Tất phần tử ma