9
THỰC HÀNH MATLAB CƠ BẢN 1 Thái Duy Quý [email protected] WORKSHEET 03: MA TRN TRONG MATLAB --Thái Duy Quý ITFac – [email protected] Mục đích: Worksheet này gii thiu vcác lệnh cơ bản trong lp trình ma trn trong MATLAB. Yêu cu: - Sinh viên thc hành bng phn mm Matlab trên phòng máy, đọc kphn luyn tp trước khi làm bài tp. - Kết quđược lưu lại trong thư mục MSSV_HoTen - Thi gian thc hành: 4 tiết. Luyn tp: Ma trn là dng vector có hai chiu. Ma trận được đưa vào Matlab bằng cách: mi phn ttrên mt dòng được phân bit bi du khong trng hoc du phy, và mt dòng mới được bt đầu vi du chm phy. Chúng ta có thsdng lnh size để xác định kích thước ca ma trn A(3x4): ChsChsca ma trn trong Matlab giống như chỉ scủa Vector. Điểm khác bit đây là có hai chiều. Để truy xut ti thành phn cùa dòng 2, ct 3 ca ma trn A, sdng lnh sau:

WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

Embed Size (px)

Citation preview

Page 1: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

1 Thái Duy Quý – [email protected]

WORKSHEET 03: MA TRẬN TRONG MATLAB --Thái Duy Quý ITFac – [email protected]

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:

Page 2: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

2 Thái Duy Quý – [email protected]

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:

Page 3: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

3 Thái Duy Quý – [email protected]

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:

Page 4: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

4 Thái Duy Quý – [email protected]

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ả:

Page 5: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

5 Thái Duy Quý – [email protected]

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:

Page 6: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

6 Thái Duy Quý – [email protected]

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:

Page 7: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

7 Thái Duy Quý – [email protected]

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:

Page 8: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

8 Thái Duy Quý – [email protected]

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:

Page 9: WORKSHEET 03: MA TRẬN TRONG MATLAB · PDF fileWorksheet 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

THỰC HÀNH MATLAB CƠ BẢN

9 Thái Duy Quý – [email protected]

Đị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 53 4 1

3 6 2 82 2 2 3 2

x x x xx x x xx x x xx x x x

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

22 3 4 2

2 3 5 9 22 7 2

x x x xx x x x

x x x xx x x x

-- Hết --