Bước đầu làm việc với Matlab giới thiệu

Giới thiệu

MATLAB là một bộ chương trình phần mềm lớn dành cho tính tóan kỹ thuật. ta có thể dùng MATLAB để:

• Tính tóan.

• Phát triển thuật tóan.

• Thu thập dữ liệu.

• Mô hình và mô phỏng.

• Phân tích dữ liệu.

• Vẽ đồ thị.

• Giao diện đồ họa.

MATLAB là tên viết tắt từ “MATrix LABoratory”. Như tên của phần mềm cho thấy, phần cốt lõi của phần mềm là dữ liệu được lưu dưới dạng array (ma trận) và các phép tính tóan ma trận, giúp việc tính tóan trong MATLAB nhanh và thuận tiện hơn so với lập trình trong C hay FORTRAN. Đặc biệt, khả năng tính tóan của MATLAB có thể dễ dàng được mở rộng thông qua các bộ toolbox. Toolbox là tập hợp các hàm MATLAB (M-file) giúp giải quyết một bài tóan cụ thể.

MATLAB gồm 5 phần chính:

• Development Environment: là một bộ các công cụ giúp ta sử dụng các hàm và tập tin của MATLAB. Nó bao gồm: MATLAB desktop, Command Window, a command history, an editor, debugger, browsers for viewing help, the workspace, files, the search path.

• MATLAB Mathematical Function Library: tập hợp các hàm tóan học như sum, sine, số học, v.v.

• MATLAB Language (scritp): ngôn ngữ lập trình bậc cao.

• Graphics: các công cụ giúp hiễn thị dữ liệu dưới dạng đồ thị. Ngòai ra nó còn cho phép xây dựng giao diện đồ họa.

• MATLAB Application Program Interface (API): bộ thư viện cho phép ta sử dụng các hức năng tính tóan của MATLAB trong chương trình C hay FORTRAN.

 

doc20 trang | Chuyên mục: MATLAB | Chia sẻ: yen2110 | Lượt xem: 756 | Lượt tải: 2download
Tóm tắt nội dung Bước đầu làm việc với Matlab giới thiệu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 trợ one-way, two-way, and n-way analysis of variance (ANOVA), analysis of covariance (ANOCOVA), hồi quy (regression).
Hypothesis Tests: hàm cho các kiểm định.
Statistical Plots: hỗ trợ vẽ các đồ thị thống kê.
Design of Experiments (DOE): hỗ trợ việc thiết kế thực nghiệm.
Probability Distributions
normpdf(X,MU,SIGMA) tính giá trị của hàm mật độ tại X cho phân bố Normal có tham số MU và SIGMA. 
R = normrnd(MU,SIGMA,m,n) tạo một ma trận R(m,n) chứa các giá trị ngẫu nhiên có phân bố Normal với tham số MU và SIGMA.
norminv(P,MU,SIGMA) tính giá trị nghịch đảo của xác suất p của hàm phân bố Normal tích lũy với tham số MU và SIGMA.
[muhat,sigmahat,muci,sigmaci] = normfit(DATA, alpha) ước lượng tham MU và SIGMA với độ tin cậy100(1 - alpha) % cho dữ liệu DATA theo phân bố Normal.
Ví dụ:
X là biến ngẫu nhiên nhị thức với n=50, p=0,3. Tìm P(X<=17)
>> p=binocdf(17,50,0.3)
p =
 0.7822
Ví dụ:
Tìm tham số μ=1/λ cho dữ liệu có phân bố hàm số mũ với độ tin cậy là 99%
>>data = exprnd(3, 100, 1);
>>[parmhat, parmci] = expfit(data, 0.01)
parmhat =
 2.7292
parmci =
 2.1384
 3.5854
Descriptive Statistics
mean(x) tính trung bình cho mỗi cột dữ liệu trong X.
var(X) tính phương sai cho mỗi cột dữ liệu trong X.
prctile(X,p) tính số phân vị p% của dữ liệu X. p trong khỏang [0 100]
skewness(X), kurtosis(X) tìm skewness và kurtosis cho mỗi cột dữ liệu của X.
Ví dụ:
>> x=[2 3 4 5];
>> var(x)
ans =
 1.6667
