1. Trang chủ
  2. » Giáo án - Bài giảng

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

192 688 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 192
Dung lượng 2,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 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.

Trang 1

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

MATLAB

Trang 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

Trang 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

Trang 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

Trang 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

Trang 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

Trang 9

Các khái niệm cơ bản

 Một số lệnh hệ thống

 help xem phần trợ giúp một số lệnh

 quit, exit Thoát Matlab

 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

Trang 10

Các khái niệm cơ bản (tt)

• 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

Trang 11

Các khái niệm cơ bản (tt)

Trang 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

Trang 13

Các khái niệm cơ bản (tt)

[ ] Dấu ngoặc vuông

Trang 14

Các khái niệm cơ bản (tt)

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

subsindex Chỉ số subscripted

Trang 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ự

Trang 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

Trang 17

Một số biến được định nghĩa trước (tt)

Ý

Trang 19

>>size(A,1) ans = 2

Trang 20

>> b = ‘MATLAB’

b = Matlab

Ta nói, a, b là các biến môi trường.

Trang 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

Trang 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.

Trang 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.

Trang 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.

Trang 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

Trang 26

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

<syms>

Trang 27

>> v = subs(u,{x,y},{3,4})

% Tính giá trị biểu thức khi x = 3; y = 4;

v = 5

Trang 30

− Để sử dụng lại cho phiên làm việc sau; dùng

lệnh <save> (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

Trang 31

BIẾN (tt)

Nạp biến:

Dùng lệnh <load> 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 <Save filename> để

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 <load filename>

 Lưu một vài biến trong cửa sổ workspace

− Lệnh <Save filename var1 var2 …>

 Nói chung cách đơn giản nhất là: Từ cửa sổ

Trang 33

 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

Trang 34

>> 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

Trang 35

Một số hàm toán học thông thường

Any(x) 1 hoặc vecto hàng đơn vị nếu bất kỳ phần tử nào

của vecto hoặc ma trận x khác 0.

All(x) là 1 hoặc vecto hàng đơn vị nếu tất cả các phần tử

nào của vecto hoặc ma trận x khác 0.

Isnan(x) Là một tại những vị trí NaN (Not a Number, Thí dụ

0/0 ) trong x

Isinf(x) Là 1 tại những vị trí Inf ( Infinitive, 1/0 ) trong x.

Finite(x) Là 1 tại những vị trí có giá trị hữu hạn trong x.

Isstr(x) Là 1 nếu x là một string (chuỗi)

Issym(x) Là 1 nếu x là một biến sym

Abs(x) Trị truyệt đối hoặc biên độ số phức

Acos(x) Hàm cosin ngược

Acosh(x) Hyperbolic cosin ngược

Ceil(x) Làm tròn về phía trên

Trang 36

Một số hàm toán học thông thường

cos(x) Hàm cosin

cosh(x) Hyperbol cosin

exp(x) Hàm mũ e x

fix(x) Xấp xỉ không

floor(x) Làm tròn về phía zero

log(x) Hàm logarit tự nhiên

log10(x) Hàm logarit thập phân

round(x) Làm tròn về số nguyên gần nhất

sign(x) Hàm dấu, Thí dụ: sign(1.2) = 1,sign(-23.4) = -1, sign(0)

= 0

sinh(x) Hàm Hyperbol sin

sqrt(x) Căn khai căn bậc hai

gdc(x,y) Bội số chung lớn nhất của hai số nguyên x và y.

lcm(x,y) Bội số chung nhỏ nhất của hai số nguyên x và y.

Trang 37

Một số hàm toán cơ bản

Tên hàm Mô tả, kết quả trả về

rem(x,y) Số dư phép chia x/y

sum(v) Tổng các phần tử vector

prod(v) Tích các phần tử vector

min(v) Phần tử vector bé nhất

max(v) Phần tử vector lớn nhất

mean(v) Giá trị trung bình cộng

sign(x) Hàm dấu (= 1 nếu x>0;

= -1 nếu x<0;

= 0 nếu x=0)

Trang 38

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

Trang 39

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ứcDeconv(a,b) Chia hai đa thức

a + b Tổng 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

Trang 40

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.19710.5291-0.1660 + 0.3972i-0.1660-0.3972i

Trang 42

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

Trang 45

CÁC LỆNH ĐIỀU KIỆN VÀ LẶP

Lệnh if else elseif

Nếu <BT logic> là true thì <Các lệnh> được

thi hành, nếu không thì thực hiện các lệnh sau

… end

if <BT logic>

<Các lệnh>

end

Trang 47

if (rem(nam,4)~=0)

y=28else

y=29end

else

Trang 50

 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.

Trang 51

ĐỒ HỌA CĂN BẢN (tt)

 Màu sắc và kiểu đường vẽ

w White : Dotted line

Trang 52

ĐỒ HỌA CĂN BẢN (tt)

Trang 53

ĐỒ 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])

