BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 150 MỤC LỤC Chương 4. Đồ họa trong Matlab........................................................................ 151 GIỚI THIỆU.......................................................................................................... 151 MỤC TIÊU CỦA CHƢƠNG................................................................................ 151 NỘI DUNG CỦA CHƢƠNG ............................................................................... 151 4.1. Các lệnh làm việc với cửa sổ đồ thị ........................................................... 151 4.2. Đồ họa trong hệ tọa độ phẳng (2D)............................................................ 152 4.2.1. Kiểu đƣờng, màu sắc, kiểu điểm......................................................... 152 4.2.2. Một số lệnh vẽ thƣờng dùng ............................................................... 153 4.2.3. Thiết lập các tham số cho đồ thị.......................................................... 162 4.3. Đồ họa trong không gian 3 chiều (3D) ...................................................... 168 4.3.1. Lệnh vẽ plot3....................................................................................... 168 4.3.2. Vẽ đồ thị hàm hai biến ........................................................................ 169 4.3.3. Thiết lập tham số cho đồ thị................................................................ 171 4.3.4. Chỉnh sửa đồ thị dùng menu ............................................................... 173 BÀI TẬP................................................................................................................ 175 TÀI LIỆU THAM KHẢO..................................................................................... 176 BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 151 Chương 4. Đồ họa trong Matlab GIỚI THIỆU Matlab là một công cụ có nhiều thế mạnh, một trong những thế mạnh của nó là có khả năng lập trình đồ họa, có thể vẽ các loại đồ thị ở nhiều dạng khác nhau, góc nhìn khác nhau, có thể vẽ trong không gian 2D và 3D. Có thể vẽ nhiều đồ thị trên một hệ trục tọa độ hay nhiều cửa sổ đồ thị trong cùng một màn hình,… MỤC TIÊU CỦA CHƢƠNG Giải quyết các bài toán về đồ thị trong không gian 2D, 3D. NỘI DUNG CỦA CHƢƠNG 4.1. Các lệnh làm việc với cửa sổ đồ thị 1. Lệnh tạo cửa sổ để vẽ đồ thị Để vẽ đồ thị, ta cần mở cửa sổ đồ thị bằng lệnh sau: + Cách 1: tại dấu nhắc cửa sổ lệnh, gõ: >> figure + Cách 2: mở menu File của MATLAB > chọn New > chọn Figure Khi đó, màn hình vẽ đồ thị hiện ra nhƣ sau: Chú ý: nếu cửa sổ đồ thị đang mở, ta có thể tạo cửa sổ mới nhƣ sau: mở menu File của cửa sổ đồ thị > chọn New > chọn Figure. 2. Ghi đồ thị Để ghi đồ thị, trên giao diện của cửa sổ đồ thị, ta thực hiện: + Cách 1: nhấn nút (Save Figure) BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 152 + Cách 2: mở menu File > nhấn Save + Cách 3: ấn tổ hợp Ctrl + S Khi đó, một hộp thoại hiện ra cho phép ta chọn thƣ mục cần ghi, gõ tên tệp cần ghi (tên tệp không được chứa dấu cách, có phần mở rộng là .fig) và nhấn nút Save. 3. Xóa cửa sổ đồ thị Để xóa cửa sổ đồ thị, tại dấu nhắc cửa sổ lệnh, gõ: >> clf 4. Đóng cửa sổ đồ thị Để đóng cửa sổ đồ thị, ta làm nhƣ sau: + Cách 1: tại dấu nhắc cửa sổ lệnh, gõ: >> close + Cách 2: tại cửa sổ đồ thị, mở menu File > chọn Close + Cách 3: để đóng tất cả cửa sổ đồ thị, tại dấu nhắc lệnh, gõ: >> close all 4.2. Đồ họa trong hệ tọa độ phẳng (2D) 4.2.1. Kiểu đường, màu sắc, kiểu điểm MATLAB cho phép chúng ta thiết lập kiểu đƣờng, màu sắc, kiểu điểm cho đồ thị, cụ thể nhƣ sau: 4.2.1.1. Kiểu đường: + Nét liền () (dấu trừ) + Nét đứt () (hai dấu trừ liền nhau) + Nét chấm (:) (dấu hai chấm) + Nét gạch chấm (.) (dầu trừ và dấu chấm liền nhau) 4.2.1.2. Màu sắc: có các mã màu sau đây: + Màu đỏ (r red) + Màu xanh lá cây (g green) + Màu xanh biển (b blue) + Màu lục lam (c cyan) + Màu tím (m magenta) + Màu vàng (y yellow) + Màu đen (k black) + Màu trắng (w white) 4.2.1.3. Kiểu điểm: + Dấu chấm (.), chữ o (o), chữ x (x), dấu cộng (+), dấu sao () + Hình vuông (s square) + Hình kim cƣơng (d diamond) BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 153 + Hình tam giác quay lên (), xuống (v), trái () + Hình sao 5 cánh (p pentagram) + Hình sao 6 cánh (h hexagram) 4.2.2. Một số lệnh vẽ thường dùng 4.2.2.1. Lệnh vẽ plot 1. Cú pháp: plot(x, y) plot(x, y, s) 2. Ý nghĩa: + Dạng 1: vẽ đồ thị của một hàm số, trong đó x là vector đối, y là vector hàm. + Dạng 2: vẽ tƣơng tự Dạng 1, nhƣng có quy định kiểu đƣờng, màu sắc, kiểu điểm trong xâu s. 3. Ví dụ: viết các lệnh vẽ đồ thị hàm số y = cos(x), với x 3pi, 3pi và bƣớc nhảy là 0.1. (tạo hàm cos(x)) Sau đó, nếu dùng lệnh: >> plot(x,y), ta có : Nếu dùng lệnh : >> plot(x, y, ‘r’), ta có: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 154 Hay dùng lệnh : >> plot(x, y, ‘mo:’), ta có: Chú ý: lệnh plot còn cho phép vẽ nhiều đồ thị cùng lúc, theo cú pháp sau: plot(x1, y1, x2, y2,…) plot(x1, y1, s1, x2, y2, s2,…) Ví dụ: Viết chƣơng trình dạng script vẽ hai đồ thị hàm số sin (x) và cos(x) trong khoảng trục x nhƣ trên: Kết quả là: Hoặc chúng ta có thể dùng lệnh plot vẽ lần lƣợt từng đồ thị, nhƣng dùng thêm lệnh hỗ trợ, đó là: hold on, thì kết quả vẫn vẽ đƣợc hai đồ thị cùng lúc nhƣ trên. Chƣơng trình cụ thể nhƣ sau: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 155 4.2.2.2. Vẽ đường thẳng 1. Cú pháp: line(x, y) 2. Ý nghĩa: vẽ đƣờng thẳng với tọa độ là các phần tử trong vector x và y 3. Ví dụ: vẽ tam tam giác bằng cách nối 3 điểm (1,2), (6,4) và (9,3) với nhau: hoặc 4.2.2.3. Vẽ hình chữ nhật 1. Cú pháp: rectangle(‘position’, x y w h) 2. Ý nghĩa: vẽ hình chữ nhật có tọa độ của đỉnh góc trái dƣới là (x, y), có chiều rộng là w, chiều cao là h với „position‟ là từ khóa. 3. Ví dụ: vẽ hai hình chữ nhật “đựng” nhau: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 156 4.2.2.4. Lệnh vẽ dạng thanh 1. Cú pháp: bar(x,y) 2. Ý nghĩa: vẽ đồ thị dạng thanh (bar) của hàm số y = f(x) trong mặt phẳng với x là vector đối và y là vector hàm. 3. Ví dụ: vẽ đồ thị dạng thanh của hàm sin(x), với x , : 4.2.2.5. Lệnh vẽ dạng tròn 1. Cú pháp : pie(x , tách , nhãn) BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 157 2. Ý nghĩa: vẽ đồ thị hình quạt tròn (pie) dƣới dạng tỉ lệ phần trăm theo các giá trị của thành phần của vector x. + Tham số “tách”: là một vector (có cùng kích thƣớc với vector x) có giá trị 1 hoặc 0. Nếu bằng 1: các phần rời nhau ra, bằng 0: không rời. + Tham số “nhãn”: là vector kiểu xâu (có cùng kích thƣớc với x), biểu thị nhãn các giá trị. 3. Ví dụ:vẽ đồ thị dạng tròn, không tách: hoặc Vẽ đồ thị dạng tròn, có tách một số phần: hoặc Vẽ đồ thị dạng tròn, có tách một số phần, có nhãn: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 158 hoặc: 4.2.2.6. Lệnh vẽ dạng vùng 1. Cú pháp: area(x, y) 2. Ý nghĩa: vẽ đồ thị dạng vùng (area) với x là vector biến, y là vector hàm. 3. Ví dụ:vẽ đồ thị dạng vùng của hàm sin(x), với x 3, 3: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 159 4.2.2.7. Lệnh vẽ dạng bậc thang 1. Cú pháp: stairs(x, y) 2. Ý nghĩa: vẽ đồ thị dạng bậc thang (stair), với x, y tƣơng ứng là vector đối và vector hàm. 3. Ví dụ:vẽ đồ thị dạng bậc thang của hàm sin(x), với x 3, 3: 4.2.2.8. Lệnh vẽ dạng rời rạc 1. Cú pháp: stem(x, y) 2. Ý nghĩa: vẽ đồ thị dạng rời rạc, với x, y tƣơng ứng là vector đối và vector hàm. BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 160 3. Ví dụ: vẽ đồ thị dạng rời rạc của hàm sin(x), với x 3, 3: 4.2.2.9. Lệnh vẽ dạng tọa độ cực 1. Cú pháp: polar(theta,r) 2. Ý nghĩa: vẽ đồ thị trong hệ tọa độ cực theo góc theta, bán kính r. 3. Ví dụ: vẽ đồ thị hàm số r = sin(), với = : BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 161 Vẽ đồ thị hàm số: r = |sin(3) + cos (3)|, với = 2: 4.2.2.10. Lệnh tô màu miền 1. Cú pháp: fill(x, y, ‘màu’) 2. Ý nghĩa: vẽ đa giác với các đỉnh là các phần tử của vector x, y và đƣợc tô „màu‟, trong đó „màu‟ tuân theo bảng màu ở lệnh plot. 3. Ví dụ: vẽ hình ngũ giác, tô màu xanh lá cây: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 162 4.2.3. Thiết lập các tham số cho đồ thị 4.2.3.1. Lệnh tạo lưới 1. Cú pháp: grid onoff 2. Ý nghĩa: tạohủy lƣới cho đồ thị 3. Ví dụ: vẽ đồ thị hàm cos(x), có lƣới, : thi ta có kết quả là: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 163 Chú ý: lệnh grid on phải đặt sau các lệnh vẽ mới có tác dụng. 4.2.3.2. Lệnh tạo tiêu đề 1. Cú pháp: xlabel(‘Nội dung tiêu đề’) (1) ylabel(‘Nội dung tiêu đề’) (2) title(‘Nội dung tiêu đề’) (3) 2. Ý nghĩa: + Dạng (1): tạo tiêu đề cho trục x + Dạng (2): tạo tiêu đề cho trục y + Dạng (3): tạo tiêu đề cho đồ thị 3. Ví dụ: Với Ví dụ trên, ta thêm các lệnh tạo tiêu đề nhƣ dƣới đây: Thì kết quả là: 4.2.3.3. Thiết lập phạm vi cho trục x, trục y 1. Cú pháp: axis(xmin,xmax,ymin,ymax) (1) axis onoffsquarenormal… (2) xlim( xmin, xmax); (3) ylim( ymin, ymax); (4) 2. Ý nghĩa: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 164 + Dạng (1): thiết lập giới hạn cho trục x (từ xmin > xmax) và trục y (từ ymin > ymax). + Dạng (2): axis on: bật các trục axis off: tắt các trục axis square: thay đổi tỷ lệ 2 trục để có cửa sổ hình vuông axis normal: quay về cửa sổ thông thƣờng,… + Dạng (3): thiết lập giới hạn cho chỉ trục x + Dạng (4): thiết lập giới hạn cho chỉ trục y 3. Ví dụ: Với một trong hai cách viết sau: Ta có kết quả: 4.2.3.4. Thiết lập nhãn cho trục x, trục y 1. Cú pháp: set(gca, ’XTickLabel’, ) (1) set(gca, ’YTickLabel’, ) (2) 2. Ý nghĩa: thiết lập nhãn cho trục x (lệnh 1) và trục y (lệnh 2) 3. Ví dụ: Với chƣơng trình nhƣ sau: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 165 Ta có kết quả chạy chƣơng trình: 4.2.3.5. Lệnh tạo chú thích 1. Cú pháp: legend(‘chú thích 1’, ‘chú thích 2’,…, ‘chú thích n’) 2. Ý nghĩa: đƣa ra n chú thích lần lƣợt cho n đồ thị. 3. Ví dụ: vẽ hai đồ thị của hai hàm sin(x) và cos(x) trên cùng hệ trục tọa độ, có chú thích cho mỗi hàm. BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 166 4.2.3.6. Lệnh hiển thị xâu trên đồ thị 1. Cú pháp: text(x, y, ‘xâu ký tự’) 2. Ý nghĩa: hiển thị „xâu ký tự‟ ở vị trí (x, y). 3. Ví dụ: vẽ lục giác đều, tô màu lục lam (cyan), có hiển thị xâu trên đồ thị. 4.2.3.7. Vẽ nhiều hệ tọa độ trên cùng một cửa sổ BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 167 1. Cú pháp: subplot(m, n, p) subplot(mnp) subplot mnp 2. Ý nghĩa: chia cửa sổ đồ thị thành bảng có m hàng, n cột hệ trục tọa độ và chọn hệ trục thứ p để vẽ. 3. Ví dụ: >> subplot(2,3,3) % tạo ra 6 hệ trục tọa độ và chọn hệ trục thứ 3 để vẽ: + Vẽ 4 đồ thị của 4 hàm y=sin(x) trên 4 hệ trục tọa độ với các dạng vẽ khác nhau: dạng plot, dạng thanh (bar), dạng vùng (area) và dạng tọa độ cực (polar): BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 168 4.3. Đồ họa trong không gian 3 chiều (3D) 4.3.1. Lệnh vẽ plot3 1. Cú pháp: plot3(x, y, z) (1) plot3(x, y, z, s) (2) 2. Ý nghĩa: tƣơng tự hoạt động của lệnh plot trong không gian 2 chiều đã học, cụ thể là: + Dạng (1): vẽ các điểm trong không gian 3 chiều, có tọa độ nằm trong các vector x, y, z. + Dạng (2): tƣơng tự Dạng (1), đồng thời có quy định kiểu đƣờng, màu sắc, kiểu điểm trong xâu s. 3. Ví dụ: vẽ đồ thị hàm: x = sin(t), y = cos(t), z = t. BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 169 Tƣơng tự nhƣ lệnh plot, lệnh plot3 cũng có các dạng sau: plot3(x1, y1, z1, x2, y2, z3,…) plot3(x1, y1, z1, s1, x2, y2, z2, s2,…) Tuy nhiên, trong không gian 3 chiều, nếu vẽ cùng lúc nhiều đồ thị trên một hệ trục tọa độ thì sẽ rất khó quan sát, nên chúng ta ít khi thực hiện điều này. Ngoài ra, còn có các lệnh vẽ: pie3, bar3, stem3. 4.3.2. Vẽ đồ thị hàm hai biến 4.3.2.1. Lệnh tạo lưới 1. Cú pháp: Để vẽ các mặt trong không gian 3 chiều, ta phải xác định lƣới của miền. Miền đƣợc xác định bởi 2 vector x, y với chiều dài tƣơng ứng là m, n. Cú pháp tạo lƣới nhƣ sau: X, Y = meshgrid(x, y) 2. Ý nghĩa: tạo một lƣới mà giá trị tọa độ điểm lƣới đƣợc trả vào hai ma trận X, Y. Trong đó, ma trận X chứa n hàng giá trị vector x, ma trận Y chứa m cột giá trị vectơ y. Cặp ma trận X, Y sau đó đƣợc sử dụng để ƣớc lƣợng hàm hai biến sử dụng trong việc vẽ đồ thị trong không gian 3 chiều. Nếu vector x = y thì có thể viết: X, Y = meshgrid(x) 3. Ví dụ: Ta có kết quả : BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 170 4.3.2.2. Lệnh vẽ đồ thị dạng lưới 1. Cú pháp: mesh(X, Y, Z) (1) mesh(X, Y, Z, C) (2) 2. Ý nghĩa: dùng để vẽ đồ thị Z = f(X, Y) dạng lƣới (1), có màu là C (2). 3. Ví dụ : vẽ đƣờng đồ thị hàm số: z = x 2 y 2 hoặc: 4.3.2.3. Lệnh vẽ bề mặt đồ thị 1. Cú pháp: surf(X, Y, Z) (1) surf(X, Y, Z, C) (2) 2. Ý nghĩa: dùng để vẽ bề mặt đồ thị Z = f(X, Y) (1), có màu là C (2). 3. Ví dụ: vẽ đƣờng đồ thị hàm số: z = x 2 y 2 BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 171 4.3.3. Thiết lập tham số cho đồ thị 1. Cú pháp: xlabel(‘Tiêu đề’) (1) ylabel(‘Tiêu đề’) (2) zlabel(‘Tiêu đề’) (3) title(‘Tiêu đề’) (4) axis(xmin, xmax, ymin, ymax, zmin, zmax)(5) subplot mnp (6) 2. Ý nghĩa: Tƣơng tự nhƣ trong không gian 2 chiều, chức năng của các hàm nhƣ sau: + Dạng (1), (2), (3): lần lƣợt là tiêu đề cho các trục x, trục y, trục z, + Dạng (4): tạo tiêu đề đồ thị + Dạng (5): tạo giới hạn cho các trục. + Dạng (6): chia màn hình thành nhiều phần khác nhau 3. Ví dụ: vẽ mặt 2 2 2 2 sin x y z x y trong không gian 3 chiều: BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 172 BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 173 4.4. Chỉnh sửa đồ thị dùng menu MATLAB cho phép chúng ta chỉnh sửa trực tiếp các đặc tính, các tham số của đồ thị mà không cần sửa code. Khi đó, trên cửa sổ đồ thị ta thực hiện: 1. Chỉnh sửa đặc tính đồ thị : Để chỉnh sửa đặc tính (kiểu đƣờng, màu sắc, điểm mút,..) ta làm theo các bƣớc sau : Bƣớc 1: nhấn nút (Edit Plot) trên thanh công cụ hoặc mở menu Tools > chọn Edit Plot. Bƣớc 2: nhấn chuột (trái) trên đồ thị > nhấn chuột phải > xuất hiện menu nhƣ hình dƣới đây: Hoặc trong không gian 3D: Bƣớc 3: chọn các nội dung cần chỉnh sửa : + Color: chỉnh màu cho đồ thị BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 174 + Line Style: chỉnh kiểu đƣờng (nét liền, nết đứt, nét chấm,…) + Line Width: chỉnh độ dày kiểu đƣờng + Maker: chỉnh kiểu điểm (o, , +,…) + Maker size: chỉnh độ lớn của kiểu điểm,… 2. Chỉnh sửa tham số đồ thị: Để chỉnh sửa tham số đồ thị (tiêu đề trục x, trục y, tiêu đề đồ thị,…), ta thực hiện: Bƣớc 1: mở menu Insert > chọn một tham số theo ý muốn: Hoặc trong không gian 3D: Bƣớc 2: Tùy thuộc vào tham số mà ta sẽ nhập nội dung vàhoặc chèn đối tƣợng vào đồ thị, ví dụ: + X Label, Y Label, Z Label: chèn tiêu đề trục x, trục y, trục z. + Title: chèn tiêu đề đồ thị BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 175 + Legend: chèn chú thích cho đồ thị + Colorbar: chèn thanh màu,... 3. Các công cụ: MATLAB cung cấp cho chúng ta một số công cụ để thao tác trên đồ thị. Khi cần dùng, ta mở menu Tools rồi chọn công cụ cần dùng, ví dụ: + Zoom In, Zoom Out: thu, phóng đồ thị + Pan: di chuyển đồ thị hoặc cửa sổ đồ thị + Rotate 3D: có thể xoay đồ thị để xem một cách trực quan trong không gian 3D. + Data Cursor: xem tọa độ của điểm bất kỳ trên đồ thị + Brush: lấy tọa độ điểm bất kỳ, đƣa vào cửa sổ chƣơng trình (cửa sổ Command hoặc cửa sổ Editor),... Ngoài ra, chúng ta cũng có thể thao tác trên các công cụ đó nhờ vào các nút trên màn hình (trong Figure Toolbar): + Nút : Zoom In, : Zoom Out + Nút : Pan + Nút : Rotate 3D + Nút : Data Cursor + Nút : Brush,... BÀI TẬP 1. Vẽ đồ thị dạng bar cho hàm số f(x) = sin(1x) trong khoảng 0.01 ≤ x ≤ 0.1. 2. Vẽ đồ thị dạng area chohàm số y = x 3 + 3x2 – 2x + 1 trên khoảng 10, 10. Thiết lập lƣới, các tham số cho trục hoành, trục tung. 3. Vẽ đồ thị các hàm số x, x 3 , e x và ex2 trên khoảng 0 ≤ x ≤ 4 trong cùng một hệ trục tọa đồ. 4. Vẽ đồ thị hàm các số y = sin(x), y = cos(x) và y = sin(x) + cos(x) với x , trên cùng 1 hệ trục tọa độ. Tạo lƣới và chú thích cho các đồ thị. 5. Vẽ đồ thị hàm các số y = y = e x , y = e 2x và e3x với x 10, 10 trên cùng 1 hệ trục tọa độ. Tạo lƣới và chú thích cho các đồ thị. 6. Vẽ đồ thị hàm các số y = e x , y = e 2x , e 3x và y = e4x với x 10, 10 trên 4 hệ trục tọa độ trong cùng 1 cửa sổ. Tạo lƣới và chú thích cho các đồ thị. 7. Vẽ đồ thị z = x 2 + y2 với x và y thuộc đoạn 10,10. Tạo lƣới và chú thích cho các trục tọa độ. BG Tin học nhóm ngành KT Chương 4 Viện KTCN Trường ĐH Vinh 176 8. Vẽ đồ thị z = sin(x2 ) + sin(y2 ) với x và y thuộc đoạn 10,10. Tạo lƣới và chú thích cho các trục tọa độ. 9. Vẽ đồ thị hàm các số y = x 2 – 5x + 1, y = 2x2 + 7x 3 và y = 5x2 3x + 8 với x 5, 5 trên cùng 1 hệ trục tọa độ. Tạo lƣới và chú thích cho các đồ thị. 10. Vẽ đồ thị hàm các số y = x 3 – 7x + 1, y = x3 + 7x2 3 và y = 5x2 3x + 8 với x 10, 10 trên cùng 1 hệ trục tọa độ. Tạo lƣới và chú thích cho các đồ thị. 11. Vẽ đồ thị hàm số x = sin(t), y = cos(t) và z = t với t 10, 10. Tạo lƣới và chú thích cho các trục tọa độ. 12. Vẽ các đồ thị sin(x), cos(x), sin(x)+cos(x), ex trên đoạn 2pi,2pi trong bốn hệ tọa độ của 1 cửa sổ vẽ. 13. Vẽ đồ thị z = x 2 + y2 x2 , với x và y thuộc đoạn 10, 10. 14. Vẽ đồ thị mặt cầu trong không gian. 15. Vẽ đồ mặt trụ trong không gian. 16. Viết chƣơng trình dạng script vẽ đƣờng tròn: x = a + r.cos(), y = b + r.sin(). 17. Vẽ đồ thị hàm r = sin(5) trong hệ tọa độ cực. TÀI LIỆU THAM KHẢO 1. Nguyễn Hoàng Hải, Nguyễn Việt Anh, Lập trình Matlab và ứng dụng, Nhà xuất bản Khoa học và Kỹ thuật, 2006. 2. Trần Quang Khánh, Giáo trình cơ sở Matlab ứng dụng, Nhà xuất bản Khoa học và Kỹ thuật, 2012.
Trang 1Viện KTCN - Trường ĐH Vinh 150
MỤC LỤC
Chương 4 Đồ họa trong Matlab 151
GIỚI THIỆU 151
MỤC TIÊU CỦA CHƯƠNG 151
NỘI DUNG CỦA CHƯƠNG 151
4.1 Các lệnh làm việc với cửa sổ đồ thị 151
4.2 Đồ họa trong hệ tọa độ phẳng (2D) 152
4.2.1 Kiểu đường, màu sắc, kiểu điểm 152
4.2.2 Một số lệnh vẽ thường dùng 153
4.2.3 Thiết lập các tham số cho đồ thị 162
4.3 Đồ họa trong không gian 3 chiều (3D) 168
4.3.1 Lệnh vẽ plot3 168
4.3.2 Vẽ đồ thị hàm hai biến 169
4.3.3 Thiết lập tham số cho đồ thị 171
4.3.4 Chỉnh sửa đồ thị dùng menu 173
BÀI TẬP 175
TÀI LIỆU THAM KHẢO 176
Trang 2Viện KTCN - Trường ĐH Vinh 151
Chương 4 Đồ họa trong Matlab
GIỚI THIỆU
Matlab là một công cụ có nhiều thế mạnh, một trong những thế mạnh của nó là có khả năng lập trình đồ họa, có thể vẽ các loại đồ thị ở nhiều dạng khác nhau, góc nhìn khác nhau, có thể vẽ trong không gian 2D và 3D Có thể vẽ nhiều đồ thị trên một hệ trục tọa độ hay nhiều cửa sổ đồ thị trong cùng một màn hình,…
MỤC TIÊU CỦA CHƯƠNG
Giải quyết các bài toán về đồ thị trong không gian 2D, 3D
NỘI DUNG CỦA CHƯƠNG
4.1 Các lệnh làm việc với cửa sổ đồ thị
1 Lệnh tạo cửa sổ để vẽ đồ thị
Để vẽ đồ thị, ta cần mở cửa sổ đồ thị bằng lệnh sau:
+ Cách 1: tại dấu nhắc cửa sổ lệnh, gõ: >> figure
+ Cách 2: mở menu File của MATLAB -> chọn New -> chọn Figure
Khi đó, màn hình vẽ đồ thị hiện ra như sau:
* Chú ý: nếu cửa sổ đồ thị đang mở, ta có thể tạo cửa sổ mới như sau: mở menu File của cửa sổ đồ thị -> chọn New -> chọn Figure
2 Ghi đồ thị
Để ghi đồ thị, trên giao diện của cửa sổ đồ thị, ta thực hiện:
+ Cách 1: nhấn nút (Save Figure)
Trang 3Viện KTCN - Trường ĐH Vinh 152
+ Cách 2: mở menu File -> nhấn Save
+ Cách 3: ấn tổ hợp Ctrl + S
Khi đó, một hộp thoại hiện ra cho phép ta chọn thư mục cần ghi, gõ tên tệp cần ghi
(tên tệp không được chứa dấu cách, có phần mở rộng là fig) và nhấn nút Save
3 Xóa cửa sổ đồ thị
Để xóa cửa sổ đồ thị, tại dấu nhắc cửa sổ lệnh, gõ: >> clf
4 Đóng cửa sổ đồ thị
Để đóng cửa sổ đồ thị, ta làm như sau:
+ Cách 1: tại dấu nhắc cửa sổ lệnh, gõ: >> close <tên cửa sổ đồ thị>
+ Cách 2: tại cửa sổ đồ thị, mở menu File -> chọn Close
+ Cách 3: để đóng tất cả cửa sổ đồ thị, tại dấu nhắc lệnh, gõ: >> close all
4.2 Đồ họa trong hệ tọa độ phẳng (2D)
4.2.1 Kiểu đường, màu sắc, kiểu điểm
MATLAB cho phép chúng ta thiết lập kiểu đường, màu sắc, kiểu điểm cho đồ thị,
+ Nét gạch chấm (-.) (dầu trừ và dấu chấm liền nhau)
4.2.1.2 Màu sắc: có các mã màu sau đây:
+ Màu đỏ (r - red)
+ Màu xanh lá cây (g - green)
+ Màu xanh biển (b - blue)
+ Màu lục lam (c - cyan)
Trang 4Viện KTCN - Trường ĐH Vinh 153
+ Hình tam giác quay lên (^), xuống (v), trái (<), phải (>)
2 Ý nghĩa:
+ Dạng 1: vẽ đồ thị của một hàm số, trong đó x là vector đối, y là vector hàm
+ Dạng 2: vẽ tương tự Dạng 1, nhưng có quy định kiểu đường, màu sắc, kiểu điểm trong xâu s
3 Ví dụ: viết các lệnh vẽ đồ thị hàm số y = cos(x), với x [-3*pi, 3*pi] và bước nhảy là
0.1
(tạo hàm cos(x)) Sau đó, nếu dùng lệnh: >> plot(x,y), ta có :
Nếu dùng lệnh : >> plot(x, y, ‘r*-’), ta có:
Trang 5Viện KTCN - Trường ĐH Vinh 154
Hay dùng lệnh : >> plot(x, y, ‘mo:’), ta có:
* Chú ý: lệnh plot còn cho phép vẽ nhiều đồ thị cùng lúc, theo cú pháp sau:
plot(x1, y1, x2, y2,…) plot(x1, y1, s1, x2, y2, s2,…)
Ví dụ: Viết chương trình dạng script vẽ hai đồ thị hàm số sin (x) và cos(x) trong khoảng
trục x như trên:
Kết quả là:
Hoặc chúng ta có thể dùng lệnh plot vẽ lần lượt từng đồ thị, nhưng dùng thêm lệnh
hỗ trợ, đó là: hold on, thì kết quả vẫn vẽ được hai đồ thị cùng lúc như trên Chương trình
cụ thể như sau:
Trang 6Viện KTCN - Trường ĐH Vinh 155
4.2.2.2 Vẽ đường thẳng
1 Cú pháp:
line(x, y)
2 Ý nghĩa: vẽ đường thẳng với tọa độ là các phần tử trong vector x và y
3 Ví dụ: vẽ tam tam giác bằng cách nối 3 điểm (1,2), (6,4) và (9,3) với nhau:
hoặc
4.2.2.3 Vẽ hình chữ nhật
1 Cú pháp:
rectangle(‘position’, [x y w h])
2 Ý nghĩa: vẽ hình chữ nhật có tọa độ của đỉnh góc trái dưới là (x, y), có chiều rộng là w,
chiều cao là h với „position‟ là từ khóa
3 Ví dụ: vẽ hai hình chữ nhật “đựng” nhau:
Trang 7Viện KTCN - Trường ĐH Vinh 156
Trang 8Viện KTCN - Trường ĐH Vinh 157
2 Ý nghĩa: vẽ đồ thị hình quạt tròn (pie) dưới dạng tỉ lệ phần trăm theo các giá trị của
Trang 9Viện KTCN - Trường ĐH Vinh 158
hoặc:
4.2.2.6 Lệnh vẽ dạng vùng
1 Cú pháp:
area(x, y)
2 Ý nghĩa: vẽ đồ thị dạng vùng (area) với x là vector biến, y là vector hàm
3 Ví dụ:vẽ đồ thị dạng vùng của hàm sin(x), với x [-3, 3]:
Trang 10Viện KTCN - Trường ĐH Vinh 159
Trang 11Viện KTCN - Trường ĐH Vinh 160
3 Ví dụ: vẽ đồ thị dạng rời rạc của hàm sin(x), với x [-3, 3]:
Trang 12Viện KTCN - Trường ĐH Vinh 161
Vẽ đồ thị hàm số: r = |sin(3) + cos (3)|, với = 2:
4.2.2.10 Lệnh tô màu miền
1 Cú pháp:
fill(x, y, ‘màu’)
2 Ý nghĩa: vẽ đa giác với các đỉnh là các phần tử của vector x, y và đƣợc tô „màu‟, trong
đó „màu‟ tuân theo bảng màu ở lệnh plot
3 Ví dụ: vẽ hình ngũ giác, tô màu xanh lá cây:
Trang 13Viện KTCN - Trường ĐH Vinh 162
4.2.3 Thiết lập các tham số cho đồ thị
Trang 14Viện KTCN - Trường ĐH Vinh 163
* Chú ý: lệnh grid on phải đặt sau các lệnh vẽ mới có tác dụng
4.2.3.2 Lệnh tạo tiêu đề
1 Cú pháp:
xlabel(‘Nội dung tiêu đề’) (1) ylabel(‘Nội dung tiêu đề’) (2) title(‘Nội dung tiêu đề’) (3)
2 Ý nghĩa:
+ Dạng (1): tạo tiêu đề cho trục x
+ Dạng (2): tạo tiêu đề cho trục y
+ Dạng (3): tạo tiêu đề cho đồ thị
2 Ý nghĩa:
Trang 15Viện KTCN - Trường ĐH Vinh 164
+ Dạng (1): thiết lập giới hạn cho trục x (từ xmin -> xmax) và trục y (từ ymin -> ymax) + Dạng (2):
- axis on: bật các trục
- axis off: tắt các trục
- axis square: thay đổi tỷ lệ 2 trục để có cửa sổ hình vuông
- axis normal: quay về cửa sổ thông thường,…
+ Dạng (3): thiết lập giới hạn cho chỉ trục x
+ Dạng (4): thiết lập giới hạn cho chỉ trục y
3 Ví dụ: Với một trong hai cách viết sau:
Trang 16Viện KTCN - Trường ĐH Vinh 165
Ta có kết quả chạy chương trình:
4.2.3.5 Lệnh tạo chú thích
1 Cú pháp:
legend(‘chú thích 1’, ‘chú thích 2’,…, ‘chú thích n’)
2 Ý nghĩa: đưa ra n chú thích lần lượt cho n đồ thị
3 Ví dụ: vẽ hai đồ thị của hai hàm sin(x) và cos(x) trên cùng hệ trục tọa độ, có chú thích
cho mỗi hàm
Trang 17Viện KTCN - Trường ĐH Vinh 166
4.2.3.6 Lệnh hiển thị xâu trên đồ thị
1 Cú pháp:
text(x, y, ‘xâu ký tự’)
2 Ý nghĩa: hiển thị „xâu ký tự‟ ở vị trí (x, y)
3 Ví dụ: vẽ lục giác đều, tô màu lục lam (cyan), có hiển thị xâu trên đồ thị
4.2.3.7 Vẽ nhiều hệ tọa độ trên cùng một cửa sổ
Trang 18Viện KTCN - Trường ĐH Vinh 167
1 Cú pháp:
subplot(m, n, p) subplot(mnp) subplot mnp
2 Ý nghĩa: chia cửa sổ đồ thị thành bảng có m hàng, n cột hệ trục tọa độ và chọn hệ trục thứ p để vẽ
3 Ví dụ:
>> subplot(2,3,3) % tạo ra 6 hệ trục tọa độ và chọn hệ trục thứ 3 để vẽ:
+ Vẽ 4 đồ thị của 4 hàm y=sin(x) trên 4 hệ trục tọa độ với các dạng vẽ khác nhau: dạng plot, dạng thanh (bar), dạng vùng (area) và dạng tọa độ cực (polar):
Trang 19Viện KTCN - Trường ĐH Vinh 168
4.3 Đồ họa trong không gian 3 chiều (3D)
4.3.1 Lệnh vẽ plot3
1 Cú pháp:
plot3(x, y, z) (1) plot3(x, y, z, s) (2)
2 Ý nghĩa: tương tự hoạt động của lệnh plot trong không gian 2 chiều đã học, cụ thể là:
+ Dạng (1): vẽ các điểm trong không gian 3 chiều, có tọa độ nằm trong các vector x, y, z + Dạng (2): tương tự Dạng (1), đồng thời có quy định kiểu đường, màu sắc, kiểu điểm trong xâu s
3 Ví dụ: vẽ đồ thị hàm: x = sin(t), y = cos(t), z = t
Trang 20Viện KTCN - Trường ĐH Vinh 169
Tương tự như lệnh plot, lệnh plot3 cũng có các dạng sau:
plot3(x1, y1, z1, x2, y2, z3,…) plot3(x1, y1, z1, s1, x2, y2, z2, s2,…) Tuy nhiên, trong không gian 3 chiều, nếu vẽ cùng lúc nhiều đồ thị trên một hệ trục tọa độ thì sẽ rất khó quan sát, nên chúng ta ít khi thực hiện điều này
Ngoài ra, còn có các lệnh vẽ: pie3, bar3, stem3
2 Ý nghĩa: tạo một lưới mà giá trị tọa độ điểm lưới được trả vào hai ma trận X, Y Trong
đó, ma trận X chứa n hàng giá trị vector x, ma trận Y chứa m cột giá trị vectơ y
Cặp ma trận X, Y sau đó được sử dụng để ước lượng hàm hai biến sử dụng trong việc vẽ đồ thị trong không gian 3 chiều
Nếu vector x = y thì có thể viết: [X, Y] = meshgrid(x)
3 Ví dụ:
Ta có kết quả :
Trang 21Viện KTCN - Trường ĐH Vinh 170
4.3.2.2 Lệnh vẽ đồ thị dạng lưới
1 Cú pháp:
mesh(X, Y, Z) (1) mesh(X, Y, Z, C) (2)
2 Ý nghĩa: dùng để vẽ đồ thị Z = f(X, Y) dạng lưới (1), có màu là C (2)
2 Ý nghĩa: dùng để vẽ bề mặt đồ thị Z = f(X, Y) (1), có màu là C (2)
3 Ví dụ: vẽ đường đồ thị hàm số: z = - x2 - y2
Trang 22Viện KTCN - Trường ĐH Vinh 171
4.3.3 Thiết lập tham số cho đồ thị
1 Cú pháp:
xlabel(‘Tiêu đề’) (1) ylabel(‘Tiêu đề’) (2) zlabel(‘Tiêu đề’) (3) title(‘Tiêu đề’) (4) axis([xmin, xmax, ymin, ymax, zmin, zmax]) (5) subplot mnp (6)
2 Ý nghĩa:
Tương tự như trong không gian 2 chiều, chức năng của các hàm như sau:
+ Dạng (1), (2), (3): lần lượt là tiêu đề cho các trục x, trục y, trục z,
+ Dạng (4): tạo tiêu đề đồ thị
+ Dạng (5): tạo giới hạn cho các trục
+ Dạng (6): chia màn hình thành nhiều phần khác nhau
trong không gian 3 chiều:
Trang 23Viện KTCN - Trường ĐH Vinh 172
Trang 24Viện KTCN - Trường ĐH Vinh 173
4.4 Chỉnh sửa đồ thị dùng menu
MATLAB cho phép chúng ta chỉnh sửa trực tiếp các đặc tính, các tham số của đồ
thị mà không cần sửa code Khi đó, trên cửa sổ đồ thị ta thực hiện:
Hoặc trong không gian 3D:
* Bước 3: chọn các nội dung cần chỉnh sửa :
+ Color: chỉnh màu cho đồ thị
Trang 25Viện KTCN - Trường ĐH Vinh 174
+ Line Style: chỉnh kiểu đường (nét liền, nết đứt, nét chấm,…)
+ Line Width: chỉnh độ dày kiểu đường
+ Maker: chỉnh kiểu điểm (o, *, +,…)
+ Maker size: chỉnh độ lớn của kiểu điểm,…
2 Chỉnh sửa tham số đồ thị:
Để chỉnh sửa tham số đồ thị (tiêu đề trục x, trục y, tiêu đề đồ thị,…), ta thực hiện:
* Bước 1: mở menu Insert -> chọn một tham số theo ý muốn:
Hoặc trong không gian 3D:
* Bước 2: Tùy thuộc vào tham số mà ta sẽ nhập nội dung và/hoặc chèn đối tượng vào đồ thị, ví dụ:
+ X Label, Y Label, Z Label: chèn tiêu đề trục x, trục y, trục z
+ Title: chèn tiêu đề đồ thị
Trang 26Viện KTCN - Trường ĐH Vinh 175
+ Zoom In, Zoom Out: thu, phóng đồ thị
+ Pan: di chuyển đồ thị hoặc cửa sổ đồ thị
+ Rotate 3D: có thể xoay đồ thị để xem một cách trực quan trong không gian 3D
+ Data Cursor: xem tọa độ của điểm bất kỳ trên đồ thị
+ Brush: lấy tọa độ điểm bất kỳ, đưa vào cửa sổ chương trình (cửa sổ Command hoặc cửa
1 Vẽ đồ thị dạng bar cho hàm số f(x) = sin(1/x) trong khoảng 0.01 ≤ x ≤ 0.1
2 Vẽ đồ thị dạng area chohàm số y = x3 + 3x2– 2x + 1 trên khoảng [-10, 10] Thiết lập lưới, các tham số cho trục hoành, trục tung
3 Vẽ đồ thị các hàm số x, x3, ex và ex2 trên khoảng 0 ≤ x ≤ 4 trong cùng một hệ trục tọa
đồ
4 Vẽ đồ thị hàm các số y = sin(x), y = cos(x) và y = sin(x) + cos(x) với x [-, ] trên cùng 1 hệ trục tọa độ Tạo lưới và chú thích cho các đồ thị
5 Vẽ đồ thị hàm các số y = y = ex, y = e2x và e3x với x [-10, 10] trên cùng 1 hệ trục tọa
độ Tạo lưới và chú thích cho các đồ thị
6 Vẽ đồ thị hàm các số y = ex, y = e2x, e3x và y = e4x với x [-10, 10] trên 4 hệ trục tọa
độ trong cùng 1 cửa sổ Tạo lưới và chú thích cho các đồ thị
7 Vẽ đồ thị z = x2 + y2 với x và y thuộc đoạn [-10,10] Tạo lưới và chú thích cho các trục tọa độ
Trang 27Viện KTCN - Trường ĐH Vinh 176
8 Vẽ đồ thị z = sin(x2) + sin(y2) với x và y thuộc đoạn [-10,10] Tạo lưới và chú thích cho các trục tọa độ
9 Vẽ đồ thị hàm các số y = x2 – 5x + 1, y = 2x2 + 7x - 3 và y = 5x2 -3x + 8 với x [-5, 5] trên cùng 1 hệ trục tọa độ Tạo lưới và chú thích cho các đồ thị
10 Vẽ đồ thị hàm các số y = x3 – 7x + 1, y = x3 + 7x2 - 3 và y = 5x2 -3x + 8 với x [-10, 10] trên cùng 1 hệ trục tọa độ Tạo lưới và chú thích cho các đồ thị
11 Vẽ đồ thị hàm số x = sin(t), y = cos(t) và z = t với t [-10, 10] Tạo lưới và chú thích cho các trục tọa độ
12 Vẽ các đồ thị sin(x), cos(x), sin(x)+cos(x), ex trên đoạn [-2pi,2pi] trong bốn hệ tọa độ của 1 cửa sổ vẽ
13 Vẽ đồ thị z = x2 + y2/x2, với x và y thuộc đoạn [-10, 10]
14 Vẽ đồ thị mặt cầu trong không gian
15 Vẽ đồ mặt trụ trong không gian
16 Viết chương trình dạng script vẽ đường tròn: x = a + r.cos(), y = b + r.sin()
17 Vẽ đồ thị hàm r = sin(5) trong hệ tọa độ cực
TÀI LIỆU THAM KHẢO
[1] Nguyễn Hoàng Hải, Nguyễn Việt Anh, Lập trình Matlab và ứng dụng, Nhà xuất bản
Khoa học và Kỹ thuật, 2006
[2] Trần Quang Khánh, Giáo trình cơ sở Matlab ứng dụng, Nhà xuất bản Khoa học và
Kỹ thuật, 2012