Statistical plotting
boxplot(X) tạo đồ thị box- whisker cho mỗi cột dữ liệu trong X.
normplot(X) vẽ đồ thị phân bố Normal cho mỗi cột dữ liệu trong X.
hist(X) vẽ đồ thị histogram cho dữ liệu X.
pareto(X) vẽ đồ thị Pareto cho dữ liệu X
Ví dụ:
>> boxplot(x)
Hình 4. boxplot
Linear model
p = anova1(X) tính bảng one-way ANOVA để so sánh trung bình của 2 hay nhiều cột dữ liệu trong ma trận mxn X, trong đó các cột chứa mẫu có m quan sat độc lập. Hàm trả lại giá trị p giả thuyết H0.
p = anova2(X,reps) tính two-way ANOVA để so sánh trung bình của 2 hay nhiều cột và 2 hay nhiều hàng các quan sát trong ma trận X. Dữ liệu trong các cột tương ứng với các thay đổi trong yếu tố A, dữ liệu trong hàng tương ứng với thay đổi trong yếu tố B. Nếu có hơn một quan sát trong một tổ hợp ta dùng reps.
Ví dụ:
>>X = meshgrid(1:5);
>>X = X + normrnd(0,1,5,5)
>>X =
 -0.0741 2.7782 2.2129 4.0802 5.7902
 1.2018 1.9937 3.7520 3.0627 5.1053
 1.7629 2.5245 2.8331 4.6357 4.8414
 -0.2882 3.3643 2.1838 5.6820 5.8709
 0.0470 2.4820 5.0941 4.5936 4.8052
>>p = anova1(X)
p =
 4.0889e-007
Ví dụ:
Có 2 yếu tố A và B. A có 3 cấp và B có 2 cấp. Dữ liệu A được xếp theo cột và B theo hàng.
>>pop =[ 5.5000 4.5000 3.5000
 5.5000 4.5000 4.0000
 6.0000 4.0000 3.0000
 6.5000 5.0000 4.0000
 7.0000 5.5000 5.0000
 7.0000 5.0000 4.5000];
>> p = anova2(pop,3)
p =
 0.0000 0.0001 0.7462
