Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
546,9 KB
Nội dung
CH NG 1: MATLAB C B N §1 KH I Đ NG MATLAB Kh i đ ng MATLAB: MATLAB (Matrix laboratory) ph n m m dùng đ gi i m t lo t toán kĩ thu t, đ c bi t toán liên quan đ n ma tr n MATLAB cung c p toolboxes, t c hàm m r ng môi tr ng MATLAB đ gi i quy t v n đ đ c bi t nh x lí tín hi u s , h th ng u n, m ng neuron, fuzzy logic, mô ph ng v.v Đ kh i đ ng MATLAB ta nh n đúp vào icon c a hình 2.Đánh l nh c a s l nh : Khi ta đánh l nh vào c a s l nh, s đ c thi hành k t qu hi n lên hình N u ta khơng mu n cho k t qu hi n lên hình sau l nh ta đ t thêm d u “;” N u l nh dài, không v a m t dịng dịng có th đánh l nh nhi u dòng 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 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 xố dịng del Ctrl D xố kí t t i ch nháy đ ng backspace Ctrl H xố kí t tr c ch nháy đ ng Set path: Khi ch y ch ng trình MATLAB th m c khác th m c hi n hi n hành ta ph i đ i th m c b ng l nh File | Set Path Help Demo: Ph n giúp hi u bi t hàm, l nh c a MATLAB ch y th ch ng trình demo §2 CÁC MA TR N Các tốn t : MATLAB khơng địi h i ph i khai báo bi n tr MATLAB phân bi t ch hoa ch th ng c dùng Các phép toán : + , , * , / , \ (chia trái) , ^ (mũ) , ‘ (chuy n v hay s ph c liên hi p) x = 2+3 a=5 b=2 a/b a\b Các toán t quan h : < , , >= , == , ~= Các toán t logic : & , | (or) , ~ (not) Các h ng : pi 3.14159265 i s o j t ng t i eps sai s 52 realmin s th c nh nh t 1022 realmax s th c l n nh t 21023 inf vô l n NaN Not a number Các ma tr n: a Nh p ma tr n: Ma tr n m t m ng s li u có m hàng n c t Tr ng h p ma tr n ch có m t ph n t (ma tr n 1) ta có m t s Ma tr n ch có m t c t đ c g i m t vect Ta có th nh p ma tr n vào MATLAB b ng nhi u cách: • nh p m t danh sách ph n t t bàn phím • n p ma tr n t file s li u • t o ma tr n nh hàm có s n MATLAB • t o ma tr n nh hàm t t o Khi nh p ma tr n t bàn phím ta ph i tuân theo quy đ nh sau : • ngăn cách ph n t c a ma tr n b ng d u “,” hay d u tr ng • dùng d u “;” đ k t thúc m t hàng • bao ph n t c a ma tr n b ng c p d u ngo c vng [ ] Ví d : Ta nh p m t ma tr n A = [ 16 13 ; 10 11 ; 12 ; 15 14 1] Bây gi ta đánh l nh: sum(A) ans = 34 34 34 34 nghĩa l y t ng c t MATLAB đ c vi t đ vi c v i c t Khi ta không ch bi n ch a k t qu MATLAB dùng bi n m c đ nh ans, vi t t t c a answer Mu n l y t ng c a hàng ta c n chuy n v ma tr n b ng cách đánh vào l nh: A’ ans = 16 10 15 11 14 13 12 chuy n v c a ma tr n A Ma tr n a = [] ma tr n r ng b Ch s : Ph n t hàng i c t j c a ma tr n có kí hi u A(i,j) Tuy nhiên ta có th tham chi u t i ph n t c a m ng nh m t ch s , ví d A(k) Cách th ng dùng đ tham chi u vec t hàng hay c t Trong tr ng h p ma tr n đ y đ đ c xem ma tr n m t c t dài t o t c t c a ma tr n ban đ u Nh v y vi t A(8) có nghĩa tham chi u ph n t A(4, 2) c Toán t “:” : Toán t “:” m t toán t quan tr ng c a MATLAB Nó xu t hi n nhi u d ng khác Bi u th c 1:10 m t vec t hàng ch a 10 s nguyên t đ n 10 ans = 10 100: 7:50 t o m t dãy s t 100 đ n 51, gi m m i l n ans = 100 93 86 79 72 65 58 51 0: pi/4: pi t o m t dãy s t đ n pi, cách đ u pi/4 ans = 0.7854 1.5708 2.3562 3.1416 Các bi u th c ch s tham chi u t i m t ph n c a ma tr n Vi t A(1:k,j) tham chi u đ n k ph n t đ u tiên c a c t j Ngoài toán t “:” tham chi u t i t t c ph n t c a m t hàng hay m t c t A(:,3) ans = 11 14 A(3, :) ans = 12 Vi t B = A(:, [1 4]) ta t o đ c ma tr n B t ma tr n A b ng cách đ i th t c t t [1 4] thành [ ] B= 16 13 11 10 12 14 15 d T o ma tr n b ng hàm có s n: MATLAB cung c p m t s hàm đ t o ma tr n c b n: zeros t o ma tr n mà ph n t đ u zeros z = zeros(2, 4) z= 0 0 0 0 ones t o ma tr n mà ph n t đ u x = ones(2, 3) x= 1 1 1 y = 5*ones(2, 2) y= 5 5 t o ma tr n mà ph n t ng u nhiên phân b đ u d = rand(4, 4) d= 0.9501 0.8913 0.8214 0.9218 0.2311 0.7621 0.4447 0.7382 0.6068 0.4565 0.6154 0.1763 0.4860 0.0185 0.7919 0.4057 randn t o ma tr n mà ph n t ng u nhiên phân b tr c giao e = randn(3, 3) e= 0.4326 0.2877 1.1892 1.6656 1.1465 0.0376 0.1253 1.1909 0.3273 magic(n) t o ma tr n c p n g m s nguyên t đ n n2 v i t ng hàng b ng t ng c t.n ph i l n h n hay b ng pascal(n) t o ma tr n xác đ nh d ng mà ph n t l y t tam giác Pascal pascal(4) ans = 1 1 10 10 20 rand eye(n) t o ma tr n đ n v eye(3) ans = 0 0 eye(m,n) t o ma tr n đ n v m rông eye(3,4) ans = 0 0 0 0 e L nh load: L nh load dùng đ đ c m t file d li u Vì v y ta có th t o m t file ch a ma tr n n p vào Ví d có file mtran.dat ch a m t ma tr n ta n p ma tr n nh sau: load mtran.dat Khi dùng m t trình so n th o văn b n đ t o ma tr n c n ý : - file ch a ma tr n m t b ng hình ch nh t - m i hàng vi t m t dòng - s ph n t hàng ph i b ng - ph n t ph i cách b ng d u tr ng f M file: M file m t file text ch a mã c a MATLAB Đ t o m t ma tr n ta vi t m t m file cho MATLAB đ c file Ví d ta t o file ct1_1.m nh sau A=[ 3 4 ] n p vào MATLAB b ng cách đánh l nh: ct1_1 g L p ghép: Ta có th l p ghép (concatenation) ma tr n có s n thành m t ma tr n m i Ví d : a = ones(3, 3) a= 1 1 1 1 b = 5*ones(3, 3) b= 5 5 5 5 c = [a+2; b] c= 3 3 3 3 5 5 5 5 h Xoá hàng c t: Ta có th xố hàng c t t ma tr n b ng dùng d u [] Ví d : b= 5 5 5 5 Đ xoá c t th ta vi t: b(:, 2) = [] b= 5 5 5 Vi t x(1:2:5) = [] nghĩa ta xoá ph n t b t đ u t đ n ph n t th cách r i s p x p l i ma tr n Các l nh x lí ma tr n: C ng : X= A + B Tr : X= A B Nhân : X= A * B : X.*A nhân ph n t t ng ng v i Chia : X = A/B lúc X*B = A : X = A\B lúc A*X = B : X=A./B chia ph n t t ng ng v i Lu th a : X = A^2 : X = A.^2 Ngh ch đ o : X = inv(A) Đ nh th c : d = det(A) §3 L P TRÌNH TRONG MATLAB Các phát bi u u ki n if, else, elseif: Cú pháp c a if: if end N u cho k t qu ph n l nh thân c a if đ c th c hi n Các phát bi u else leseif t ng t Ví d : Ta xét ch ng trình ct1_2 m đ đoán tu i nh sau: disp(‘Xin chao! Han hanh duoc lam quen’); x = fix(30*rand); disp(‘Tuoi toi khoang 30’); gu = input(‘Xin nhap tuoi cua ban: ‘); if gu < x disp(‘Ban tre hon toi’); elseif gu > x disp(‘Ban lon hon toi’); else disp(‘Ban bang tuoi toi’); end switch: Cú pháp c a switch nh sau : switch case n1 : case n2 : case nn : otherwise : end While: vòng l p while dùng không bi t tr c s l n l p Cú pháp c a nh sau : while end Ví d : Xét ch ng trình in chuoi “Xin chao” lên mà hình v i s l n nh p t bàn phím (ct1_3.m) nh sau: disp( xin chao ); gu = input( Nhap so lan in: ); i = 0; while i~=gu disp([ Xin chao i]); i = i+1 end For: vòng l p for dùng bi t tr c s l n l p Cú pháp nh sau : for = : : Ví d : Xây d ng ch ng trình đốn s (ct1_4.m) x = fix(100*rand); n = 7; t = 1; for k = 1:7 num = int2str(n); disp([ Ban co quyen du doan ,num, lan ]); disp( So can doan nam khoang 100 ); gu = input( Nhap so ma ban doan: ); if gu < x disp( Ban doan nho hon ); elseif gu>x disp( So ban doan lon hon ); else disp( Ban da doan dung.Xin chuc mung ); t = 0; break; end n = n 1; end if t > disp( Ban khong doan roi ); numx = int2str(x); disp([ Do la so: ,numx]); end Break: phát bi u break đ k t thúc vòng l p for hay while mà không quan tâm đ n u ki n k t thúc vòng l p tho mãn hay ch a §4 CÁC FILE VÀ HÀM Script file: K ch b n M file đ n gi n nh t, khơng có đ i s Nó r t có ích thi hành m t lo t l nh MATLAB theo m t trình t nh t đ nh Ta xét ví d hàm fibno đ t o s Fibonnaci f = [1 1]; i = 1; while(f(i)+f(i+1)) tam giác sang ph i h p ngũ giác Ki u đánh d u m ch th p hình vng m tam giác h ng xu ng tam giác sang trái l c giác 15 Ví d (l u ct1_9.m): x = pi : pi/10 : pi; y = tan(sin(x)) sin(tan(x)); plot(x,y, rs’, LineWidth ,2, MarkerEdgeColor , k , MarkerFaceColor , g , MarkerSize ,10) s v đ ng cong y = f(x) có đ c t sau : đ ng v đ ng đ t nét( ) kh i đánh d u hình vng (s), đ ng v màu đ (r) đ ng v r ng point c nh c a kh i đánh màu đen kh i đánh d u màu green kích th c kh i đánh d u 10 point Thêm đ ng v vào đ th có: Đ làm u ta dùng l nh hold Khi ta đánh l nh hold on MATLAB khơng xố đ th có Nó thêm s li u vào đ th m i N u ph m vi giá tr c a đ th m i v t giá tr c a tr c to đ cũ s đ nh l i t l xích Ch v m s li u: Đ v m đánh d u mà không n i chúng l i v i ta dùng đ c t nói r ng khơng có đ ng n i gi a m ta g i hàm plot ch v i đ c t màu m đánh d u Ví d : x = pi : pi/10 : pi; y = tan(sin(x)) sin(tan(x)); plot(x,y, s , MarkerEdgeColor , k ) (l u ct1_10.m) V m đ ng: Đ v c m đánh d u đ ng n i gi a c n mô t ki u đ ng ki u m Ví d (l u ct1_11.m): x = 0:pi/15:4*pi; y = exp(2*sin(x)); plot(x,y, r ,x,y, ok ) v đ ng cong y = f(x) Đ ng n i li n, màu đ Đi m đánh d u ch o có màu đen V v i hai tr c y: L nh plotyy cho phép t o m t đ th có hai tr c y Ta 16 có th dùng plotyy đ cho giá tr hai tr c y có ki u khác nh m ti n so sánh Ví d : t = 0:900; A = 1000; b = 0.005; a = 0.005; z2 = sin(b*t); z1 = A*exp( a*t); [haxes, hline1, hline2] = plotyy(t,z1,t,z2, semilogy , plot ); (l u ct1_12.m) V đ ng cong v i s li u D: N u x,y,z vec t có đ dài plot3 s v đ ng cong 3D Ví d : t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) axis square; grid on (l u ct1_13.m) 10 Đ t thông s cho tr c: Khi ta t o m t hình v , MATLAB t đ ng ch n gi i h n tr c to đ kho ng cách đánh d u d a s li u dùng đ v Tuy nhiên ta có th mơ t l i ph m vi giá tr tr c kho ng cách đánh d u theo ý riêng Ta có th dùng l nh sau: axis đ t l i giá tr tr c to đ axes t o m t tr c to đ m i v i đ c tính đ c mô t get set cho phép xác đ nh đ t thu c tính c a tr c to đ có gca tr v tr c to đ cũ a Gi i h n c a tr c chia v ch tr c: MATLAB ch n gi i h n tr c to đ kho ng cách đánh d u d a s li u dùng đ v Dùng l nh axis có th đ t l i gi i h n Cú pháp c a l nh: axis[ xmin , xmax , ymin , ymax] Ví d : x = 0:0.025:pi/2; plot(x,tan(x), ro ) 17 axis([0 pi/2 5]) (l u ct1_14.m) MATLAB chia v ch tr c d a ph m vi d li u chia đ u Ta có th mô t cách chia nh thông s xtick ytick b ng m t vec t tăng d n Ví d : x = pi:.1:pi; y = sin(x); plot(x,y) set(gca, xtick , pi:pi/2:p); set(gca, xticklabel ,{ pi , pi/2 , , pi/2 , pi }) (l u ct1_15.m) Ghi nhãn lên tr c to đ : MATLAB cung c p l nh ghi nhãn lên đ ho g m : title thêm nhãn vào đ ho xlabel thêm nhãn vào tr c x ylabel thêm nhãn vào tr c y zlabel thêm nhãn vào tr c z legend thêm gi i vào đ th text hi n th chu i văn b n v trí nh t đ nh gtext đ t văn b n lên đ ho nh chu t \bf bold font \it italics font \sl oblique font (ch nghiêng) \rm normal font Các kí t đ c bi t xem String properties Ta dùng l nh xlabel , ylabel , zlabel đ thêm nhãn vào tr c to đ Ví d : x = pi:.1:pi; y = sin(x); plot(x,y) xlabel( t = to 2\pi , Fontsize ,16) ylabel( sin(t) , Fontsize ,16) title( \it{Gia tri cua sin tu zero đ n pi} , Fontsize ,16) (l u ct1_16.m) Thêm văn b n vào đ ho : Ta có th thêm văn b n vào b t kì ch 18 hình v nh hàm text Ví d : text(3*pi/4,sin(3*pi/4), \leftarrowsin(t)=0.707 , FontSize ,12) 10 Đ nh v văn b n hình v : Ta có th s d ng đ i t ng văn b n đ ghi tr c v trí b t kì MATLAB đ nh v văn b n theo đ n v d li u tr c Ví d đ v hàm y = Aeαt v i A = 0.25 , t = đ n 900 α = 0.005 ta vi t : Ví d (l u ct1_17.m) : t = 0:900; plot(t,0.25*exp( 0.005*t)) Đ thêm ghi t i m t = 300 ta vi t : text(300,.25*exp( 005*300), ’\bullet\leftarrow\fontname{times}0.25{\ite}^( 0.005{\itt}} at, {\itt}=300’, FontSize’,14) Tham s HorizontalAlignment VerticalAlignment đ nh v văn b n so v i to đ x, y, z cho 11 Đ ho đ c bi t: a Kh i vùng: Đ ho kh i vùng bi u di n s li u vec t tr n MATLAB cung c p hàm đ ho kh i vùng : bar hi n th c t c a ma tr n m*n nh m nhóm, m có n bar barh hi n th c t c a ma tr n m*n nh m nhóm, m có n bar n m ngang bar3 hi n th c t c a ma tr n m*n nh m nhóm, m có n bar d ng 3D bar3h hi n th c t c a ma tr n m*n nh m nhóm, m có n bar d ng 3D n m ngang M c đ nh, m i ph n t c a ma tr n đ c bi u di n b ng m t bar Ví d : y = [5 5 5 8]; bar(y) (l u ct_18.m) Sau nh p l nh bar3(y) ta có đ th 3D hay ma i nhóm i nhóm i nhóm i nhóm 19 b Mơ t d li u tr c: Ta dùng hàm xlabel ylabel đ mô t d li u tr c Ví d : nhdo = [29 23 27 25 20 23 23 27]; = 0:5:35; bar(ngay,nhdo) xlabel( ) ylabel( Nhiet (^{o}C) ) (l u ct1_19.m) M c đ nh,ph m vi giá tr c a tr c y t đ n 30 Đ xem nhi t đ kho ng t 15 đ n 30 ta thay đ i ph m vi giá tr c a tr c y set(gca, YLim ,[15 30], Layer , top ) đ th , ph m vi giá tr c a tr c y thay đ i c X p ch ng đ th : Ta có th x p ch ng s li u đ th b ng cách t o m t tr c khác m t v trí nh v y ta có m t tr c y đ c l p v i b s li u khác Ví d : Kh o sát nh p đ sinh h c liên quan đ n m t đ trichloetylene(TCE) cho s li u: TCE = [515 420 370 250 135 120 60 20]; nhdo = [29 23 27 25 20 23 23 27]; = 0:5:35; bar(ngay,nhdo) xlabel( Ngay ) ylabel( Nhiet (^{o}C) ) Đ x p ch ng m t s li u lên m t đ th trên, có tr c th v trí nh tr c th nh t ta vi t : h1 = gca; t o tr c th v trí tr c th nh t tr c nh t v b s li u th h2 = axes( Position ,get(h1, Position )); plot(days,TCE, LineWidth ,3) Đ tr c th không gây tr ng i cho tr c th nh t ta vi t : set(h2, YAxisLocation , right , Color , none , XTickLabel ,[]) set(h2, XLim ,get(h1, XLim ), Layer , top ) Đ ghi lên đ th ta vi t: text(11,380, Mat , Rotation , 55, FontSize ,16) ylabel( TCE Mat (PPM) ) title( Xep chong thi , FontSize ,16) 20 ... file: M file m t file text ch a mã c a MATLAB Đ t o m t ma tr n ta vi t m t m file cho MATLAB đ c file Ví d ta t o file ct1_1.m nh sau A=[ 3 4 ] n p vào MATLAB b ng cách đánh l nh: ct1_1 g L p... hàm ch a mã MATLAB • Các l i gi i thích dùng đ cho ch ng trình sáng rõ Nó đ c đ t sau d u % C n ý tên hàm ph i b t đ u b ng kí t tên v i file ch a hàm T c a s MATLAB ta đánh l nh: z = 1:9 9; tb(z)... chi u ph n t A(4, 2) c Toán t “:” : Toán t “:” m t toán t quan tr ng c a MATLAB Nó xu t hi n nhi u d ng khác Bi u th c 1:1 0 m t vec t hàng ch a 10 s nguyên t đ n 10 ans = 10 100: 7:50 t o m t