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à AT + BT 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ả.
9 trang |
Chia sẻ: thanhle95 | Lượt xem: 1037 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Thực hành Matlab cơ bản - Worksheet 3: Ma trận trong Matlab, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
THỰC HÀNH MATLAB CƠ BẢN
1 Thái Duy Quý – thaiduyquy@gmail.com
WORKSHEET 03: MA TRẬN TRONG MATLAB
--Thái Duy Quý ITFac – thaiduyquy@gmail.com –
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:
THỰC HÀNH MATLAB CƠ BẢN
2 Thái Duy Quý – thaiduyquy@gmail.com
Có 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:
THỰC HÀNH MATLAB CƠ BẢN
3 Thái Duy Quý – thaiduyquy@gmail.com
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 AT 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:
THỰC HÀNH MATLAB CƠ BẢN
4 Thái Duy Quý – thaiduyquy@gmail.com
Có 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ả:
THỰC HÀNH MATLAB CƠ BẢN
5 Thái Duy Quý – thaiduyquy@gmail.com
Phé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:
THỰC HÀNH MATLAB CƠ BẢN
6 Thái Duy Quý – thaiduyquy@gmail.com
Vớ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:
THỰC HÀNH MATLAB CƠ BẢN
7 Thái Duy Quý – thaiduyquy@gmail.com
Phé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:
THỰC HÀNH MATLAB CƠ BẢN
8 Thái Duy Quý – thaiduyquy@gmail.com
Sử 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à AT + BT 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:
THỰC HÀNH MATLAB CƠ BẢN
9 Thái Duy Quý – thaiduyquy@gmail.com
Đị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:
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
2 5 5
3 4 1
3 6 2 8
2 2 2 3 2
x x x x
x x x x
x x x x
x x x x
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
2
2 3 4 2
2 3 5 9 2
2 7 2
x x x x
x x x x
x x x x
x x x x
-- Hết --