Phép so sánh 
a = =b (eq(a,b))- so sánh bằng: so sánh các phần tử của ma trận a và b. Phép so sánh nà trả về một ma trận có giá trị 1 nếu a(i,j)=b(i,j).
a~ =b (ne(a,b))- khác
a<b (lt(a,b))- nhỏ hơn
a<=b (le(a,b) – nhỏ hơn hoặc bằng
a>b (gt(a,b) – lớn hơn
a>=b (ge(a,b))- lớn hơn hoặc bằng.
Phép tính logic
~a (not(a)) cho một ma trận với phần tử là 1 nếu phần tử tương ứng của a là 0 và 0 nếu phần tử tương ứng của khác 0.
a&b (and(a,b)) cho một ma trận có phần tử là 1 nếu phần tử tương ứng của a và b khác 0 và bằng 0 nếu một trong 2 phần tử tương ứng của a,b bằng 0.
a|b (or(a,b) cho một ma trận có phần tử là 1 nếu một trong 2 phần tử tương ứng của a và b khác 0 và bằng 0 nếu cả 2 phần tử tương ứng của a,b bằng 0.
xor(a,b) cho một ma trận có phần tử là 1 nếu chỉ một trong 2 phần tử tương ứng của a và b khác 0 và bằng 0 nếu cả 2 phần tử tương ứng của a,b bằng 0 hay khác không.
Script
Lệnh if
Cú pháp:
if expression
 statements
end
Ý nghĩa: MATLAB đánh giá expression, nếu expression cho giá trị true hay khác không, MATLAB sẽ thực hiện statement
Cú pháp:
if expression1
 statements1
elseif expression2
 statements2
else
 statements3
end
Ý nghĩa: MATLAB đánh giá expression1, nếu expression1 cho giá trị true hay khác không, MATLAB sẽ thực hiện statement1. Nếu expression1 cho giá trị false và expression2 cho giá trị true sẽ thực hiện statement2.
Lệnh switch
Cú pháp:
switch switch_expr
case case_expr 
statement,...,statement
case {case_expr1,case_expr2,case_expr3,...}
statement,...,statement
...
otherwise
	statement
end 
Loop for
Cú pháp:
for varname=x:y:z
	statement
	statement
end
for varname=[a b c ...]
	statement
	statement
end
trong đó varname phải là tên biến. x, y, z có thể là số thực hay biểu thức
Loop while
Cú pháp
while expression
 statements 
end
Ý nghĩa: lập lại statement khi nào expression có tất cả phần tử khác không.
Lệnh continue
chuyển sang bước lặp tiếp theo
Lệnh break
ngừng và thoát ra vòng lặp.
Lệnh return
trở về chương trình đã gọi hàm hay script.
Symbolic Math toolbox
Bộ công cụ bộ sung khả năng giải tóan với các ký hiệu tóan học cho MATLAB. Lõi của bộ công cụ này được phát triễn bởi Maple. Nó cho phép thực hiện các phép tóan sau:
Calculus: đạo hàm, tích phân, giới hạn, chuỗi.
Đại số tuyến tính: nghịch đảo, định thức, giá trị eigen, Inverses, determinants, eigenvalues, singular value decomposition, and canonical forms of symbolic matrices.
Rút gọn: dùng để rút gọn biểu thức.
Giải phương trình: đại số và vi phân
Các hàm đặc biệt: cung cấp các hàm đặcd biệt như beta, bessel, gamma.
Transforms: Fourier, Laplace, z-transform.
Symbolic object
Để dùng được bộ công cụ ta phải định nghĩa một lọai dữ liệu đặc biệt khác với các lọai dữ liệu khác trong MATLAB- đó là symbolic (ký hiệu). Symbolic là một cấu trúc dữ liệu lưu lại chuỗi ký tự đại diện cho ký hiệu tóan học mà ta đang xử lý. ta dùng symbolic để biểu hiện một biến, biểu thức hay ma trận.
Ví dụ: 
>> sqrt(2)
ans =
	1.4142
>>= sqrt(sym(2))
ans=
2^(1/2)
Để khai báo một symbolic trong MATLAB, ta có thể dùng lệnh sym. Lệnh syms dùng để khai báo nhiều symbolic trong một dòng lệnh.
Ví dụ:
>> x=sym('x')
 x =
 x
>>syms a b
>> f=sin(a*x)
f =
sin(a*x)
>> diff(f)
ans =
cos(a*x)*a
Để xác định có bao nhiêu biến symbolic trong một biểu thức ta dùng lệnh findsym
Ví dụ:
>> findsym(f)
ans =
a, x
Để thay thế giá trị vào một một biến symbolic ta dùng lệnh subs
Ví dụ:
>> subs(f,a,2)
ans =
sin(2*x)
>> subs(f,{x,a},{2,5})
ans =
 -0.5440
Calculus
Các hàm cho giải tích
diff: đạo hàm.
int: tích phân.
jacobian: ma trận Jacobian
limit: giới hạn
symsum: tổng của một chuỗi.
taylor: khai triễn chuỗi Taylor.
Ví dụ:
>> int(f)
 ans =
 -1/a*cos(a*x)
>> taylor(f)
ans =
a*x-1/6*a^3*x^3+1/120*a^5*x^5
Rút gọn biểu thức:
collect(f,v): gom đa thức theo biến v.
expand: khai triển đa thức.
factor: phân tích đa thức thành các nhân tử.
horner: phân tích đa thức thành một biểu thức dạn Horner.
numden: phân tích biểu thức thành dạng hữu tỷ.
simple: đơn giản tối đa biểu thức.
simplify: rút gọn biểu thức.
Ví dụ:
>> t=(x-2)^2+(x-2)^3+2
 t =
 (x-2)^2+(x-2)^3+2
 >> collect(t,x)
 ans =
 -2+x^3-5*x^2+8*x
>> expand(t)
 ans =
 -2+x^3-5*x^2+8*x
>> t=x^2 +2*a*x +a^2 ;
 >> factor(t)
 ans =
 (a+x)^2
Đồ thị
Đồ thị 2D
plot(X,Y) vẽ các điểm trong vector Y theo vector X
Ví dụ:
>>x=[1:0.2:20];
>> y=sin(x);
>> plot(x,y)
Hình. Đồ thị tạo ra bởi plot(x,y)
Trong MATLAB đồ thị được tạo trong một window gọi là figure. Khi ta dùng một lệnh vẽ đồ thị, nếu trong MATLAB không có sẵn một figure, một figure mới sẽ được tạo ra. Nếu đã có một hay nhiều figure, thì đồ thị mới sẽ thay thế đồ thị cũ trong figure hiện hữu. Để tránh điều này ta có thể tạo nên một figure (empty) bằng lệnh figure
Ví dụ:
>> figure
Hình. Empty figure
Để vẽ chồng đồ thị (thay vì thay thế) lên một đồ thị có sẵn trong figure ta dùng lệnh hold on. Để bỏ chế độ vẽ chồng, ta dùng tiếp lệnh hold off.
Ví dụ:
>>z=cos(x);
>>hold on
>>plot(x,z)
Hình. Dùng lệnh hold để vẽ chồng đồ thị
Lệnh subplot(m,n,p) hay subplot(mnp) dùng để chia Figure window thành mxn ô đồ thị và chọn ô đồ thị thứ p làm ô hiện hành. Ô được xếp thứ tự theo hàng trên xuống dưới , từ trái sang phải.
Ví dụ:
>> figure
>> subplot(1,2,1)
>>plot(x,y)
>> subplot(1,2,2)
>> plot(x,z)
Hình. Subplot
bar(x,y) vẽ đồ thị cột với dữ liệu trong y theo x. Nếu y là ma trận mxn thì bar sẽ vẽ m nhóm. Mỗi nhóm có n cột. Để vẽ cột nằm ngang ta dùng barh. Để vẽ cột trong 3D dùng bar3 hay bar3h.
Ví dụ: 
>> x=[1 3 6];
>> y=[5 12; 8 10 ; 12 5];
>> bar(x,y)
Hình. Đồ thị bar
hist(y,m) dùng để vẽ đồ thị histogram với dữ liệu trong y và m là số khỏang chia.
errorbar(x,y,e) vẽ đồ thị x,y với dung sai [-e,+e].
Ví dụ:
>> x=[1:0.1:2];
>> y=x.^3-2*x.^2;
>> e=rand(1,length(x));
>> error(x,y,e)
Hình. errorbar
pie(x) dùng để vẽ đồ thị hình bánh
ví dụ:
>> x=[10 25 45];
>> pie(x)
Hình. Đồ thị pie
ezplot(f,[a,b]) vẽ biểu thức f trong khỏang [a,b]
Ví dụ:
>> ezplot('sin(x)/x',[-5,5])
Tùy biến đồ thị
MATLAB cho phép ta thay đổi định dạng của đồ thị như: font chữ, kích thước chữ, kích thước đường, màu sắc, trục đồ thị v.v. Để thay đổi định dạng đồ thị ta có thể:
Dùng menu File/Edit, chọn Figure propertiesđể thay đổi định dạng cho figure window, Axis propertiesđể thay đổi định dạng cho trục, Current Object properties để thay đổi định dạng cho đối tượng hiện hành.
Chọn đối tượng mà ta muốn thay đổ định dạng và nhấn chuột phải để hiện lên menu lựa chọn.
Để thêm các đối tượng như nhãn, văn bản, ghi chú, tiêu đề v.v. ta có thể dùng menu Insert.
Để xuất đồ thị ra các dạng hình ảnh như jpg, gif, ta dùng menu File/Export As
Đồ thị 3D
Ta có vẽ đồ thị 3 chiều dùng các lệnh sau:
plot3: tương tự như plot như có thêm trục z.
mesh: tạo đồ thị 3D dưới dạng lưới (mesh).
surf: tạo bề mặt 3D.

File đính kèm:

  • docbuoc_dau_lam_viec_voi_matlab_gioi_thieu.doc
Tài liệu liên quan