ma trận trọng matlab mô phỏng trong matlab matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab ma trận trọng matlab
Trang 1WORKSHEET 03: MA TRẬN TRONG MATLAB
Mục đích:
Worksheet này giới thiệu về các lệnh cơ bản trong lập trình ma trận trong MATLAB
Yêu cầu:
- Sinh viên thực hành bằng phần mềm Matlab trên phòng máy, đọc kỹ phần luyện tập trước khi làm bài tập
- Kết quả được lưu lại trong thư mục MSSV_HoTen
- Thời gian thực hành: 4 tiết
Luyện tập:
Ma trận là dạng vector có hai chiều Ma trận được đưa vào Matlab bằng cách: mỗi phần tử trên một dòng được phân biệt bởi dấu khoảng trắng hoặc dấu phẩy, và một dòng mới được bắt đầu với dấu chấm phẩy
Chúng ta có thể sử dụng lệnh size để xác định kích thước của ma trận A(3x4):
Chỉ số
Chỉ số của ma trận trong Matlab giống như chỉ số của Vector Điểm khác biệt ở đây là có hai chiều Để truy xuất tới thành phần cùa dòng 2, cột 3 của ma trận A, sử dụng lệnh sau:
Trang 2Có thể truy xuất một dòng của ma trận với dấu hai chấm trong Matlab Lệnh A(2,:) sẽ lấy mọi cột của dòng số 2
Tương tự như vậy, có thể truy xuất đến bất kỳ cột nào của ma trận A với lệnh A(:,x) với x
là cột của ma trận
Ví dụ:
Cũng có thể trích xuất một ma trận con từ ma trận A với chỉ số của ma trận
Ví dụ: Cần lấy ma trận con sử dụng dòng 1 và 3 và cột 2 và 4, ta sử dụng lệnh sau:
Có thể sử dụng chỉ số để gán phần tử ma trận Ví dụ:
Khi muốn gán một dòng, một cột hay một ma trận con của A, ta phải thay thế nội dung với một dòng, cột hoặc ma trận con với số phần tử tương ứng Ví dụ sau sẽ gán nội dung mới cho dòng đầu tiên của ma trận A:
Trang 3
BT Ví dụ: Thực hiện lệnh sau, và cho nhận xét:
Hoán vị ma trận
Có thể dễ dàng hoán vị ma trận giống như hoán đổi dòng thành cột trong vector Ví dụ,
thực hiện lệnh magic như sau:
Có thể dễ dàng tính A T với lệnh như sau:
Xây dựng ma trận
Matlab cho phép người dùng tạo một số ma trận đặc biệt Ví dụ: tạo ma trận đơn vị 2 x 3:
Bây giờ ta có thể tạo ma trận mới với A là cột thứ nhất và A cũng là cột thứ hai
Hoặc tạo ma trận với A là dòng thứ nhất và A cũng là dòng thứ hai:
Trang 4Có thể tạo ra ma trận toàn số 0 Ví dụ:
Có thể tạo ra ma trận giữa A và D:
Phép nhân vô hướng
Matlab cho phép nhân ma trận với một số (gọi là phép nhân vô hướng):
Ví dụ:
Nếu A là ma trận:
Ta thực hiện phép nhân với 3 như sau:
Phép cộng ma trận
Nếu hai ma trận ó cùng chiều, ta có thể cộng ma trận theo từng thành phần như sau:
Ví dụ: Cho hai ma trận A và B như sau:
Thực hiện phép cộng A + B ta được kết quả:
Trang 5Phép nhân ma trận - vector:
Giả sử ta có hệ phương trình 3 ẩn như sau:
Bởi vì mỗi phần tử tương ứng là bằng nhau, nên ta có dạng như sau:
Vế trái có thể được viết như là tổng các vector:
Phép nhân vô hướng có thể được đặt làm thừa số cho các vector vế trái:
Chúng ta có thể nói rằng:
Là một kết hợp tuyến tính của các vector: [2,3,5] T , [3,2,-3] T và [4,4,8] T
Cuối cùng, ta đưa hệ phương trình về dạng Ax = b:
Trang 6Với:
Ví dụ:
Thực hiện nhân ma trận với vector:
Để thực hiện phép nhân, ta thực hiện phép kết hợp tuyến tính của các cột ma trận, sử dụng từng phần tử của vector:
Lệnh trong Matlab như sau:
Trang 7Phép nhân: ma trận – ma trận
Để thực hiện phép nhân ma trận A với ma trận B, ta thực hiện phép nhân ma trận A với từng vector của ma trận B Ví dụ:
Lệnh trong Matlab:
Bài tập
Bài 1:
Có các ma trận sau:
Sử dụng các lệnh Matlab, thực hiện các thuộc tính sau (0 là ma trận Zero):
o A + B = B + A
o (A + B) + C = A + (B+C)
o A + 0 = A
o A + (- A) = 0
o A(B+C) = AB + AC
o (A + B)C = AC + BC
Có các ma trận sau:
Trang 8Sử dụng các lệnh Matlab, thực hiện các phép tính thể hiện các thuộc tính sau:
Có các ma trận sau:
Và các giá trị vô hướng sau: α = 2 và β = −3 Sử dụng Matlab thể hiện các tính chất sau của ma trận:
Bài 2:
Gõ lệnh ma trận A = pascal(3) và B = magic(3) Thực hiện lệnh (A+B) T và A T + B T và so sánh hai kết quả này Có nhận xét và giải thích các kết quả
Gõ lệnh A = pascal(4) và giá trị vô hướng α = 5 Sử dụng Matlab để tính αA và (αA)T So sánh hai kết quả này và cho nhận xét và giải thích các kết quả
Bài 3:
Một ma trận Hilbert H được định nghĩa bởi H(i,j) = 1/(i+j-1) với i chạy từ 1 đến số dòng và
j chạy từ 1 đến số cột Sử dụng định nghĩa này để và các phép tính bằng tay để tìm ma trận
Hilbert với số chiều 4 x 4 Sử dụng lệnh format rat và hilb để kiểm tra kết quả
Bài 4:
Số cách để chọn k đối tượng từ một tập n đối tượng được định nghĩa và tính toán với công thức:
Trang 9Định nghĩa một ma trận Pascal P với công thức:
Với i chạy từ 1 đến số dòng và j chạy từ 1 đến số cột Sử dụng định nghĩa và các phép tính tay
để tìm ma trận Pascal chiều 4x4 Sử dụng lệnh pascal để kiểm tra kết quả
Bài 5:
Cho ma trận A = [2 4 1 ; 6 7 2 ; 3 5 9], viết lệnh Matlab để:
a Gán cho vector x là dòng thứ nhất của A
b Gán cho ma trận y là hai dòng còn lại (cuối) của A
c Tính tổng theo dòng ma trận A
d Tính tổng theo cột ma trận A
e Tìm giá trị lớn nhất và nhỏ nhất của ma trận
f Tính tổng các phần tử của A
Bài 6:
Cho A = [2 7 9 7 ; 3 1 5 6 ; 8 1 2 5; 1 2 3 5], viết lệnh Matlab để
a Gán cho ma trận B là các cột ở vị trí chẵn
b Gán cho ma trận C là các dòng ở vị trí lẻ
c Gán lại A thành chuyển vị của nó
d Tính nghịch đảo mọi phần tử của A
e Lấy căn bậc hai mọi phần tử của A
Bài 7:
Giải các phương trình tuyến tính sau:
2
Hết