BÀI GIẢNG ĐIỆN TƯ TIN HỌC ỨNG DỤNG TRONG KỸ THUẬT ĐỊA CHẤT & DẦU KHÍ MATLAB Tác gia : ThS Đỗ Quang Khánh ThS Bùi Tử An Bộ môn : Khoan & Khai thác dầu ©Copyright 2007 MATLAB CĂN BẢN Tổng quan MATLAB Các phép tốn, biểu thức hàm Lập trình MATLAB Đồ họa Cấu trúc chương trình BÀI TẬP ©Copyright 2007 MATLAB CÁC VẤN ĐỀ NÂNG CAO TRONG MATLAB Symbolic MATLAB Ma trận đại số tuyến tính Hàm số phương trình Đồ họa nâng cao Vấn đề tạo giao diện BÀI TẬP ©Copyright 2007 MATLAB TỔNG QUAN VỀ MATLAB MATLAB (Matrix Laboratory) ngôn ngữ thông dịch, cho phép thực nhanh chóng giải thuật, hiển thị liệu (dưới dạng đồ thị 2D, 3D, hình ảnh chí chuỗi hình ảnh) thực giao tiếp đồ họa dễ dàng Ưu điểm: Cung cấp cơng cụ tính tốn lập trình bậc cao dễ sử dụng, hiệu thân thiện SIMULINK giúp người sử dụng thực tốn mơ hình hóa, mơ máy tính Có tính mở, hàm toolbox không ngừng bổ sung theo phát triển khoa học The Mathworks Ins người sử dụng toàn giới Có cơng cụ trợ giúp phong phú trực tuyến, mạng hay tài liệu dạng pdf ©Copyright 2007 MATLAB Sức mạnh MATLAB Môi trường phát triển: gồm công cụ tiện nghi giúp viết chương trình, sử dụng hàm Matlab file Thư viện hàm toán học Matlab: Các hàm sơ cấp: tổng, sin, tính số phứ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 liệu, lập trình hướng đối tượng… Xử lý đồ họa: Hiển thị liệu dạng đồ họa 2D, 3D, hoạt hình, xử lý ảnh GUI ©Copyright 2007 MATLAB Sức mạnh MATLAB (tt) Thư viện API Matlab: Cho phép liên kết chương trình C Fortran… Các ngơn ngữ khác gọi hàm dll tạo Matlab Các hộp công cụ (Toolbox): Tập hợp hàm Matlab viết sẵn để giải vấn đề thuộc chuyên ngành khác Các toolbox khiến cho Matlab ứ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,… ©Copyright 2007 MATLAB Các khái niệm ban Cửa sổ lệnh Khi chạy chương trình MATLAB, cửa sổ xuất Cửa sổ lịch sử lệnh Cửa sổ không gian làm việc ©Copyright 2007 MATLAB Các khái niệm ban (tt) Hoạt động 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 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 tại) − Cho biết thư mục làm việc Mặc định cài MATLAB701\work (Version 7.01) Workspace (cửa sổ khơng gian làm việc) − ©Copyright 2007 Cho biết biến sử dụng chương trình MATLAB Các khái niệm ban 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 số lệnh quit, exit Thoát Matlab Ctrl+c pause Ngừng tạm thời chương trình edit file.m Gọi chương trình soạn thảo type đọc input Nhập liệu từ bàn phím demo ©Copyright 2007 Dừng chương trình Gọi chương trình demo echo on/off nội dung Tắt mở hiển thị lệnh M-files MATLAB Các khái niệm ban (tt) CÁC TỐ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 ©Copyright 2007 MATLAB 10 TẠO GIAO DIỆN (tt) Lưu thi hành file ©Copyright 2007 MATLAB 178 TẠO GIAO DIỆN (tt) Tạo nút ‘Close’ có chức đóng cửa sổ figure hành: Nhập tiếp nội dung sau vào file giaodien.m % -% Close button closeHndl=uicontrol( 'Style','pushbutton', 'Units','normalized', 'Position',[p1+0.01 p2+0.05 p3-0.025 0.05], 'String','Close', 'Foregroundcolor','b', 'Fontsize',9, 'Callback','close'); Lưu thi hành file ©Copyright 2007 MATLAB 179 TẠO GIAO DIỆN (tt) Vấn đề quan trọng nút chức thi hành công việc tương ứng người sử dụng thao tác Thuộc tính ‘CallBack’ cho phép: thi hành lệnh Matlab dạng chuỗi (bao gồm lệnh gọi hàm, script file, biểu thức toán, …) Sinh viên thử thay lệnh close lệnh khác, chẳng hạn demos quan sát đáp ứng Tạo nút Sphere để vẽ hình cầu 3D: Nhập tiếp nội dung sau vào file giaodien.m ©Copyright 2007 MATLAB 180 TẠO GIAO DIỆN (tt) ©Copyright 2007 MATLAB 181 TẠO GIAO DIỆN (tt) Lưu thi hành file ©Copyright 2007 MATLAB 182 TẠO GIAO DIỆN (tt) Tạo nút Picture để hiển thị ảnh màu: Nhập tiếp nội dung sau vào file giaodien.m % -% Picture button pic=uicontrol( 'Style','pushbutton', 'Units','normalized', 'Position',[p1+0.01 p4-0.125 p3-0.025 0.05], 'String','Picture', 'Foregroundcolor','b', 'Fontsize',9, ©Copyright 2007 'Callback',['imshow(imread(''flowers.tif''))']); MATLAB 183 TẠO GIAO DIỆN (tt) Lưu thi hành file ©Copyright 2007 MATLAB 184 TẠO GIAO DIỆN (tt) Sinh viên lưu ý cách biểu diễn nhiều lệnh dạng chuỗi cho ‘CallBack’ Trong trường hợp có nhiều lệnh phục vụ chức này, ta nên đưa chúng vào script file hàm khác Ngoài ra, ta tạo giao diện dạng hàm (function) thuộc tính ‘CallBack’ cho phép gọi hàm viết file ©Copyright 2007 MATLAB 185 TẠO GIAO DIỆN (tt) Sinh viên tạo thêm nút ‘About’ cho người sử dụng ấn nút mở cửa sổ nằm hình ©Copyright 2007 MATLAB 186 BÀI TẬP Cho hai ma trận: A= 0 ;B= Dùng MATLAB để tính biểu thức sau: C = A + B; D = A – B; E = A*B; F = B*A; G = A.*B; H = B.*A; I = A\B; J = A.\B; K = A/B; L = A./B; M = A.^B; N = A^2,0; O = 2,0.^A ©Copyright 2007 MATLAB 187 BÀI TẬP Cho vectơ hàng A = [4 6] B = [1 3] Dùng MATLAB để tính biểu thức sau: C = A+B; D = A – B; E = A*B; F = B*A; Cho ma trận A = [4 6;2 5;1 ] B = [1 0] Dùng MATLAB tính biểu thức sau: C =3*A; D = A*3; E = A.*3; F = 3.^A; G = A/5; H = A./5; I = A\5; J = A.\5 ©Copyright 2007 MATLAB 188 BÀI TẬP Viết chương trình giải phương trình bậc n vẽ đồ thị hàm theo phương pháp nhập biến: nhập gọi hàm nhập câu lệnh input So sanh ưu nhược điểm dùng hai phương pháp Viết chương trình cho phép chọn kiểu vẽ 2D (plot), 3D (mesh) để vẽ đồ thị hàm biến hai biến Người sử dụng phải cung cấp kiểu vẽ, hàm số khoảng giá trị biến cần vẽ Nếu kiểu vẽ 2D hàm hai biến, yêu cầu nhập lai cho Viết chương trình giải phương trình hệ phương trình biến symbolic Người sử dụng chọn lựa giải phương trình giải hệ phương trình Nếu giải hệ phải cung cấp số phương trình ©Copyright 2007 MATLAB 189 BÀI TẬP Viết chương trình tìm đạo hàm tích phân hàm vẽ đồ thị hàm, vi phân, tích phân hàm đồ thị Người sử dụng chọn biến hàm Người sử dụng nhập khoảng giá trị biến cần vẽ không Viết chương trình giải phương trình vi phân Làm lại với biến symbolic ©Copyright 2007 MATLAB 190 BÀI TẬP (tt) Tạo giao diện hình vẽ Nhập thông số a, b, c , d Nhấn ‘Vẽ’, vẽ đồ thị Nhấn ‘Giải nghiệm’, xuất nghiệm x1, x2, x3 Khi chọn ‘PTB2’ d x3 chế độ enable off ©Copyright 2007 MATLAB 191 BÀI TẬP (tt) 10 Tạo giao diện hình Người sử dụng nhập hàm cần vẽ vào edit, sau chọn lực kiểu vẽ, colormap ©Copyright 2007 MATLAB 192 ... toolbox khiến cho Matlab ứ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, … ©Copyright 2007 MATLAB... lệnh Nạp tất 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 biến vào tập tin có tên filename.mat muốn... tả, kết trả rem(x,y) Số dư phép chia x/y sum(v) Tổng phần tử vector prod(v) Tích phần tử vector min(v) Phần tử vector bé max(v) Phần tử vector lớn mean(v) Giá trị trung bình cộng sign(x) Hàm