Tải bản đầy đủ (.pdf) (82 trang)

bai giang matlab trung tam

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 (2.48 MB, 82 trang )

BÀI GIẢNG
1

GV:ThS. Võ Thiện Lĩnh


Một số vấn đề cần tìm hiểu
2

Giới thiệu Matlab
2. Cơ sở về Matlab
3. Function files và Script files.
4. Đồ họa
5. Tạo giao diện trong Matlab.
6. Simulink.
1.


BÀI 1.GIỚI THIỆU
3






Matlab vừa là một ngôn ngữ lập trình vừa là một phần
mềm ứng dụng tính toán rất hiệu quả.
Matlab - Matrix Laboratory
Matlab là một thương hiệu đã được thương mại hóa của
tập đoàn MathWorks




BÀI 1.GIỚI THIỆU
4

Khả năng và những ứng dụng của Matlab










Thư viện dựng sẵn to lớn rất phong phú nhiều lĩnh vực
Giải quyết các vấn đề một cách số học
Matlab ứng dụng những thuật toán đã kiểm chứng nên kết
quả đáng tin cậy.
Lệnh và hàm sử dụng rất đơn giản.
Có thể xây dựng những hàm riêng cho những ứng dụng
đặc biệt.
Cung cấp thư viện hàm đồ họa rất mạnh.
Cung cấp gói ứng dụng Simulink đầy đủ để mô phỏng.


BÀI 1.GIỚI THIỆU
5


Quản lý không gian làm việc của Matlab

Cửa sổ trợ giúp (Help window)

Nút Start
Cửa sổ nhập lệnh (Command window)

Cửa sổ không gian làm việc (Workspace window)

Cửa sổ quá trình lệnh (Command History window)


Cửa sổ địa chỉ thư mục hiện thời (Current directory
window)


BÀI 2: CƠ SỞ VỀ MATLAB
6

Các biến và hằng số
 Hàm lập sẵn
 Một số ví dụ để làm quen với Matlab
 Vector và ma trận
 So sánh và phép tính logic
 Các lệnh điều khiển chương trình



I. Các biến và hằng số


1.Biến

Tên_biến = giá trị hoặc biểu thức
+ Biến (variable) trong Matlab là 1 kí hiệu được sử dụng để chứa 1 giá
trị. Gồm biến toàn cục(global), biến cục bộ(local).
+ Tên biến (variable name): bắt đầu bằng một chữ cái, tiếp theo là các
chữ cái, chữ số hoặc kí tự gạch chân(_) . Tối đa là 31 kí tự, Matlab
phân biệt rõ chữ hoa chữ thường.
+ Ví dụ : >> x = 5 ;
>> x = x + 3 ;
+ Biến kiểu xâu kí tự ( string )
>> ten='Nguyen Van A'
ten =
Nguyen Van A
Tránh đặt tên biến trùng với tên các hàm chuẩn, hoặc các từ khóa của
Matlab
7


I. Các biến và hằng số

2. Các hằng

8


II. Hàm lập sẵn














sqrt(x) : hàm rút căn bậc hai
exp(x) : hàm e ( e = 2,71828…)
log(x) : hàm lôgarit tự nhiên ( cơ số e )
log10(x): hàm lôgarit cơ số 10
sin(x)/ cos(x) : hàm sin/ hàm cos
tan(x) / cot(x) : hàm tang/ hàm cotang
........
>> help LỆNH
Một số hàm liên quan đến số phức như sau:
abs(z) : lấy mođun (suất) của số phức.
angle(z): lấy góc pha của số phức.
real(x): lấy phần thực.
imag(x) : lấy phần ảo.
conj(x) : trả về số phức liên hiệp của số phức z

9


II. Hàm lập sẵn
Lệnh

clc

1. Một số lệnh

Công dụng
Xóa (lau) cửa sổ lệnh. Mang tính chất hình thức,giá trị các biến
vẫn tồn tại.
clear all
Giải phóng toàn bộ biến ra khỏi bộ nhớ. Xóa Workspace
clear var1 var2 Giải phóng các biến var1 var2 ra khỏi bộ nhớ.
quit
Thoát khỏi chương trình Matlab
who
Liệt kê các biến hiện hành có trong bộ nhớ.
;
Dấu chấm phẩy ; ở cuối dòng lệnh ngăn không cho Matlab hiển
thị các kết quả ra cửa sổ lệnh.

Khi dòng lệnh quá dài cần xuống dòng, dấu 3 chấm … ở cuối
dòng lệnh báo cho Matlab biết dòng lệnh còn tiếp tục ở dòng tiếp
theo.
:
Dấu 2 chấm : được dùng để phát sinh một mảng có các phần tử
cách đều nhau.
%
Dấu phần trăm % Matlab xem những gì sau dấu
% là lời bình
10



