ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh fplot số phức: >> f='cos(tan(x))-tan(sin(x))'; >> fplot(f,[1 2]) ©Copyright 2007 MATLAB 61 ĐỒ HỌA CĂN BẢN (tt) Các lệnh vẽ tọa độ đặc biệt Polar(t,r): vẽ đồ thị tọa độ cực Semilogx(x,y): Vẽ hàm y theo x với trục y vẽ theo thang log Semilogy(x,y): Vẽ hàm y theo x với trục x vẽ theo thang log Loglog(x,y) Vẽ hàm y theo x với thang log cho trục tọa độ Plotyy(x,y,’function’): Vẽ đồ thị với trục y theo kiểu vẽ chọn function Trong function nhận giá trị plot, semilogy, semilogx… Plot3(x,y,z): vẽ đường không gian chiều Subplot(m,n,p): Chia cửa sổ figure nhiều ô, m ô theo chiều đứng, n ô theo chiều ngang, vẽ đồ thị thứ p ©Copyright 2007 MATLAB 62 ĐỒ HỌA CĂN BẢN (tt) Thí dụ: Lệnh polar(t,r): Vẽ đồ thị góc t (radian) tọa độ cực theo bán kính r Lệnh polar(t,r,’linestype’): Vẽ góc t với đường vẽ nét xác định ‘linestype’ >>t = 0:.1:2*pi; >>polar(t,sin(2*t)) >>polar(t,sin(2*t),'m-') ©Copyright 2007 MATLAB 63 ĐỒ HỌA CĂN BẢN (tt) Thí dụ, vẽ đường xoắn ốc Archimeder r = 2Ѳ với Ѳ thuộc [0, 4pi] >> r = 2*t; >> polar(t,r),title('Duong xoan oc Archimede r = 2\t'); ©Copyright 2007 MATLAB 64 ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh loglog(x,y) >> x = logspace(-1,2); >> loglog(x,exp(x)) ©Copyright 2007 MATLAB 65 ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh semilogx(x,y) >> x = logspace(-2,3); >> y = x.^12 + 10; >> semilogx(x,y) %tương tự cho lệnh semilogy() ©Copyright 2007 MATLAB 66 ĐỒ HỌA CĂN BẢN (tt) Thí dụ : >> t=0:pi/20:6*pi; >> x=sin(t); >> y=sin(t-pi/2); >> z=t; >> subplot(121) >> plotyy(t,x,t,y,'plot') >> grid on >> subplot(122) >> plot3(x,y,z) >> grid on ©Copyright 2007 MATLAB 67 ĐỒ HỌA CĂN BẢN (tt) Các lệnh vẽ liên quan đến SỐ PHỨC quiver(x,y): vẽ vector xuất phát từ vị trí khác fearther(x,y): Vẽ vector xuất phát từ trục x compass(x,y): Vẽ vector từ điểm gốc hệ tọa độ cực rose(x) ©Copyright 2007 MATLAB 68 Thí dụ-Lệnh quiver Giả sử ta có trường vector sau không gian R2: y , thử vẽ hình ảnh trường , Q(x,y) = phạm vi x thuộc [1,5] y thuộc [1,5] P(x,y) = x Trước hết ta viết sript file (lưu file với tên Quiver.m) sau: ©Copyright 2007 MATLAB 69 Thí dụ-Lệnh quiver (tt) Sau đó, ta chạy file sript này(Gõ tên file cửa sổ lệnh->Enter), ta hình ảnh sau: ©Copyright 2007 MATLAB 70 ĐỒ HỌA TRONG KHÔNG GIAN CHIỀU (tt) CÁC LỆNH QUAN SÁT View Rot90 Slice Colormap colorbar ©Copyright 2007 MATLAB 96 ĐỒ HỌA TRONG KHÔNG GIAN CHIỀU (tt) Lệnh view view([α,β]) Trong đó: α: Là góc phương vị tính độ ngược chiều kim đồng hồ từ phía trục ngang (mặc định α = -37.5o) β: Góc nhìn tính độ xuống mặt phẳng xy (mặc định β = 30o) Thí dụ: view([0,90]) : Vẽ 2D trường hợp đặc biệt phép vẽ 3D - Hiển thị đồ thị 3D tạo dạng 2D theo góc phương vị góc nhìn ©Copyright 2007 MATLAB 97 ĐỒ HỌA TRONG KHÔNG GIAN CHIỀU (tt) >> view([0,90]) >> view([30,30]) % Hiển thị hình vẽ lệnh surfc(X,Y,Z) ©Copyright 2007 MATLAB 98 ĐỒ HỌA TRONG KHƠNG GIAN CHIỀU (tt) Lệnh rot90 ROT90 Rotate matrix 90 degrees ROT90(A) is the 90 degree counterclockwise rotation of matrix A ROT90(A,K) is the K*90 degree rotation of A, K = +-1,+2, Example: A = [1 B = rot90(A) = [ 456] 25 14] ©Copyright 2007 MATLAB 99 ĐỒ HỌA TRONG KHÔNG GIAN CHIỀU (tt) >>[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-:.16:2); v = x * exp(-x.^2 - y.^2 - z.^2); slice(x,y,z,v,[-1.2 2],2,[-2 -.2]) ©Copyright 2007 MATLAB 100 ĐỒ HỌA TRONG KHÔNG GIAN CHIỀU (tt) Thí dụ lệnh Colormap colorbar >> [x,y] = meshgrid(-2:.2:2); >> z = x.^(-x.^2-y.^2); >> [C,h] = contour(x,y,z); >> Clabel(C,h); %Nhãn biểu đồ contour >> Surf(peaks(30)) >> Colormap cool; %Chọn biểu đồ màu >> Colorbar % Hiển thị biểu đồ màu ©Copyright 2007 MATLAB 101 ĐỒ HỌA TRONG KHƠNG GIAN CHIỀU (tt) ©Copyright 2007 MATLAB 102 ĐỒ HỌA TRONG KHÔNG GIAN CHIỀU (tt) Các lệnh đồ họa khác đồ họa 3D fill3: Tô đa giác mặt không gian 3D Cú pháp: fill3(x,y,z,c): Tô đa giác 3D định nghĩa vector x, y, z với màu tô xác định c fill3(x1,y1,z1,c1,x2,y2,z2,c2,…): Tô đa giác 3D xác định nhiều vùng tô comet3(z) comet3(x,y,z) comet3(x,y,z,p) comet3 Các lệnh vẽ đườn viền chiều 3D contour3(z): Vẽ đường viền 3D mức z contour3(z,n): Vẽ đường n viền 3D contour3(x,y,z): Tương tự trên, ma trận x,y để giới hạn trục x,y ©Copyright 2007 MATLAB 103 ĐỒ HỌA TRONG KHƠNG GIAN CHIỀU (tt) Lưu ý: MATLAB cho phép chuyển đồ thị qua word… Cách làm: − Từ cửa sổ Sau trở lại cửa sổ mà ta muốn chèn vào nơi ta mong muốn ©Copyright 2007 MATLAB 104 M-FILE, or SCRIPT Việc nhập lệnh từ dấu nhắc (>>) nhanh hiệu quả, thực lúc nhiều lệnh muốn thay đổi giá trị nhiều biến lặp lại số lệnh việc nhập lệnh dấu nhắc hiệu M-FILE tiện dụng cho việc giải toán lớn, MATLAB cung cấp thủ tục để tạo hàm riêng cho người sử dụng với hình thức text file Giải pháp: − Tập hợp lệnh vào file với phần mở rộng (*.m) Cụ thể: − Để soạn thảo M-File − Để hiển thị lệnh M-File chúng thực thi sử dụng lệnh echo on ©Copyright 2007 − Hiệu chỉnh M-FILE: MATLAB 105 M-FILE, or SCRIPT (tt) MỘT SỐ LÊNH QUẢN LÝ TẬP TIN Cho phép liệt kê, xem, xóa, sửa, chuyển đổi thư mục … ©Copyright 2007 − d: Chuyển đổi thư mục − Chdir/cd − dir: liệt kê tất thư mục hành (tương tự lệnh IS) − delete: − type: Hiển thị tập tin M-FILE cửa sổ lệnh − what: Hiển thị tất M-FILE thư mục hành − which: Hiển thị thư mục … Xóa tập tin M-FILE MATLAB 106 M-FILE, or SCRIPT (tt) CẤU TRÚC MỘT CHƯƠNG TRÌNH function[các biến đầu ra] = filename(các đối số) function filename(các đối số) function[các biến đầu ra] = filename % lời thích chương trình global ten_bien1 ten_bien2 … Chương trình (các câu lệnh) ©Copyright 2007 MATLAB 107 M-FILE, or SCRIPT (tt) CẤU TRÚC MỘT CHƯƠNG TRÌNH Thí dụ: Giải phương trình bậc hai: ax2 + by + c = a Khi biết hệ số b Nhập hệ số cửa sổ lệnh ©Copyright 2007 MATLAB 108 M-FILE, or SCRIPT (tt) a Chương trình có tên ptb2_a.m function x = ptb2(a,b,c) % Giải phương trình bậc hai biết hệ số p = [a b c]; roots(p); x0 = -b/(2*a); x = (x0 -10):.1:(x0+10); y = a*x.2 + b*x + 10; plot(x,y), title(‘Do thi bac hai’); Trong cửa sổ lệnh: >> x = ptb2(1,2,1) x= -1 -1 ©Copyright 2007 MATLAB 109 M-FILE, or SCRIPT (tt) b Chương trình có tên ptb2_b.m % thích a = input(‘Nhập a = ‘); b = input(‘Nhập b = ‘); c = input(‘Nhập c = ‘); p = [a b c ]; % Khởi tạo vecto hệ số x = roots(p); disp(‘Nghiệm phương trình bậc 2:’) disp(x) x = (x0 -10):.1:(x0+10); y = a*x.^2 + b*x + 10; plot(x,y) title(‘Do thi bac hai’); ©Copyright 2007 MATLAB 110