Bài giảng Tin học ứng dụng trong kỹ thuật địa chất và dầu khí - Matlab

MATLAB (Matrix Laboratory) là một ngôn ngữ thông dịch, cho phép thực hiện nhanh chóng các giải thuật, hiển thị dữ liệu (dưới dạng đồ thị 2D, 3D, hình ảnh và thậm chí chuỗi hình ảnh) và thực hiện các giao tiếp đồ họa dễ dàng. Ưu điểm: Cung cấp một công cụ tính toán và lập trình bậc cao dễ sử dụng, hiệu quả và thân thiện. SIMULINK giúp người sử dụng thực hiện các bài toán mô hình hóa, mô phỏng trên máy tính. Có tính mở, các hàm và các toolbox không ngừng được bổ sung theo sự phát triển của khoa học bởi chính The Mathworks Ins và cả người sử dụng trên toàn thế giới Có công cụ trợ giúp phong phú trực tuyến, trên mạng hay các tài liệu dạng pdf.

ppt192 trang | Chia sẻ: tuandn | Lượt xem: 4045 | Lượt tải: 6download
Bạn đang xem trước 20 trang tài liệu Bài giảng Tin học ứng dụng trong kỹ thuật địa chất và dầu khí - Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MATLAB MATLAB CĂN BẢN Tổng quan về MATLAB Các phép toán, biểu thức và hàm cơ bản Lập trình trong MATLAB Đồ họa cơ bản Cấu trúc chương trình BÀI TẬP CÁC VẤN ĐỀ NÂNG CAO TRONG MATLAB Symbolic trong MATLAB Ma trận và đại số tuyến tính Hàm số và phương trình Đồ họa nâng cao Vấn đề tạo giao diện BÀI TẬP TỔNG QUAN VỀ MATLAB MATLAB (Matrix Laboratory) là một ngôn ngữ thông dịch, cho phép thực hiện nhanh chóng các giải thuật, hiển thị dữ liệu (dưới dạng đồ thị 2D, 3D, hình ảnh và thậm chí chuỗi hình ảnh) và thực hiện các giao tiếp đồ họa dễ dàng. Ưu điểm: Cung cấp một công cụ tính toán và lập trình bậc cao dễ sử dụng, hiệu quả và thân thiện. SIMULINK giúp người sử dụng thực hiện các bài toán mô hình hóa, mô phỏng trên máy tính. Có tính mở, các hàm và các toolbox không ngừng được bổ sung theo sự phát triển của khoa học bởi chính The Mathworks Ins và cả người sử dụng trên toàn thế giới Có công cụ trợ giúp phong phú trực tuyến, trên mạng hay các tài liệu dạng pdf. Sức mạnh của MATLAB Môi trường phát triển: gồm các công cụ và tiện nghi giúp viết chương trình, sử dụng các hàm Matlab và các file Thư viện các hàm toán học của Matlab: Các hàm sơ cấp: tổng, sin, tính số phức… các hàm phức tạp: Bessel, nghịch đảo ma trận, tính trị riêng, biến đổi Fourier nhanh, wavelet… Ngôn ngữ Matlab: Các lệnh cao cấp xử lý ma trận, lệnh rẻ nhánh, vòng lặp, xuất nhập, cấu trúc dữ liệu, lập trình hướng đối tượng… Xử lý đồ họa: Hiển thị dữ liệu dạng đồ họa 2D, 3D, hoạt hình, xử lý ảnh và cả GUI Sức mạnh của MATLAB (tt) Thư viện API của Matlab: Cho phép liên kết các chương trình C và Fortran… Các ngôn ngữ khác có thể gọi các hàm dll được tạo bởi Matlab. Các hộp công cụ (Toolbox): Tập hợp các hàm Matlab được viết sẵn để giải quyết các vấn đề thuộc các chuyên ngành khác nhau. Các toolbox khiến cho Matlab có thể ứng dụng vào nhiều lĩnh vực kỹ thuật khác nhau: Điện tử, Điều khiển tự động, Kỹ thuật điện, Viễn thông, Cơ khí, Động lực, Dầu khí, Địa chất, hóa học,… Các khái niệm cơ bản Khi chạy chương trình MATLAB, thì cửa sổ này sẽ xuất hiện Cửa sổ lệnh Cửa sổ không gian làm việc Cửa sổ lịch sử lệnh Các khái niệm cơ bản (tt) Hoạt động trong MATLAB Command window (cửa sổ lệnh) Dấu “>>” dùng để chạy lệnh, viết chương trình, Chạy chương trình. Command history window (cửa sổ lịch sử lệnh) Liệt kê tất cả các lệnh đã sử dụng trước đó kèm theo thời gian làm việc. Current Directory (cửa sổ thư mục hiện tại) Cho biết thư mục hiện tại làm việc. Mặc định khi cài MATLAB701\work (Version 7.01) Workspace (cửa sổ không gian làm việc) Cho biết các biến được sử dụng trong chương trình. Các khái niệm cơ bản Một số lệnh hệ thống Lệnh Ý nghĩa clc xóa cửa sổ lệnh clf xóa cửa sổ đồ họa help xem phần trợ giúp một số lệnh quit, exit Thoát Matlab Ctrl+c Dừng chương trình pause Ngừng tạm thời chương trình edit Gọi chương trình soạn thảo type đọc nội dung file.m input Nhập dữ liệu từ bàn phím demo Gọi chương trình demo echo on/off Tắt mở hiển thị các lệnh trong M-files Các khái niệm cơ bản (tt) CÁC TOÁN TỬ VÀ KÍ TỰ ĐẶC BIỆT plus (+) cộng uplus (+) Cộng unary minus ( - ) Trừ uminus (-) Trừ unary mtimes(. *) Nhân ma trận times (*) Nhân mảng mpower (^) lũy thừa ma trận power (. ^ ) lũy thừa mảng mldivide (\ ) Chia trái ma trận Mrdivide( /) Chia phải ma trận ldivide (.\ ) Chia trái mảng mdivide (./ ) Chia phải ma trận kron Sản phẩm cơ năng Các khái niệm cơ bản (tt) Toán tử quan hệ eq (== ) Bằng ne ( ~= ) Không bằng lt () Lớn hơn le (= ) Lớn hơn hoặc bằng Các khái niệm cơ bản (tt) Toán tử logic and (&) Logic và or ( | ) Logic hoặc not ( ~ ) Logic phủ định xor Logic hoặc phủ định any True nếu mọi phần tử của vector khác không. all True nếu tất cả các phần tử khác không Các khái niệm cơ bản (tt) Các kí tự đặc biệt : Dấu hai chấm () Dấu ngoặc đơn [ ] Dấu ngoặc vuông { } Dấu ngoặc nhọn . Dấu thập phân . Truy nhập cấu cấu trúc trường .. Thư mục mẹ ... Dấu tiếp tục , Dấu phẩy ; Dấu chấm phẩy % Dấu chú thích Các khái niệm cơ bản (tt) % Dấu chú thích ! Liên quan câu lệnh của hệ điều hành = Gán ‘ Nhảy transpose(.’) Chuyển vị ctranspose(‘ ) Chuyển vị số phức liên hợp horzcat [, ] Ghép chuỗi theo chiều ngang vertcat[; ] Ghép chuỗi theo chiều đứng subsasgn Gán subscripted bsref Tham chiếu subscripted subsindex Chỉ số subscripted Các khái niệm cơ bản (tt) BIẾN Quy định về tên biến: Giống các ngôn ngữ khác, Matlab có những quy định về tên biến phải là một từ, không chứa dấu cách, và phải tuân thủ theo các quy tắc sau: Có thể chứa nhiều nhất 31 kí tự, còn các kí tự sau kí tự 31 sẽ bị lờ đi. Ví du: Thoi_gian_dong_cua_vuaximang100, … Tên biến bắt đầu phải là chữ cái, tiếp theo có thể là chữ số, dấu gạch dưới. Thí dụ: Do_bien_thien, Heso, heso, Donhot, donhot… Kí tự chấm “.” không được dùng vì nó có ý nghĩa đặc biệt BIẾN (tt) Một số biến được đĩnh nghĩa trước: 1/0 Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) ans = Inf 0/0 Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) ans = NaN Eps ans = 2.2204e-016 Một số biến được định nghĩa trước (tt) Độ lớn của biến Xác định độ lớn hay chiều dài của biến vector cũng như ma trận thông qua một số hàm sau đây: Size(A) Trả về 1 vector chứa kích thước A, gồm số hàng và số cột của A. Length(A) Trả về chiều dài của A, giá trị lớn nhất của hàng và cột. Ngoài ra còn có các hàm: Size(A,p); [m,n] = size(A) BIẾN (tt) Thí dụ: >> A = [1 2 3; 4 5 6] A = 1 2 3 4 5 6 >> [m,n] = size(A) m = 2 n = 3 >> length(A) ans = 3 >>size(A,1) ans = 2 BIẾN (tt) BIẾN MÔI TRƯỜNG (Environmental Variable) Thí dụ: >> a = 1 a = 1 >> b = ‘MATLAB’ b = Matlab Ta nói, a, b là các biến môi trường. BIẾN (tt) Khi làm việc trong MATLAB ở trong cửa sổ lệnh cũng như các giá trị đã được tạo ra. Những lệnh và biến này được thường trú trong môi trường làm việc của MATLAB (Workspace) và có thể được nạp trở lại khi muốn. Đời sống của những biến chấm dứt khi ta thoát khỏi chương trình MATLAB. Như Thí dụ trên, a được hiểu la một biến số, b là một chuỗi. Khi định nghĩa biến môi trường, nếu gán giá trị cho nó thì kiểu biến sẽ phụ thuộc vào kiểu giá trị đã gán cho nó. BIẾN (tt) BIẾN CỤC BỘ (Local Variable) Biến này chỉ tồn tại trong một hàm MATLAB và không hiện hữu trong cửa sổ lệnh. Thí dụ: function[mean,stdev] = stat(x); n = length(x); mean = sum(x)/n; stdev = sqrt(mean); Trong trường hợp này n là biến cục bộ và chỉ được truy xuất trong một hàm. BIẾN (tt) BIẾN TOÀN CỤC (Global Variable) Được định nghĩa bằng từ khóa global. Việc xóa biến toàn cục dùng lệnh clear global Isglobal(ten_bien): trả về 1 (ten_bien là biến toàn cục), 0 (ten_bien không phải là biến toàn cục) Thí dụ: Global x y z x, y, z là các biến toàn cục. BIẾN (tt) Thường mỗi hàm trong MATLAB được viết dưới dạng M File, có riêng những biến cục bộ cho từng hàm và được lưu trữ trong một vùng biến đặc biệt, việc gọi hàm trong một hàm đều có thể truy xuất biến này. Nên dùng KÍ TỰ HOA để đặt tên biến toàn cục để tránh trùng tên với các biến trong Workspace. BIẾN (tt) BIẾN SYMBOLIC Symbolic processing là thuật ngữ dùng mô tả cách thức máy tính thực hiện tính các biểu thức toán học (Thí dụ, rút gọn một đa thức, đặt thừa số chung, tính giá trị một biểu thức đại số, giải phương trình đại số, giải phương trình vi phân, …) Khởi tạo biến symbolic: x = sym(‘x’): Tạo biến symbolic có tên là x. x = sym(‘x’,’real’): Tạo biến symbolic có tên x và là biến không bị ràng buộc phải là biến thực. k = sym(‘p’,’positive’): Tạo biến symbolic k là biến thực, dương. Khởi tạo hằng symbolic: Nhằm tránh mắc sai lầm khi làm tròn. BIẾN (tt) Khởi tạo hằng symbolic Thí dụ: >> hai_phan_ba = sym(‘2/3’); >> pi = sym(‘pi’); >> hai_phan_ba = hai_phan_ba = 2/3 % Không hiển thị giá trị xấp xỉ >> Pi Pi = pi % không hiển thị giá trị xấp xỉ. - Liệt kê các biên symbolic hiện hành, sử dụng hàm BIẾN (tt) - Symbolic Liệt kê các biến Symbolic >> syms x y; >> p = 2*x + 3*y; % Tạo biến symbolic p thông qua biểu thức symbolic >> u = sqrt(x^2 + y^2); % Tạo biến symbolic u thông qua biêu thức symbolic >> d = subs(u, {x,y},{2,3}) % Tính giá trị biểu thức u khi x = 2, y = 3. d = 13 >> v = subs(u,{x,y},{3,4}) % Tính giá trị biểu thức khi x = 3; y = 4; v = 5 >> syms ‘r’ ‘s’ ‘x’ ‘y’ BIẾN (tt) - Symbolic Khởi tạo ma trận symbolic bằng biến symbolic. Thí dụ: >> n = 3; >> syms x; >> A = x.^ [[0:n]’.* [0:n]]; % Dùng phép biến đổi lũy thừa mảng A = [1, 1, 1, 1] [1, x, x^2, x^3] [1, x^2, x^4, x^6] [1, x^3, x^6, x^9] BIẾN (tt) - Symbolic Tìm biến symbolic trong một hàm Thí dụ: >> syms b x y z; >> findsym(5*b + 2*z) % Hàm này tìm biến symbolic trong một hàm ans = b, z BIẾN (tt) LƯU và NẠP Biến Biến sẽ bị xóa sạch khi: Dùng lệnh: clear all Thoát chương trình MATLAB Lưu biến: Để sử dụng lại cho phiên làm việc sau; dùng lệnh (lưu tất cả các biến do Workspace đang quản lý(tên, kích thước, giá trị) vào một tập tin nhị phân (binary file) có tên matlab.mat BIẾN (tt) Nạp biến: Dùng lệnh Nạp tất cả các biến đã lưu vào Workspace để dùng lại Nếu không muốn dùng tập tin mặc định matlab.mat, ta sử dụng lệnh để lưu tất cả biến vào tập tin có tên filename.mat và muốn nạp lại biến khi dùng lệnh Lưu một vài biến trong cửa sổ workspace Lệnh Nói chung cách đơn giản nhất là: Từ cửa sổ Menu File ở cửa sổ lệnh chọn Đặt tên tập tin (có đuôi mở rộng là *.mat) Câu chú thích Tất cả các văn bản đằng sau kí hiệu phần trăm (%) đều là câu giải thích. Thí dụ: > heso_a = 10 % Hệ số a ptb2 heso_a = 10 >> heso_b = 20 % Hệ số b ptb2 heso_b = 20 Số phức Một trong những điểm mạnh nhất của MATLAB là làm việc với số phức. Các hàm đặc biệt của số phức: real(x) Phần thực của X imag(x) Phần ảo của X conj(x) Liên hợp phức của X abs(x) Độ lớn, trị tuyệt đối của X angle(x) Góc pha của số phức complex(x) Tạo số phức từ phần thực và ảo Số phức (tt) Thí dụ: >> a=1+3i a = 1.0000 + 3.0000i >> b=2-4i b = 2.0000 - 4.0000i >> a+b ans = 3.0000 - 1.0000i >> abs(a) ans = 3.1623 % độ lớn của a >> real(b) % phần thực của số phức b ans = 2 >> imag(b) %phần ảo của số phức b ans = -4 >> complex(2,2) ans = 2.0000 + 2.0000i Một số hàm toán học thông thường Một số hàm toán học thông thường Một số hàm toán cơ bản Một số hàm cơ bản (tt) Thí dụ: >> x=4; >> sqrt(x) ans = 2 >> exp(x) ans = 54.5982 >> sign(x) ans = 1 >> rem(x,3) ans = 1 >> v=[1 2 3]; >> min_v=min(x) min_v = 1 >> mean(x) ans = 2 >> sum(x) ans = 6 Các Hàm liên quan đến ĐA THỨC Đa thức được biểu diễn bằng vecto bậc một có bậc giảm dần. Cho hai đa thức f, g lần lượt được biểu diễn bởi a và b. Ta sẽ có các hàm sau: Conv(a,b) Nhân hai đa thức Deconv(a,b) Chia hai đa thức a + b Tổng hai đa thức a – b Hiệu hai đa thức roots(a) nghiệm của đa thức f được biểu diễn bởi vecto a. poly(r) Trả về các hệ số của đa thức có nghiệm là vecto r. Lưu ý: Khi cộng và trừ các đa thức phải có cùng kích thước. Hàm ĐA THỨC (tt) Thí dụ: Giải phương trình: x4 + 10x3 + 0x - 1 = 0 Giải: Ta biểu diễn đa thức x4 + 10x3 + 0x - 1 bằng một vectơ hàng với các phần tử là các hệ số của đa thức sắp xếp theo thứ tự bậc giảm dần. >> a = [1 10 -2 0 -1]; Nghiệm của đa thức có thể được tính bằng hàm: roots(a) >> R = roots(a) R = -10.1971 0.5291 -0.1660 + 0.3972i -0.1660-0.3972i Hàm ĐA THỨC (tt) Từ các nghiệm của đa thức có thể xây dựng lại đa thức bằng hàm: poly(a); Thí dụ: >>a = poly(R) a = 1.0000 10.0000 -2.0000 0.0000 -1.0000 >>a = [1 2 3 4]; % x3+2x2+3x+4 >>b = [5 6 7 8]; % 5x3+6x2+7x+8 >>Tich = conv(a,b) Tich = 5 16 34 60 61 52 32 Hàm ĐA THỨC (tt) >>Thuong = deconv(a,b) Thuong = 0.2000 >>Tong = a + b Tong = 6 8 10 12 >>Hieu = a – b Hieu = -4 -4 -4 -4 CÁC LỆNH ĐIỀU KIỆN VÀ LẶP Vòng lặp FOR: Cấu trúc: for i = n:m %n = phần tử đầu, m = phần tử cuối end Thí dụ vòng lặp FOR: Tính giai thừa của 100? CÁC LỆNH ĐIỀU KIỆN VÀ LẶP Vòng lặp WHILE: lặp vòng khi biểu thức logic là true. Cấu trúc: while end Thí dụ 1: n=1; while prod(1:n) là true thì được thi hành, nếu không thì thực hiện các lệnh sau end. if else end if elseif … end if end CÁC LỆNH ĐIỀU KIỆN VÀ LẶP Thí dụ 1: if rem(a,2)==0 disp('la mot so chan') b=a/2; End if n case case … otherwise end CÁC LỆNH ĐIỀU KIỆN VÀ LẶP Thí dụ: switch input_num case -1 disp(‘negative one’); case 0 disp(‘zero’); case 1 disp(‘positive one’); otherwise disp(‘other value’); end ĐỒ HỌA CĂN BẢN Tổng quát về đồ họa trong MATLAB MATLAB có các hàm đồ họa để vẽ các đặc tuyến bất kỳ trên mặt phẳng 2D, 3D, cho phép tạo ra đối tượng đồ họa điều khiển được. MATLAB cho phép người lập trình sử dụng “bộ nhớ ảo”, khi đó có thể ghi các biến làm việc thành tập tin *.mat trên đĩa và có thể nạp bộ nhớ khi cần thiết. Nhờ vậy, MATLAB có thể giải được các bài toán lớn và phức tạp. Ngoài ra, MATLAB còn phép quản lý tập tin dữ liệu trong chính môi trường MATLAB mà không cần đến môi trường windows. ĐỒ HỌA CĂN BẢN (tt) Màu sắc và kiểu đường vẽ ĐỒ HỌA CĂN BẢN (tt) ĐỒ HỌA CĂN BẢN (tt) Đồ họa không gian 2 chiều trong MATLAB Lệnh plot: Đồ thị tuyến tính X-Y, vẽ trong mặt phẳng hai chiều. Lệnh fplot: được dùng để vẽ hàm số một cách “thông minh”, nó tự động phân tích hàm phải vẽ và chọn số điểm thích hợp cần phải thể hiện để phản ánh các đặc điểm của hàm. Cú pháp: fplot(‘string’, [xmin,xmax]) Dạng đầy đủ: fplot(‘string’, [xmin xmax ymin ymax] ĐỒ HỌA CĂN BẢN – Plot() (tt) Thí dụ: >>x = linspace(0,2*pi,30); %Tạo mảng x gồm 30 phần tử có giá trị trong khoảng 0 – 2* >>y = sin(x); >>plot(x,y) %vẽ đồ thị hàm y theo x >>xlabel(‘x [0-2*pi]); ylabel(‘y’); %đặt nhãn trục tọa độ x và y >>title(‘y = sin(x)’) % đặt tên đồ thị >>grid on % Tạo lưới cho đồ thị ĐỒ HỌA CĂN BẢN – Plot() (tt) ĐỒ HỌA CĂN BẢN – Plot() (tt) Để vẽ hai đồ thị trên cùng một trục tọa độ >>z = cos(x); >>plot(x,y,’b-*’,x,z,’r’) % Vẽ y và z trên cùng đồ thị, y là đường -* màu xanh, z là đường -- màu đỏ >>legend(‘y = sin(x)’,’z=cos(x)’) % chú thích trên đồ thị ĐỒ HỌA CĂN BẢN – Plot() (tt) >>legend(‘y = sin(x)’,’z=cos(x)’) ĐỒ HỌA CĂN BẢN (tt) Để vẽ nhiều hàm trên cùng một đồ thị ta có thể dùng lệnh “hold on” và “hold off” >> t=0:pi/20:2*pi; >> plot(t,sin(t),'-r*') >> hold on >> plot(sin(t-pi/2),'mo') >> plot(sin(t-pi),':bs') >> hold off ĐỒ HỌA CĂN BẢN (tt) Lệnh plot vẽ trong SỐ PHỨC Nếu chỉ cố một đối số, hàm plot(y) sẽ vẽ các giá trị của vector y theo chỉ số 1,2,3, … Nếu y là số thực, hàm plot(y) trong trường hợp này sẽ vẽ phần ảo theo phần thực tương ứng, nghĩa là tương đương với plot(real(y),imag(y)) ĐỒ HỌA CĂN BẢN (tt) Thí dụ: >> x = .1+.9i; >> u = [0:0.01:10]; >> plot(x.^u),xlabel('So thuc'),ylabel('Phan ao') >> title('Do thi voi doi so phuc tap trong ham SO PHUC') ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh fplot trong số phức: >> f='cos(tan(x))-tan(sin(x))'; >> fplot(f,[1 2]) ĐỒ HỌA CĂN BẢN (tt) Các lệnh vẽ trong các tọa độ đặc biệt Polar(t,r): vẽ đồ thị trong 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 cả 2 trục tọa độ Plotyy(x,y,’function’): Vẽ đồ thị với 2 trục y theo kiểu vẽ được chọn trong function. Trong đó function nhận các giá trị plot, semilogy, semilogx… Plot3(x,y,z): vẽ đường trong không gian 3 chiều. Subplot(m,n,p): Chia cửa sổ figure ra nhiều ô, m ô theo chiều đứng, n ô theo chiều ngang, vẽ đồ thị trong ô thứ p. ĐỒ HỌA CĂN BẢN (tt) Thí dụ: Lệnh polar(t,r): Vẽ đồ thị góc t (radian) trong tọa độ cực theo bán kính r. Lệnh polar(t,r,’linestype’): Vẽ góc t với đường vẽ và nét xác định ‘linestype’. >>t = 0:.1:2*pi; >>polar(t,sin(2*t)) >>polar(t,sin(2*t),'m-') ĐỒ 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'); ĐỒ HỌA CĂN BẢN (tt) Thí dụ lệnh loglog(x,y) >> x = logspace(-1,2); >> loglog(x,exp(x)) ĐỒ 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() ĐỒ 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 ĐỒ HỌA CĂN BẢN (tt) Các lệnh vẽ liên quan đến SỐ PHỨC quiver(x,y): vẽ các vector xuất phát từ các vị trí khác nhau. fearther(x,y): Vẽ các vector xuất phát từ trục x. compass(x,y): Vẽ các vector từ một điểm gốc trong hệ tọa độ cực. rose(x) Thí dụ-Lệnh quiver Giả sử ta có một trường vector như sau trong không gian R2: P(x,y) = , Q(x,y) = , thử vẽ hình ảnh của trường trong phạm vi x thuộc [1,5] và y thuộc [1,5]. Trước hết ta viết một sript file (lưu file này với tên Quiver.m) như sau: Thí dụ-Lệnh quiver (tt) Sau đó, ta chạy file sript này(Gõ tên file này trong cửa sổ lệnh->Enter), ta được hình ảnh sau: ĐỒ HỌA CĂN BẢN (tt) Các lệnh thao tác và điều khiển ĐỒ HỌA CĂN BẢN (tt) CÁC LỆNH VĂN BẢN TRÊN MÀN HÌNH ĐỒ HỌA title(‘text’,’property 1’,’property 2’,…): Tiêu đề cho đồ thị xlabel(‘text’,’property 1’,’property 2’,…): Nhãn trục hoành độ ylabel(‘text’,’property 1’,’property 2’,…): Nhãn trục tung độ text(x,y,z,‘chuỗi ‘): Văn bản ở bất kỳ vị trí nào trên đồ thị. X, Y là tọa độ tâm bên trái của đồ thị. legend(x,y): Chú thích của đường trên đồ thị gtext(‘C’): Văn bản ở vị trí con trỏ. ĐỒ HỌA CĂN BẢN (tt) ĐỌC DỮ LIỆU TỪ MÀN HÌNH ĐỒ HỌA Lấy tọa độ diểm trên đồ thị, khi một đồ thị được vẽ xong, nếu muốn lấy tọa độ của một số điểm trên đường này, ta sẽ dùng lệnh [x,y] = ginput(n); n là số điểm cần lấy tọa độ. Khi đồ thị hiện ra, ta nhấn phím trái chuột vào các vị trí mong muốn lấy tọa độ trên đồ thị, các hoành độ sẽ được chứa trong vector và tung độ trong vector y. Nếu quan hệ giữa hai đại lượng x, y cần được vẽ bằng các điểm rời rạc, thay vì là đường nối các điểm (x,y) như vẽ hàm, hàm plot sẽ dùng các điểm được đánh dấu (data makers) ĐỒ HỌA CĂN BẢN (tt) Thí dụ, vẽ đồ thị từ số liệu rời rạc bằng cách sử dụng điểm đánh dấu. >> x=[5:18]; >> y=[1,2,3,5,4,5,5,7,8,6,9,11,14,20]; >> plot(x,y,'r s') R: màu đỏ, s: hình vuông ĐỒ HỌA CĂN BẢN (tt) Thí dụ: Nếu muốn nối liền các điểm được đánh dấu này bằng các đoạn thẳng, chúng ta có thể vẽ 2 lần. >>plot(x,y,'r o',x,y) ĐỒ HỌA CĂN BẢN (tt) Ngoài ra trong lệnh plot ta có thể đưa các thông số ‘lineWidth’ để định độ rộng của đường vẽ, thông số ‘MarkerSize’ để định độ lớn (chiều cao) của các điểm được đánh dấu và thông số “Color” để định màu của đồ thị. Thí dụ: >>plot(x,y,’o-’,’LineWidth’,3,’MarkerSize’,8,’Color’,’red’) ĐỒ HỌA CĂN BẢN (tt) Điền tiêu đề cho đồ thị, ta sử dụng lệnh: title(‘text’). Tạo lưới cho đồ thị: grid on Thí dụ: >x=linspace(0,2*pi,30); >>y=sin(x); >>z=cos(x); >>plot(x,y,x,z) >>box off % Sau khi sử dụng lệnh >>axis off >>axis ij >>axis square equal >>axis xy normal ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU Các lệnh vẽ trong tọa độ Đềcac ba chiều plot3: Vẽ đường thẳng và điểm trong không gian 3 chiều Thí dụ: Vẽ đường cong tham số: x =e-0.05tsint y =e-0.05tcost z = t [0,10] ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) Thực hiện >> t = [0:pi/50:10*pi]; >> x = exp(-0.05*t).*sin(t); >> y = exp(-0.05*t).*cos(t); >> z = t; >> plot3(x,y,z),xlabel(‘x’),ylabel(‘y’),zlabel(‘z’) >> zlabel(‘z’),grid; ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) CÁC LỆNH VẼ BIÊN DẠNG (contour) contour: Vẽ các đường đồng mức clabel: Nhãn ĐỒ HỌA TRONG KHÔNG GIAN 3 CHIỀU (tt) CÁC LỆNH TẠO LƯỚI (grid) Meshgrid(x,y) Meshgrid(x,y,z) Cylinder(r,u) [X,Y,Z] = CYLINDER(R,N) forms the unit cylinder based on the generator curve in the vector R. Vector R contains the radius at equally spaced points alo