II. Hàm lập sẵn

1. Một số lệnh

Lưu phiên làm việc với Matlab
-Lệnh 'diary' sử dụng cho mục đích này.
Thực hiện:
>> diary('diary_file_name')
>> ........ (các câu lệnh của bạn ở đây)
>> diary off

11


II. Hàm lập sẵn










2. Một số ví dụ

>>z = sqrt(25)
>>y=sin(pi/4)
>>round(3.8) = 4, round(3.49) = 3, round(3.5) = 4

>>y = 3^2+1
>>x = y/5, z= y\5
>> rem(10,3)
>>c=clock
>> z = 1 – 2i, abs(z), angle(z)*180/pi,real(z), imag(z)
Giải phương trình bậc 2 trong R : 2x2 + 5x - 3 = 0
12


II. Hàm lập sẵn
Thành lập biểu thức:
>> y=inline('1/x')
y=
Inline function:
y(x) = 1/x
Tính giá trị biểu thức:
>> y1=feval(y,5)
y1 =
0.2
>> y=inline('a/x') % hàm 2 biến
y=
Inline function:
y(a,x) = a/x
>>y=feval(y,1,2)
y=
0.5

2.Một số ví dụ(tt)
% tích phân số bằng pp hình thang
function I=Trapez(f, a, b, n)

h = (b-a)/n ;
% increment
s = feval(f,a) ; % starting value
for i=1:n-1
x(i) = a + i*h ;
s = s+2 * feval (f,x(i)) ;
end
s = s + feval(f,b) ;
I = s*h/2 ;
Nhập ngõ vào:n= số nguyên dương,n
càng lớn tích phân càng chính xác
f = inline (’1/x’)
a = e = 2.7182818
b = 2e
2e

2e

e

e

∫ 1/x dx = ln (x) | = ln (2e) – ln (e) = ln (2)
13


II. Hàm lập sẵn

2.Một số ví dụ(tt)


Thành lập biểu thức:
>>syms x y;
>>S=2*x+3*y;
Tính giá trị biểu thức S với: x=2; y=3
>>u=subs(S,{x,y},{2,3})
>>u= subs(S,x,y^2)
Khai triển và rút gọn:
>>v=x^2+2*x+1
>>a=factor(v),b=expand(a)
>>c=factor(x^4-1), d=simplify(c)
14


II. Hàm lập sẵn

2.Một số ví dụ (tt)

