Giáo trình MATLAB cơ bản - Chương 1: MATLAB cơ bản

1. Khởi động MATLAB: MATLAB (Matrix laboratory) là phần mềm dùng để

giải một loạt các bài toán kĩ thuật, đặc biệt là các bài toán liên quan đến ma

trận.MATLAB cung cấp các toolboxes, tức các hàm mở rộng môi trường MATLAB

để giải quyết các vấn đề đặc biệt như xử lí tín hiệu số, hệ thống điều khiển,mạng

neuron, fuzzy logic, mô phỏng v.v.

Ðể khởi động MATLAB ta nhấn đúp vào icon của nó trên màn hình.

2.Ðánh lệnh trong cửa sổ lệnh : Khi ta đánh lệnh vào cửa sổ lệnh, nó sẽ được

thi hành ngay và kết quả hiện lên màn hình. Nếu ta không muốn cho kết quả hiện

lên màn hình thì sau lệnh ta đặt thêm dấu ­;­. Nếu lệnh quá dài, không vừa một

dòng dòng có thể đánh lệnh trên nhiều dòng và cuối mỗi dòng đặt thêm dấu . rồi

xuống dòng. Khi soạn thảo lệnh ta có thể dùng các phím tắt :

( Ctrl-P gọi lại lệnh trước đó

( Ctrl-N gọi lệnh sau

( Ctrl-B lùi lại một kí tự

( Ctrl-F tiến lên một kí tự

Ctrl-( Ctrl-R sang phải một từ

Ctrl-( Crtl-L sang phải một từ

home Ctrl-A về đầu dòng

end Ctrl-E về cuối dòng

esc Ctrl-U xoá dòng

del Ctrl-D xoá kí tự tại chỗ con nháy đứng

backspace Ctrl-H xoá kí tự trước chỗ con nháy đứng

pdf26 trang | Chuyên mục: MATLAB | Chia sẻ: yen2110 | Lượt xem: 578 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình MATLAB cơ bản - Chương 1: MATLAB cơ bản, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
µm contour(z,n) vµ contour(z,v) cho phÐp ta chØ râ sè l−îng møc contour hay mét møc 
contour cÇn vÏ nµo ®ã víi z lµ ma trËn sè liÖu, n lµ sè ®−êng contour vµ v lµ vec t¬ c¸c møc 
contour. MATLAB kh«ng ph©n biÖt gi÷a ®¹i l−îng vec t¬ mét phÇn tö hay ®¹i l−îng v« 
h−íng. Nh− vËy nÕu v lµ vec t¬ mét phÇn tö m« t¶ mét contour ®¬n ë mét møc hµm contour 
sÏ coi nã lµ sè l−îng ®−êng contour chø kh«ng ph¶i lµ møc contour. Nh− vËy,contour(z,v) 
còng nh− contour(z,n). §Ó hiÓn thÞ mét ®−êng ®¼ng møc ta cÇn cho v lµ mét vec t¬ cã 2 phÇn 
tö víi c¶ hai phÇn tö b»ng møc mong muèn.V Ý dô ®Ó t¹o ra mét ®−êng ®¼ng møc 3D cña 
hµm peaks 
VÝ dô : 
 xrange = -3:.125:3; 
 yrange = xrange; 
 [X,Y] = meshgrid(xrange,yrange); 
21
 Z = peaks(X,Y); 
 contour3(X,Y,Z) 
§Ó hiÓn thÞ mét møc ë Z = 1, ta cho v lµ [1 1] 
 v = [1 1] 
 contour3(X,Y,Z,v) 
Hµm ginput cho phÐp ta dïng chuét hay c¸c phÝm mòi tªn ®Ó chän c¸c ®iÓm vÏ. Nã tr¶ vÒ 
to¹ ®é cña vÞ trÝ con trá. VÝ dô sau sÏ minh ho¹ c¸c dïng hµm ginput vµ hµm spline ®Ó t¹o ra 
®−êng cong néi suy hai biÕn. 
VÝ dô : Ta t¹o mét M-file cã tªn contourm.m nh− sau : 
 disp('Left mouse button picks points') 
 disp('Right mouse button picks last points') 
 axis([0 10 0 10]) 
 hold on 
 x=[]; 
 y=[]; 
 n=0; 
 but=1; 
 while but==1 
 [xi,yi,but]=ginput(1); 
 plot(xi,yi,'go') 
 n=n+1; 
 x(n,1)=xi; 
 y(n,1)=yi; 
 end 
 t=1:n; 
 ts=1:0.1:n; 
 xs=spline(t,x,ts); 
 ys=spline(t,y,ts); 
 plot(xs,ys,'c-'); 
 hold off 
§6. C¸c ph−¬ng tr×nh ®¹i sè tuyÕn tÝnh 
1. HÖ ph−¬ng tr×nh ®Çy ®ñ:Ta xÐt hÖ ph−¬ng tr×nh Ax = B. §Ó t×m nghiÖm cña hÖ ta dïng 
lÖnh MATLAB: 
 x= inv(A)*B 
hay: 
 x = A\B 
2. HÖ ph−¬ng tr×nh cã Ýt ph−¬ng tr×nh h¬n sè Èn(underdetermined): Khi gi¶i hÖ trªn ta 
®· dïng nghÞch ®¶o ma trËn. Nh− vËy ta chØ nhËn ®−îc kÕt qu¶ khi ma trËn A vu«ng(sè 
ph−¬ng tr×nh b»ng sè Èn sè vµ ®Þnh thøc cña A ph¶i kh¸c kh«ng). HÖ cã sè ph−¬ng tr×nh Ýt 
h¬n sè Èn hay ®Þnh thøc cña ma trËn A cña hÖ ®Çy ®ñ b»ng 0 gäi lµ hÖ underdetermined. Mét 
hÖ nh− vËy cã thÓ cã v« sè nghiÖm víi mét hay nhiÒu biÕn phô thuéc vµo c¸c biÕn cßn l¹i. 
Víi mét hÖ nh− vËy ph−¬ng ph¸p Cramer hay ph−¬ng ph¸p ma trËn nghÞch ®¶o kh«ng dïng 
®−îc. Khi sè ph−¬ng tr×nh nhiÒu h¬n sè Èn ph−¬ng ph¸p chia tr¸i còng cho nghiÖm víi mét 
vµi Èn sè ®−îc cho b»ng 0. Mét vÝ dô ®¬n gi¶n lµ ph−¬ng tr×nh x + 3y = 6. Ph−¬ng tr×nh nµy 
cã rÊt nhiÒu nghiÖm trong ®ã cã mét nghiÖm lµ x = 6 vµ y = 0: 
 a = [ 1 3]; 
 b = 6; 
22
 x = a\b 
 x = 
 6 
 0 
Sè nghiÖm v« h¹n cã thÓ tån t¹i ngay c¶ khi sè ph−¬ng tr×nh b»ng sè Èn. §iÒu nµy x¶y ra khi 
| A | = 0. Víi hÖ nµy ta kh«ng dïng ®−îc ph−¬ng ph¸p Cramer vµ ph−¬ng ph¸p ma trËn 
nghÞch ®¶o vµ ph−¬ng ph¸p chia tr¸i cho th«ng b¸o lµ ma trËn A suy biÕn. Trong tr−êng hîp 
nh− vËy ta cã thÓ dïng ph−¬ng ph¸p gi¶ nghÞch ®¶o ®Ó t×m ®−îc mét nghiÖm gäi lµ nghiÖm 
chuÈn minimum. 
VÝ dô: Cho hÖ ph−¬ng tr×nh 
 x + 2y + z = 8 
 0x + y + 0z = 2 
 x + y + z = 6 
Khi dïng phÐp chia tr¸i ta nhËn ®−îc: 
 y=a\b 
 Warning: Matrix is singular to working precision. 
y = 
 Inf 
 Inf 
 Inf 
NÕu ta dïng ph−¬ng ph¸p gi¶ nghÞch ®¶o th× cã: 
 a = [1 2 1;0 1 0;1 1 1] 
b = [8;2;6] 
 x = pinv(a)*b 
 x = 
 2.00000000000000 
 2.00000000000000 
 2.00000000000000 
Mét hÖ còng cã thÓ cã v« sè nghiÖm khi cã ®ñ sè ph−¬ng tr×nh. VÝ dô ta cã hÖ: 
 2x - 4y + 5z = -4 
 -4x -2y +3z = 4 
 2x + 6y -8z = 0 
Trong hÖ nµy ph−¬ng tr×nh thø 3 lµ tæng cña hai ph−¬ng tr×nh trªn nªn hÖ thËt sù chØ cã 2 
ph−¬ng tr×nh. Tãm l¹i mét hÖ muèn cã nghiÖm duy nhÊt ph¶i cã c¸c ph−¬ng tr×nh ®éc lËp. 
ViÖc x¸c ®Þnh c¸c ph−¬ng tr×nh trong hÖ cã ®éc lËp hay kh«ng kh¸ khã, nhÊt lµ ®èi víi hÖ cã 
nhiÒu ph−¬ng tr×nh. Ta ®−a ra mét ph−¬ng ph¸p cho phÐp x¸c ®Þnh hÖ ph−¬ng tr×nh cã 
nghiÖm vµ liÖu nghiÖm ®ã cã duy nhÊt hay kh«ng. Ph−¬ng ph¸p nµy ®ßi hái sù hiÓu biÕt vÒ 
h¹ng cña ma trËn. 
 Ta xem xÐt ®Þnh thøc cña ma trËn sau: 
⎥⎥⎦
⎤
⎢⎢⎣
⎡
−
−
379
2106
143
NÕu ta lo¹i trõ mét hµng vµ mét cét cña ma trËn chóng ta cßn l¹i ma trËn 2×2. Tuú theo hµng 
vµ cét bÞ lo¹i ta cã 9 ma trËn con. §Þnh thøc cña c¸c ma trËn nµy gäi lµ ®Þnh thøc con. VÝ dô 
nÕu ta bá hµng 1 vµ cét 1 ta cã: 
 44
37
210 =− 
23
C¸c ®Þnh thøc con cã thÓ dïng ®Ó x¸c ®Þnh h¹ng cña ma trËn. H¹ng cña ma trËn ®−îc ®Þnh 
nghÜa nh− sau: Mét ma trËn A m×n cã h¹ng r ≥ 1 nÕu vµ chØ nÕu ®Þnh thøc cña A chøa mét 
®Þnh thøc r × r vµ mäi ®Þnh thøc con vu«ng cã r+1 hµng hay h¬n b»ng 0. 
 §Ó x¸c ®Þnh h¹ng cña ma trËn ta cã lÖnh rank 
VÝ dô: 
 a = [ 3 -4 1;6 10 2;9 -7 3]; 
 rank(a) 
 ans = 
 2 
HÖ ph−¬ng tr×nh Ax = B cã m ph−¬ng tr×nh vµ n Èn cã nghiÖm nÕu vµ chØ nÕu rank(A) = 
rank([A B]). Gäi h¹ng cña A lµ r, nÕu r = n th× nghiÖm lµ duy nhÊt. NÕu r<n th× hÖ cã v« sè 
nghiÖm vµ r Èn cã thÓ biÓu diÔn nh− lµ tæ hîp tuyÕn tÝnh cña n-r Èn cßn l¹i mµ gi¸ trÞ cã thÓ 
chän bÊt k×. 
VÝ dô: Gi¶i hÖ ph−¬ng tr×nh 
 3x - 2y + 8z = 48 
 -6x + 5y + z = -12 
 9x + 4y + 2z = 24 
Ta viÕt: 
 a = [ 3 -2 8;-6 5 1;9 4 2]; 
 b = [ 48;-12;24]; 
 rank(a) 
 ans = 
 3 
 rank([a b]) 
 ans = 
 3 
VËy hÖ cã nghiÖm duy nhÊt: 
 x = a\b 
 x = 
 2 
 -1 
 5 
VÝ dô: Gi¶i hÖ 
 2x - 4y + 5z = -4 
 -6x - 2y + 3z = 4 
 2x + 6y - 8z = 0 
Ta viÕt: 
 a = [ 2 -4 5;-6 -2 3;2 6 -8]; 
 b = [ -4;4;0]; 
 rank(a) 
 ans = 
 2 
 rank([a b]) 
 ans = 
 2 
VËy hÖ cã v« sè nghiÖm. Mét trong c¸c nghiÖm lµ: 
x=pinv(a)*b 
x = 
24
 -1.21481481481481 
 0.20740740740741 
 -0.14814814814815 
3. HÖ ph−¬ng tr×nh overdetermined: HÖ ph−¬ng tr×nh trong ®ã sè ph−¬ng tr×nh ®éc lËp 
nhiÒu h¬n sè Èn gäi lµ hÖ overdetermined. §èi víi hÖ nµy ph−¬ng ph¸p Cramer vµ ph−¬ng 
ph¸p nghÞch ®¶o ma trËn kh«ng dïng ®−îc. Tuy nhiªn mét sè hÖ cho nghiÖm ®óng x¸c ®Þnh 
b»ng phÐp chia tr¸i. §èi víi c¸c hÖ kh¸c kh«ng cã nghiÖm chÝnh x¸c. Khi r = rank(a) = 
rank([a b]) hÖ cã nghiÖm vµ nÕu r = n nghiÖm lµ duy nhÊt. Khi rank(a) ≠ rank([a b]) hÖ 
kh«ng cã nghiÖm. 
VÝ dô: Gi¶i m¹ch ®iÖn gåm 3 nh¸nh nèi song song: nh¸nh 1 cã tæng trë Z1 = 5+2j vµ nguån 
e = 100 sin(314t + 300), nh¸nh 2 cã tæng trë Z2 = 3+4j vµ nh¸nh 3 cã tæng trë 5+6j. Ta viÕt 
ph−¬ng tr×nh cña m¹ch ®iÖn theo dßng nh¸nh. Sau ®ã rót ra ma trËn A vµ B. C¸c lÖnh 
MATLAB: 
a = [1 1 1;5+2*i 3+4*i 0;0 -(3+4*i) 5+6*i] 
e =100*exp(i*(30*pi/180)) 
b=[0;e;0]; 
i=a\b 
i = 
 25.25569272231586 +19.27124163998603i 
-15.63482777750950 -11.44276084484129i 
 -9.62086494480636 - 7.82848079514474i 
§7. Néi suy 
1. Néi suy hµm 1 biÕn:MATLAB dïng hµm interp1(x,y,xi,)víi x, lµ gi¸ trÞ 
cña hµm t¹i nh÷ng ®iÓm ®· cho vµ xi lµ gi¸ trÞ mµ t¹i ®ã ta cÇn néi suy ra gi¸ trÞ yi.<ph−¬ng 
ph¸p> cã thÓ lµ mét trong c¸c gi¸ trÞ sau : 
 ‘nearest’- ph−¬ng ph¸p nµy ®Æt gi¸ trÞ néi suy vµo gi¸ trÞ ®· cho gÇn nhÊt, Ph−¬ng 
ph¸p nµy nhanh nh−ng kÕt qu¶ kÐm chÝnh x¸c nhÊt 
VÝ dô : 
 x = [ 1 2 3 4 5 ]; 
 y = [ 5.5 43.1 128 290.7 498.4 ]; 
 yi = interp1(x,y,1.6,'nearest') 
 yi = 
 43.1000 
 ‘linear’- ph−¬ng ph¸p nµy coi ®−êng cong ®i qua 2 ®iÓm cho tr−íc lµ ®−êng th¼ng. 
VÝ dô : 
 yi = interp1(x,y,1.6,'linear') 
 yi = 
 28.0600 
 ‘spline”- dïng ph−¬ng ph¸p néi suy spline 
VÝ dô : 
 yi = interp1(x,y,1.6,'spline') 
 yi = 
 24.9782 
 ‘cubic’- ph−¬ng ph¸p nµy coi ®−êng cong qua 2 ®iÓm lµ ®−êng cong bËc 3 
VÝ dô : 
 yi = interp1(x,y,1.6,'cubic') 
 yi = 
25
 22.3840 
2. Néi suy hµm hai biÕn: Hµm interp2 thùc hiÖn néi suy hµm 2 biÕn. D¹ng hµm tæng qu¸t : 
 ZI = interp2(X,Y,Z,XI,YI,) 
 Z - ma trËn ch÷ nhËt chøa gi¸ trÞ cña hµm 2 biÕn 
 X,Y - m¶ng cã cïng kÝch th−íc,chøa gi¸ trÞ x,y ®· cho 
 XI,YI- m¶ng chøa gi¸ trÞ cÇn néi suy 
C¸c gåm : ‘nearest’,’linear’,’cubic’ 
3. Néi suy m¶ng nhiÒu chiÒu: 
 interp3 néi suy hµm 3 biÕn 
 interpn néi suy hµm nhiÒu biÕn 
§8. TÝch ph©n vµ ph−¬ng tr×nh vi ph©n 
1. TÝch ph©n: §Ó tÝnh tÝch ph©n ta dïng hµm quad(tÝnh tÝch ph©n theo ph−¬ng ph¸p 
Simpson) vµ hµm quad8(tÝnh tÝch ph©n b»ng ph−¬ng ph¸p Newton-Cotes). 
VÝ dô : 
 f = inline('1./((x-0.3).^2+0.01)+1./((x-0.9).^2+0.04)-6 '); 
 q = quad(f,0,1) 
 q = 
 29.8583 
 r = quad8(f,0,1) 
 r = 
 29.8583 
VÝ dô 
 y = sin(x) 
 quad(‘sin’,0,pi) 
 ans = 
 2.00001659104794 
 quad8('sin',0,pi) 
 ans = 
 1.99999999999989 
Ta còng cã thÓ dïng ph−¬ng ph¸p h×nh thanh ®Ó tÝnh tÝch ph©n: 
VÝ dô 
 y = sin(x) 
 x = [0:pi/100:pi]]; 
 y=sin(x); 
 trapz(x,y) 
 ans = 
 1.99983550388744 
2. Vi ph©n sè:§Ó tÝnh vi ph©n ta dïng diff 
VÝ dô 
 a = [ 1 4 2 5 7 4 8]; 
 diff(a) 
 ans = 
 3 -2 3 2 -3 4 
3. Ph−¬ng tr×nh vi ph©n: Ph−¬ng tr×nh vi ph©n cÊp cao y(n) = f(t,y,y’, . . , y(n-1)) cã thÓ ®−a vÒ 
hÖ ph−¬ng tr×nh vi ph©n cÊp 1 b»ng c¸ch ®Æt y1 = y ; y2 = y’ , . . , yn = y(n-1). Nh− vËy 
26
)y.,,.y,y,t(fy
....
yy
yy
n21n
32
21
=′
=′
=′
lµ hÖ cã n ph−¬ng tr×nh vi ph©n cÊp 1. 
VÝ dô : 
 y’’’ - 3y” - y’y = 0 víi y(0) = 0 y’(0) = 1 y” = -1 
®−îc biÕn ®æi thµnh 
1233
32
21
yyy3y
yy
yy
+=′
=′
=′
víi ®iÒu kiÖn ®Çu : y1(0) = 0 y2(0) = 1 y3(0) = -1 
§Ó nhËp ph−¬ng tr×nh nµy vµo MATLAB ta dïng M-file f.m nh− sau : 
 function dy = f(t,y); 
 dy = [ y(2) ; y(3) ; 3*y(3)+y(3)*y(1)]; 
vµ gi¶i ph−¬ng tr×nh b»ng lÖnh : 
 [ t , f] = solver (‘file’,tspan,y0) 
víi “file” lµ M-file chøa ODE 
 tspan lµ vec t¬ [ t0 tfinal] xac ®Þnh kho¶ng t×m nghiÖm 
 y0 lµ vec t¬ gi¸ trÞ ®iÒu kiÖn ®Çu. 
 solver lµ c¸ch gi¶i, th−êng dïng ph−¬ng ph¸p Runge-Kutta bËc 2/3(ode23) hay 
4/5(ode45) 
 [ t , y] = ode45[‘f’,[ 0 1],[0 ; 1 ; -1]) 
Mçi hµng trong vec t¬ nghiÖm t−¬ng øng víi mét thêi ®iÓm trong vec t¬ cét t. Nh− vËy trong 
vÝ dô trªn, y(:,1) lµ nghiÖm, y(:,1) lµ ®¹o hµm bËc nhÊt cña nghiÖm vµ y(:,2) lµ ®¹o hµm bËc 
hai cña nghiÖm. 
VÝ dô: T×m dßng qua ®é khi ®ãng m¹ch RC nèi tiÕp vµo nguån mét chiÒu biÕt tÝch sè RC = 
0.1, ®iÖn ¸p nguån lµ 10V vµ ®iÖn ¸p ban ®Çu trªn tô lµ 2V. 
 Ph−¬ng tr×nh cña m¹ch lµ: 
 e(t) = RC C
C u
dt
du + 
Thay sè vµo ta cã: 
 0.1u′ + u = 10 
 u′ = -10u + 100 
Ta cã c¸c lÖnh MATLAB: 
 function uc=rc(t,u) 
 uc=-10*u+100; 
 [t,u]=ode45('rc',[0 4],2); 
 plot(t,u,'-o') 

File đính kèm:

  • pdfgiao_trinh_matlab_co_ban_chuong_1_matlab_co_ban.pdf
Tài liệu liên quan