Thực hành Matlab cơ bản - Worksheet 4: Vẽ đồ thị trong Matlab
Mục đích:
Worksheet này giới thiệu về công việc vẽ đồ thị 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.
THỰC HÀNH MATLAB CƠ BẢN 1 Thái Duy Quý – thaiduyquy@gmail.com WORKSHEET 4: VẼ ĐỒ THỊ TRONG MATLAB --Thái Duy Quý ITFac – thaiduyquy@gmail.com – Mục đích: Worksheet này giới thiệu về công việc vẽ đồ thị 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: MATLAB có rất nhiều tùy chọn cho việc vẽ đồ thị. Lệnh quan trọng nhất là plot, lệnh này đã từng được làm việc trong worksheet 2. Ngoài ra còn có hai lệnh phụ thêm là fplot và ezplot từ Symbolic Toolbox. Ezplot Lệnh dễ vẽ đồ thị nhất là ezplot và nó có thể gọi ra từ Symbolic Toolbox. Trong dạng lệnh ezplot(f), nó sẽ vẽ biểu thức f =f(x) qua miền x mặc định (-2,2). Trong dạng lệnh ezplot(f, [a,b]), nó sẽ vẽ hàm f = f(x) với a < x < b. Ví dụ: Lệnh ezplot(’cos(x)’) sẽ vẽ như hình sau: THỰC HÀNH MATLAB CƠ BẢN 2 Thái Duy Quý – thaiduyquy@gmail.com Ví dụ: Lệnh ezplot(’x^3-2*x+1’,[-2,2]) sẽ vẽ như hình sau: Ví dụ: Chúng ta có thể đặt nhiều lệnh vẽ trong một màn hình đồ thị bằng cách sử dụng lệnh hold ngay sau lệnh vẽ đồ thị thứ nhất và lệnh hold off sau lệnh cuối cùng. Ngay sau khi gõ các lệnh, một tập các đồ thị được vẽ trên một màn hình như hình sau: THỰC HÀNH MATLAB CƠ BẢN 3 Thái Duy Quý – thaiduyquy@gmail.com fplot Một lệnh khác dễ dàng sử dụng để vẽ đồ thị đó là lệnh fplot. Trong dạng fplot(f,[a,b]), lệnh này sẽ vẽ biểu thức f = f(x) với a < x < b. Trong dạng fplot(f,[a,b,c,d]), nó sẽ vẽ biểu thức f = f(x) với a < x < b và các giá trị của f thuộc vùng (c,d). Trong dạng fplot([f,g,h,...],[a,b]), nó sẽ vẽ các hàm f,g,h, … trong một cửa sổ đồ thị với a < x < b. Dạng fplot([f,g,h,...],[a,b,c,d]), nó sẽ vẽ các hàm f,g,h,... trong một cửa sổ với a < x < b và các giá trị hàm thuộc (c,d). Ví dụ: Gõ fplot(’x^4-3*x^2-2*x’,[-2,2]) ta được: Và gõ fplot(’x^4-3*x^2-2*x’,[-2,2,-1,1]) ta được: THỰC HÀNH MATLAB CƠ BẢN 4 Thái Duy Quý – thaiduyquy@gmail.com Ví dụ: Gõ fplot(’[cos(x),sin(x),sin(2*x)]’,[0.1,14]) ta nhận được: và gõ fplot(’[tan(x),sin(x),cos(x)]’,2*pi*[-1 1 -1 1]) ta nhận được: Cũng có thể lựa chọn các tính nhất như màu sắc, kiểu đường và ký tự vẽ với lệnh fplot. Tuy nhiên, ta sẽ thảo luận vấn đề này khi đề cập đến lệnh plot. THỰC HÀNH MATLAB CƠ BẢN 5 Thái Duy Quý – thaiduyquy@gmail.com plot Lệnh plot trong MATLAB là lệnh được sử dụng nhiều trong các lệnh vẽ đồ thị. Với dạng plot(x,y) nó sẽ vẽ vector x ngang với vector y. Thông thường vector y là một hàm số của vector x, như ví dụ sau đây. Ví dụ: Để thực hiện vẽ hàm f(x) = sin(x2/2) trong 100 đoạn bằng nhau từ -1 đến 7, ta gõ như sau: và nhận được: Ví dụ: Lệnh x = linspace(-3,3,50); y=sin(x)-cos(2*x); và plot(x,y,’r’) sẽ nhận được: THỰC HÀNH MATLAB CƠ BẢN 6 Thái Duy Quý – thaiduyquy@gmail.com Ký tự ’r’ thiết lập màu đỏ (red). Nếu ta gõ plot(x,y,’go’) chúng ta nhận được màu xanh (g - green) và ký tự vẽ là hình tròn. Lệnh plot đưa vào nhiều dạng tham số plot(x,y,s). Giá trị s ở đây là một chuỗi các ký tự nằm giữa hai dấu ngoặc đơn, biểu thị cho màu sắc, kiểu đường và ký tự hiễn thị. Các tùy chọn màu trong lệnh plot (hoặc fplot) là: b Blue g Green r Red c Cyan m Mangeta y Yellow k Black Và các tùy chọn kiểu đường vẽ: - Solid : Dotted -. Dashdot -- dashed Và tùy chọn kiểu ký tự hiễn thị: THỰC HÀNH MATLAB CƠ BẢN 7 Thái Duy Quý – thaiduyquy@gmail.com . Point o Circle x x-mark + plus * Star s Square d diamond Hầu hết các ký tự plot có thể được tìm thấy khi gõ lệnh help plot. Lệnh plot có thể sử dụng để thiết lập nhiều đồ thị với nhau. Biểu thức có dạng plot(x1,y2,s1,x2,y2,s2,x3,y3,s3,...) nối các đồ thị cạng cặp ba (x1,y1,s1), (x2,y2,s2), .... Ví dụ: Đồ thị của sinx – cos(2x) và sinx.cosx được vẽ trong đoạn (0,5) sử dụng 100 điểm. Hàm thứ nhất có màu xanh và ký tự hình tròn và hàm thứ hai có màu đen và kiểu đường chấm. THỰC HÀNH MATLAB CƠ BẢN 8 Thái Duy Quý – thaiduyquy@gmail.com Bài tập Bài 1: Vẽ các hàm sin(x), trong vùng (-1,2) sử dụng ezplot, fplot,và plot. Lưu ý rằng khi vẽ bạn ần định nghĩa một vector của các đoạn bằng nhau trong khoảng (-1, 2). Cho hiễn thị các đồ thị này trên một cửa sổ độc lập và cùng hiễn thị. Sử dụng lệnh plot để vẽ đồ thị hàm sin(x) với x thuộc (0, 3). Đầu tiên sử dụng 20 điểm và màu đen, sau đó sử dụng 100 điểm và màu đỏ, kiểu đường là dashed. Cho hiễn thị đồ thị. Gõ lệnh fplot(’[sin(x),x-x^3]’,[-2,2]) để vẽ đồ thị sin(x) và x - x3/2 trong vùng (-2,2) trên một cửa sổ. Sau đó gõ x = linspace(-2,2,100); y=sin(x); z=’x-(x.^3)./2’; plot(x,y,x,z) để có được các đồ thị trên một cửa sổ sử dụng lệnh plot. Hiễn thị các đồ thị này. Vẽ đồ thị hàm số cos(x) và 1 - x2/2 on (-2,2) trên một đồ thị: đầu tiên sử dụng fplot, sau đó sử dụng lệnh plot. Hiễn thị các đồ thị này. Gõ đoạn code sau và giải thích khi nó được vẽ trên đồ thị. x = 1:20 y = 20:-1:1 plot(x,y,‘+’) THỰC HÀNH MATLAB CƠ BẢN 9 Thái Duy Quý – thaiduyquy@gmail.com Gõ đoạn code sau và giải thích khi nó được vẽ trên đồ thị: x = 1:20; y = 20:-1:1; z=4*sqrt(x); plot(x,y,’ob’,x,z,’:g’) Bài 2: Vẽ các hàm sin(x), sin(x – 1), sin(x – 2), sin(x – 3) trong cùng một cửa sổ đồ thị với x thuộc (-5, 5). Hiễn thị đồ thị này. Lặp lại điều này với các hàm sin(x), sin(x + 1), sin(x + 2), sin(x + 3). Hiễn thị các đồ thị này. Dựa trên hai đồ thị, xác định mối quan hệ giữa sin(x) và sin(x + a) là gì? Vẽ các hàm sin(x), sin(x) + 1, sin(x) + 2, sin(x) + 3 trong cùng một cửa sổ đồ thị với x thuộc (-5, 5). Hiễn thị đồ thị này. Lặp lại điều này với các hàm sin(x), sin(x) - 1, sin(x) -2, sin(x) - 3. Hiễn thị các đồ thị này. Dựa trên hai đồ thị, xác định mối quan hệ giữa sin(x) và sin(x) + a là gì? Vẽ các hàm 0.25sin(x), 0.5sin(x), sin(x), 2sin(x), 4sin(x) trong cùng một cửa sổ đồ thị với x thuộc (-2, 2). Dựa trên đồ thị này, xác định mối quan hệ giữa sin(x) và asin(x)? Vẽ các hàm sin(0.5x), sin(x), sin(1.5x), sin(2x), sin(2.5x), sin(3x) trong cùng một cửa sổ đồ thị với x thuộc (-2, 2). Hiễn thị đồ thị. Dựa trên đồ thị này, xác định mối quan hệ giữa sin(x) và sin(ax)? Bài 3: Định nghĩa hàm 2 2( ) 1 xf x x trong đoạn (-10,10). Vẽ đồ thị trên một cửa sổ tất cả các hàm có dạng f(x – a) với a = 0,1,2,3,4,5. (Gợi ý: có thể sử dụng: x = linspace(-10,10,200); f= ‘(x.^2)./(x.^2 + 1)’, plot(x,y,x-1,y,x-2,y,x-3,y,x-4,y,x-5,y). Nghĩ xem tại sao điều này có thể thực hiện được. Lưu ý rằng có một sự khác biệt nhỏ trong khi vẽ đồ thị vùng (-15, 10) thay vì (-10,10) ). Vẽ trên cùng một cửa sổ các hàm f (x + a), với x thuộc (-10, 10), cho a = 0,1,2,3,4,5. Hiễn thị các đồ thị này. THỰC HÀNH MATLAB CƠ BẢN 10 Thái Duy Quý – thaiduyquy@gmail.com Vẽ trên cùng một cửa sổ các hàm f (x) + a, với x thuộc (-10, 10), cho a = 0,1,2,3,4,5. Hiễn thị các đồ thị này. Vẽ trên cùng một cửa sổ các hàm af (x), với x thuộc (-10, 10), cho a = 0,1,2,3,4,5. Hiễn thị các đồ thị này. Vẽ trên cùng một cửa sổ các hàm f (ax), với x thuộc (-10, 10), cho a = 0,1,2,3,4,5. Hiễn thị các đồ thị này. Bài 3: Vẽ đồ thị hàm số x, x3, ex và e^(x2) với 0 < x < 4 Vẽ đồ thị hàm số f(x) = sin(1/x) với 0.01 < x < 0.1. Vẽ hai hàm 2y x và s n3xy i trên cùng một đồ thị, ghi chú thích Vẽ hàm số 3 3 1y x x sử dụng hàm plot và fplot Phụ lục: Đồ thị 2D trong Matlab Matlab cung cấp các lệnh giúp vẽ hầu hết các đồ thị 2D phổ biến nhất như: plot, bar, errorbar, … với thao tác lệnh rất đơn giản và mạnh mẽ. Bên cạnh việc dùng lệnh ta cũng có thể sử dụng các nút công cụ để dựng hình tuy nhiên ở bài này tôi chỉ đề cập tới các lệnh, việc sử dụng công cụ sẽ giới thiệu ở bài sau. Sau đây chúng ta đi vào tìm hiểu 7 loại đồ thị cơ bản nhất. 1. Lệnh Plot vẽ đồ thị đường Cấu trúc: plot(x,y) % vẽ đường y(x) với x là tên biến, y là tên hàm. plot(y) % ngầm hiểu là vẽ đường y(x). Nếu y là hàm phức thì: plot(real(y),imag(y)) % real(y) là phần thực, imag(y) là phần ảo. THỰC HÀNH MATLAB CƠ BẢN 11 Thái Duy Quý – thaiduyquy@gmail.com Ví dụ: >>x=linspace(1,10,100); % lấy 100 điểm trong khoảng (1,10) >>y=sin(x); >> plot(x,y) 2. Lệnh Bar vẽ đồ thị dạng cột >>x=-10:0.2:10; % lấy các giá trị từ -10 đến 10 cách nhau 0,2 đơn vị. >>y=-x.*x; % hàm y = -x2 có thể gõ y=-x.^2 ; chú ý có dấu chấm. >>bar(x,y) 3. Lệnh Stairs vẽ đường bậc thang >>x=0:0.25:10; >>stairs(x,sin(x)) THỰC HÀNH MATLAB CƠ BẢN 12 Thái Duy Quý – thaiduyquy@gmail.com 4. Lệnh Errorbar vẽ đồ thị sai số >>x=-5:0.1:5; >>y=erf(x); >>e=rand(size(x))/20; >>errorbar(x,y,e) 5. Lệnh Polar vẽ tọa độ cực >>x=0:0.1:2*pi; >>polar(x,abs(sin(2*x).*cos(2*x))) THỰC HÀNH MATLAB CƠ BẢN 13 Thái Duy Quý – thaiduyquy@gmail.com 6. Lệnh Stem vẽ đồ thị dạng cây >>x=0:0.2:10; >>y=sin(x.^2).*exp(-x); % chú ý dấu chấm >>stem(x,y) 7. Lệnh Pie vẽ đồ thị dạng bánh >>x=[20 47 15 13 5]; >>y=[0 0 0 1 0] % 1 để nhấn mạnh phần 13, chọn 0 để chúng dính liền nhau. >>pie(x,y) -- Hết --
File đính kèm:
- Thực hành Matlab cơ bản - Worksheet 4_Vẽ đồ thị trong Matlab.pdf