1.Giải phương trình bậc 2 trong R : 2x2 + 5x - 3 = 0
Sử dụng lệnh “solve”
>>solve(‘2*x^2+5*x-3=0');
2.Giải phương trình sau theo ẩn b và c: b2 +8c+2b=0
>>solve('b^2+8*c+2*b=0','c')
>>solve('b^2+8*c+2*b=0',‘b')
3.Giải hệ phương trình sau:
>> [x y] = solve('3*x+y+1', '4*y+2*x-1')
4.Giải hệ phương trình sau:
15


II. Hàm lập sẵn


2.Một số ví dụ (tt)

Tính đạo hàm biểu thức sau: x3 + 2x +5y theo x và y
>> syms x y
>> diff(x^3+2*x+5*y,x)
>> diff(x^3+2*x+5*y,y)
Tính đạo hàm bậc 2 của: sin(xy2) theo x và y
>> diff(sin(x*y^2),x,2)
>> diff(sin(x*y^2),y,2)

16


II. Hàm lập sẵn

2.Một số ví dụ (tt)

Tính tích phân sau:  x n dx
>> syms x y n
>> int(x^n)
>> int(x^n,n) %biến lấy tích phân là n:
b
Tính tích phân sau:  x 2 dx
a
>> syms x a b
>> int(x^2,a,b)
2
2
xy

Tính tích phân sau theo y:  dy
0
>>int(x*y^2,y,0,2)
17

n

 x dn


II. Hàm lập sẵn

2.Một số ví dụ (tt)

Giải phương trình vi phân sau: y’(t) + 4y(t) = e-t
>> y=dsolve('Dy+4*y=exp(-t)')
Giải phương trình vi phân sau: y’(t) + 4y(t) = e-t , y(0)=1
>> y=dsolve('Dy+4*y=exp(-t)','y(0)=1‘)
Giải phương trình vi phân sau: y’’(t) + 4y(t) = e-2t , y(0)=1,
y(pi)=0
>> y=dsolve('D2y+4*y=exp(-2*t)','y(0)=0','y(pi)=0')

18


II. Hàm lập sẵn

3.Vector & ma trận

Mảng: là tập hợp số, ký tự được sắp xếp có thứ tự

• Mảng 1 chiều ( vectơ)
-Vectơ hàng (row array)
>>x=[2,7,0,-3] %cách nhau dấu ‘ , ’ hoặc khoảng trắng.
-Vectơ cột (column array)
>>v=[3;5;6;9] %cách nhau bằng dấu ‘ ; ’
• Mảng 2 chiều( ma trận)
>> A=[2,4,6 ; 3,5,7 ; 4,6,8]
A=
2 4 6
3 5 7
4 6 8
19


II. Hàm lập sẵn

3.Vector & ma trận

Mảng có các phần tử cách đều
Tên_mảng=[ ptử đầu a : gia số : ptử cuối b ];
Tên_mảng=linspace(a,b,n); n là số phần tử của mảng
Tên_mảng=logspace(a,b,n); tăng theo hàm log
Ví dụ:
Hoặc:

>>u= [0:1:10]
>>u= linspace(0,10,11)
20



II. Hàm lập sẵn

3.Vector & ma trận

Tìm nghiệm của đa thức x3 + 6x2 -11x +290
>>a=[1,6,-11,290]; % các hệ số của đa thức.
>>x=roots(a)
Hoặc >>x=roots([1,6,-11,290]);
Đa thức trên có 3 nghiệm là: x1= -10 và x2= 2+5i, x3= 2-5i
Dùng hàm poly() kiểm tra lại ví dụ trên
>>r=[-10,2+5i,2-5i]; % cho trước các nghiệm
>>poly( r )
ans=
1 6 -11 290
Đa thức phải tìm là: x3 + 6x2 -11x +290.
Lưu ý: các hệ số được sắp xếp theo lũy thừa giảm của biến.
21


II. Hàm lập sẵn

3.Vector & ma trận

Tìm ma trận chuyển vị:
>> A=[2,4,6 ; 3,5,7 ; 4,6,8]
A=
2 4 6
3 5 7
4 6 8


Truy xuất 1 phần tử của ma trận

>> b=A’
b=
2
4
6

3
5
7

4
6
8

>> A(2,3)
% truy xuat ptu dong 2 cot 3
>> A(:,2)
% trich vecto cot thu 2
>> A(3,:)
% trich vecto dong thu 3
>> A(:,2:3) % tao ma tran con gom cot 2,3 cua A
>> A(1:2,:) % tao ma tran con gom cac dong 1, 2 cua A
>> A([1 3],[2 3]) % tao 1 ma tran con gom cac ptu dong 1,3 va cot 2,3
22


II. Hàm lập sẵn
Tên hàm

size(A)
length(A)

3.Vector & ma trận
Ý nghĩa

Trả về 1 vectơ dòng [m n] chứa kích thước mảng A có m dòng n cột
A là 1 ma trận , sẽ trả về số lớn nhất trong 2 số m,n

max(A)

+ Nếu A là vectơ sẽ trả về ptử lớn nhất trong A
+ Nếu A là 1 ma trận sẽ trả về 1 vectơ dòng chứa các phần tử lớn nhất
của mỗi cột.

min(A)

Tương tự như hàm max(A) nhưng lựa chọn phần tử bé nhất.

sum(A)

Tính tổng các ptử trong từng cột của ma trận A, kết quả chứa trong 1
vectơ dòng.

sort(A)

Sắp xếp mỗi cột cuả ma trận A theo thứ tự giá trị tăng dần từ dòng 1 đến
dòng cuối , kết quả là 1 ma trận cùng kích thước với A

[x,k] =max(A)


Tương tự max(A) nhưng giá trị các phần tử lớn nhất được lưu trong vectơ
dòng x và các chỉ số tương ứng được lưu trong vectơ dòng k

[x,k] = min(A)

Có ý nghĩa tương tự nhưng trả về các phần tử nhỏ nhất.

[u,v,w]=find(A)

Tìm những phần tử khác 0 của ma trận A. Vectơ u chỉ số dòng , v chỉ số
23
cột của những ptử khác 0, w chỉ chứa các ptử
khác 0 của A


II. Hàm lập sẵn

3.Vector & ma trận

Ví dụ: Cho mảng A=[1 2 -3 4 0 5 -6 ]
>>[u,v,w]=find(A)
>>[u,v,w]=find(A>2)
>>[u,v,w]=find(A<0), b= A(u,v)
>>size(A)
>>length(A)
>>max(A)
>>min(A)
>>sum(A)
>>sort(A)

Tương tự thực hiện các hàm với ma trận:

24


III. Các phép tính về mảng

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×