Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
79,5 KB
Nội dung
Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 chơng 4 Matrậ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. - Matrận A có n hàng, m cột đợc gọi là matrận cỡ n ì m. Đợc ký hiệu A n ì m - Phần tử a ij của matrận A n ì m là phần tử nằm ở hàng thứ i, cột j . - Matrận đơn ( số đơn lẻ ) là matrận 1 hàng 1 cột. - Matrận hàng ( 1 ì m ) số liệu đợc bố trí trên một hàng. a 11 a 12 a 13 . a 1m - Matrận cột ( n ì 1) số liệu đợc bố trí trên 1 cột. a 11 a 21 a 31 . . a n1 4.1.1 Các qui định để định nghĩa một ma trận: - Tên matrậ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 matrận bằng dấu ngoặc vuông. - Các phần tử trong matrậ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 matrậ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] >> B =[1 2 3; 4 5 6 ; Trang 1 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 7 8 9] - Nhập thông qua lệnh. Dùng lệnh input >> input('Nhap gia tri cho matran C = ') Nhap gia tri cho matran 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 matrậ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. >> c = a*b c = 30 36 42 39 48 57 31 41 51 Trang 2 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 4.1.3 Hiển thị lại ma trận: - Để hiển thị lại matrận ta gõ tên matrận sau đó enter. VD >> c c = 30 36 42 39 48 57 31 41 51 - Để hiển thị nội dung của matrậ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 matrậ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ử trong matrậ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] Trang 3 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 >> 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. 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 matrậ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 Trang 4 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 >> 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 >> B = A(2,:) B = 4 5 6 >>C = A(:,2) C = 2 5 8 4.2.3 Gọi 1 matrận con từ một matrậ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 ) Trang 5 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 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 matrận đặc biệt: 4.3.1 Matrận zeros. Tất cả các phần tử trong matrận đều bằng 0. VD >> C = zeros (2,3) C = 0 0 0 0 0 0 >> d = zeros(3) d = 0 0 0 0 0 0 0 0 0 4.3.2 Matrận ones. Tất cả các phần tử trong matrận đều bằng 1 VD >> C = ones (2,3) C = 1 1 1 1 1 1 >> d = ones(3) d = 1 1 1 1 1 1 1 1 1 4.3.3 Matrậnma 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 matrận Trang 6 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 Vd >> A = Magic (3) A= 8 1 6 3 5 7 4 9 2 4.3.4 Matrậ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: 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 A B A.^B 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 >> c=a.*b Trang 7 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 c = 1 2 4 2 1 1 >> d=a./b d = 1.0000 0.5000 1.0000 2.0000 1.0000 1.0000 >> e=a.\b e = 1.0000 2.0000 1.0000 0.5000 1.0000 1.0000 >> f=a.^b f = 1 1 4 2 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µ c¸c tham sè: >> syms a b c >>A=[a b; b c] Trang 8 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 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ơ 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 >> B = A B = 1 4 7 2 5 8 3 6 9 Matrận B đợc gọi là matrận chuyển vị của matrận A 4.5.2 Phép cộng - trừ ma trận.( + , - ) Phép cộng và trừ matrận đợc thực hiện với các matrận có cùng kích cỡ. C ij = A ij + B ij Trang 9 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 D ij = A ịj - B ij >> A = [1:3; 4:6; 7:9] A = 1 2 3 4 5 6 7 8 9 >> B = A B = 1 4 7 2 5 8 3 6 9 >> 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 matrận A phải bằng số hàng của matrận B. Các phần tử trong matrận C đợc tính nh sau: VD các phần tử trong matrậ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 Trang 10 = = n 1k kjikij .BAC [...]... tử trong matrậ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] Trang 12 Tungvn40@yahoo.com CM Soft 70 NCT F2 Q10 A= 1 2 1 1 0 1 2 4 2 2 0 2 >> B = A*2 B= 4.5.4 Phép quay ma trận: Quay matrậ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 3 6 9 2 5 8 1 4 7 >> b=rot90(a) b= 4.5.5.Phép đảo ma trận:... 0, 0, a] >> e=[a b c; 2*a 2*b^2 c ; a 0 b] e= [ a, b, [ 2*a, 2*b^2, c] c] Trang 11 Tungvn40@yahoo.com [ a, 0, CM Soft 70 NCT F2 Q10 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 matrận thực chất là phép nhân với matrận nghịch đảo C= A 1 = A* B B Lấy matrậ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 3 >> C = A * B C= VD các phần tử trong matrận là các 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 các phần tử trong matrận là các tham số >> syms a b c >>d=[2*a... 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 3 6 9 2 5 8 1 4 7 >> b=rot90(a) b= 4.5.5.Phép đảo ma trận: Đảo các phần tử của matrận từ trái sang phải >> c=fliplr(b) c= 9 6 3 8 5 2 7 4 1 Trang 13 . 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. 3 6 9 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