Tải bản đầy đủ (.ppt) (192 trang)

Bài giảng điện tử matlab

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.79 MB, 192 trang )

BÀI GIẢNG ĐIỆN TỬ
TIN HỌC ỨNG DỤNG
TRONG KỸ THUẬT ĐỊA CHẤT & DẦU KHÍ
Tác giả : ThS. Đỗ Quang Khánh
ThS. Bùi Tử An
Bộ môn : Khoan & Khai thác dầu khí
Copyright 2007
MATLAB
Copyright 2007
MATLAB
2
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
Copyright 2007
MATLAB
3
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
Copyright 2007
MATLAB
4
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.
Copyright 2007
MATLAB
5
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
Copyright 2007
MATLAB
6
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,…
Copyright 2007
MATLAB
7
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
Copyright 2007
MATLAB
8
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.
Copyright 2007
MATLAB
9
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
Copyright 2007
MATLAB
10
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
Copyright 2007
MATLAB
11
Các khái niệm cơ bản (tt)

Toán tử quan hệ

eq (== ) Bằng

ne ( ~= ) Không bằng

lt (< ) Nhỏ hơn

gt (>) Lớn hơn


le (<= ) Nhỏ hơn hoặc bằng

ge (>= ) Lớn hơn hoặc bằng
Copyright 2007
MATLAB
12
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
Copyright 2007
MATLAB
13
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
Copyright 2007
MATLAB
14
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
Copyright 2007
MATLAB
15

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
Copyright 2007
MATLAB
16
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
Copyright 2007
MATLAB
17
Một số biến được định nghĩa trước (tt)
Ý
Copyright 2007
MATLAB
18

Độ 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)
Copyright 2007
MATLAB
19
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
Copyright 2007
MATLAB
20
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.
Copyright 2007
MATLAB
21
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ó.
Copyright 2007
MATLAB
22
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.
Copyright 2007
MATLAB
23
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.
Copyright 2007
MATLAB
24

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.
Copyright 2007
MATLAB
25
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.

×