Trang 54

ĐỒ HỌA CĂN BẢN – Plot() (tt)

>> title(‘y = sin(x)’) % đặt tên đồ thị

>> grid on % Tạo lưới cho đồ thị

Trang 55

ĐỒ HỌA CĂN BẢN – Plot() (tt)

Trang 56

ĐỒ HỌA CĂN BẢN – Plot() (tt)

 Để vẽ hai đồ thị trên cùng một trục tọa độ

Trang 57

ĐỒ HỌA CĂN BẢN – Plot() (tt)

>>legend(‘y = sin(x)’,’z=cos(x)’)

Trang 58

ĐỒ 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”“hold off”

Trang 59

ĐỒ HỌA CĂN BẢN (tt)

 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) )

Trang 60

ĐỒ HỌA CĂN BẢN (tt)

Thí dụ:

>> x = 1+.9i;

Trang 61

ĐỒ 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])

Trang 62

ĐỒ 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.

Trang 65

ĐỒ HỌA CĂN BẢN (tt)

 Thí dụ lệnh loglog(x,y)

>> x = logspace(-1,2);

>> loglog(x,exp(x))

Trang 67

ĐỒ HỌA CĂN BẢN (tt)Thí dụ :

Trang 68

ĐỒ 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)

Trang 69

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:

Trang 70

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:

Trang 71

hold Chuyển từ trạng thái hold là on sang off và ngược lại

hold on Giữ lại tất cả màn hình đã vẽ

hold off Xóa các màn hình đã vẽ chỉ thể hiện màn hình hiện

hành mới (Chế độ mặc định)

grid Grid On/ grid off/ grid: Tạo/ tắt lưới cho đồ thị

Trang 72

ĐỒ 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ỏ

Trang 73

ĐỒ HỌA CĂN BẢN (tt)

 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

Trang 76

ĐỒ 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’)

Trang 77

ĐỒ 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ụ: <<title(‘do thi roi rac dung data marker o’)

Trang 78

ĐỒ HỌA CĂN BẢN (tt)

 Kiến tạo hệ trục tọa độ

Axis([x min x max y min y max ])

Thiết lập các giá trị min, max của hệ trục dùng các giá trị được đưa ra trong vecto hàng.

V= axis V là vector cột có chứa thang chia cho đồ thị hiện tại: [x

min x max y min y max ]

Axis auto trả lại giá trị mặc định thang chia

Axis(‘auto’) Xmin=min(x), xmax = max(x)…

Axismanual Giới hạn thang chia nh thang chia hiện tại

Trang 79

Axissquare Thiết lập đồ thị hiện tại là hình vuông, so với mặc

định là hình chữ nhật.

Axisequal Thiết lập thang chia giống nhau cho cả hai hệ trục

Axis tightequal Tương tự như axisequal nhưng hộp đồ thị vừa đủ

đối với dữ liệu

Axis normal Tắt đi chế độ axis, equal, tight và vis3d

Axis off

Tắt bỏ chế độ nền trục, nhãn, lưới, và hộp, dấu

Thoát khỏi chế độ lệnh title và bất cứ lệnh label nào

Ngày đăng: 03/07/2015, 10:03

HÌNH ẢNH LIÊN QUAN

Hình vuông (square       ) s - Bài giảng điện tử matlab
Hình vu ông (square ) s (Trang 52)
Hình sau (Lưu ý các thuộc - Bài giảng điện tử matlab
Hình sau (Lưu ý các thuộc (Trang 173)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w