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 xoá dòng del Ctrl D xoá kí t t i ch nháy đ ng backspace Ctrl H xoá 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 toá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 vuông [ ] 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 xoá 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 đoá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, đ 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 vuông 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 vuông (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 xoá đ 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 đ 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 (l u ct1_20.m) d Đ ho vùng: Hàm area hi n th đ ng cong t o t m t vec t hay t m t c t c a ma tr n Nó v giá tr c a m t c t c a ma tr n thành m t đ ng cong riêng tô đ y vùng không gian gi a đ ng cong tr c x Ví d (l u ct1_21.m): Y = [5 837 968 555 3]; area(Y) hi n th đ th có vùng, m i vùng m t c t Đ cao c a m i đ th vùng t ng ph n t m t hàng M i đ ng cong sau s d ng đ ng cong tr c làm c s Đ hi n th đ ng chia l i ta dùng l nh: set(gca, Layer , top ) set(gca, XTick ,1:5) grid on f Đ th pie :Đ th pie hi n th theo t l ph n trăm c a m t ph n t c a m t vec t hay m t ma tr n so v i t ng ph n t pie pie3 t o đ th 2D 3D Ví d (l u ct1_22.m): X = [19.3 22.1 51.6; 34.2 70.3 82.4; 61.4 82.9 90.8; 50.5 54.9 59.1; 29.4 36.3 47.0]; x = sum(X); explode = zeros(size(x)); [c,offset] = max(x); explode(offset) = 1; h = pie(x,explode) Khi t ng ph n t đ i s th nh t b ng hay l n h n 1, pie pie3 chu n hoá giá tr Nh v y cho vec t x, m i ph n có di n tích xi / sum( xi ) v i xi m t ph n t c a x Giá tr đ c chu n hoá mô t ph n nguyên c a m i vùng Khi t ng ph n t đ i s th nh t nh h n 1, pie pie3 không chu n hoá ph n t c a vec t x Chúng v m t ph n pie Ví d : 21 x = [.19 22 41]; pie(x) g Làm hình chuy n đ ng: Ta có th t o hình chuy n đ ng b ng cách • t o l u nhi u hình khác l n l t hi n th chúng • v xoá liên t c m t đ i t ng hình,m i l n v l i có s thay đ i V i cách th nh t ta th c hi n hình chuy n đ ng qua b c: • dùng hàm moviein đ dành b nh cho m t ma tr n đ l n nh m l u khung hình • dùng hàm getframes đ t o khung hình • dùng hàm movie đ hi n th khung hình Sau ví d s d ng movie đ quan sát hàm fft(eye(n)).Ta t o hàm ct1_23.m nh sau : axis equal M = moviein(16,gcf); set(gca, NextPlot , replacechildren ) h = uicontrol( style , slider , position ,[100 10 500 20], Min ,1, Max ,16) for j = 1:16 plot(fft(eye(j + 16))) set(h, Value ,j) M(:,j) = getframe(gcf); end clf; axes( Position ,[0 1]); movie(M,30) B c đ u tiên đ t o hình nh chuy n đ ng kh i gán ma tr n Tuy nhiên tr c g i hàm moviein, ta c n t o tr c to đ có kích th c v i kích th c mà ta mu n hi n th hình Do ví d ta hi n th s li u cách đ u vòng tròn đ n v nên ta dùng l nh axis equal đ xác đ nh t l tr c Hàm moviein t o ma tr n đ l n đ ch a 16 khung hình Phát bi u : set(gca, NextPlot , replacechildren ) ngăn hàm plot đ a t l tr c v axis normal m i đ c g i Hàm getframe không đ i s tr l i m nh c a tr c hi n hành hình hi n có M i khung hình g m s li u m t vec t c t Hàm getframe(gcf) ch p toàn b ph n c a m t c a s hi n hành Sau t o hình nh ta có th ch y chúng m t s l n nh t đ nh ví d 30 l n nh hàm movie(M,30) 22 M t ph ng pháp n a đ t o hình chuy n đ ng v xoá, nghĩa v m t đ i t ng đ ho r i thay đ i v trí c a b ng cách thay đ i to đ x,y z m t l ng nh nh m t vòng l p Ta có th t o hi u ng khác nh cách xoá hình khác Chúng g m: • none MATLAB không xoá đ i t ng di chuy n • background MATLAB xoá đ i t ng b ng cách v có màu n n • xor MATLAB ch xoá đ i t ng Ví d : Ta t o M file có tên ct1_24.m nh sau : A = [ 8/3 0; 10 10; 28 ]; y = [35 10 7] ; h = 0.01; p = plot3(y(1),y(2),y(3), , EraseMode , none , MarkerSize ,5); % dat EraseMode ve none axis([0 50 25 25 25 25]) hold on for i = 1:4000 A(1,3) = y(2); A(3,1) = y(2); ydot = A*y; y = y + h*ydot; set(p, XData ,y(1), YData ,y(2), ZData ,y(3)) % thay doi toa drawnow i = i + 1; end 12 Đ ho 3D: a.Các l nh c b n: L nh mesh surf t o m t 3D t ma tr n s li u G i ma tr n s li u z mà m i ph n t c a z(i,j) xác đ nh tung đ c a m t mesh(z) t o m t l i có màu th hi n m t z surf(z) t o m t m t có màu z b Đ th hàm hai bi n: B c th nh t đ th hi n hàm bi n z=f(x,y) t o ma tr n x y ch a to đ mi n xác đ nh c a hàm Hàm meshgrid s bi n đ i vùng xác đ nh b i vec t x y thành ma tr n x y Sau ta dùng ma tr n đ đánh giá hàm Ví d : Ta kh o sát hàm sin(r)/r Đ tính hàm kho ng theo x y ta ch c n chuy n m t vec t đ i s cho meshgrid : 23 [x,y] = meshgrid( 8:.5:8); r = sqrt(x.^2 + y.^2) + 0.005; ma tr n r ch a kho ng cách t tâm c a ma tr n Ti p theo ta dùng hàm mesh đ v hàm z = sin(r)./r; mesh(z) (l u ct1_25.m) c.Đ th đ ng đ ng m c: Các hàm contour t o, hi n th ghi đ ng đ ng m c c a m t hay nhi u ma tr n Chúng g m: clabel t o nhãn s d ng ma tr n contour hi n th nhãn contour hi n th đ ng đ ng m c t o b i m t giá tr cho tr c c a ma tr n Z contour3 hi n th m t đ ng m c t o b i m t giá tr cho tr c c a ma tr n Z contourf hi n th đ th contour 2D tô màu vùng gi a đ ng contourc hàm c p th p đ tính ma tr n contour Hàm meshc hi n th contour l i surfc hi n th m t contour Ví d : [X,Y,Z] = peaks; contour(X,Y,Z,20) M i contour có m t giá tr g n v i Hàm clabel dùng giá tr đ hi n th nhãn đ ng đ ng m c 2D Ma tr n contour ch a giá tr clabel dùng cho đ ng contour 2D Ma tr n đ c xác đ nh b i contour,contour3 contourf Ví d : Đ hi n th 10 đ ng đ ng m c c a hàm peak ta vi t : Z = peaks; [C,h] = contour(Z,10); clabel(C,h) title({ Cac contour co nhan , clabel(C,h) }) (l u ct1_26.m) Hàm contourf hi n th đ th đ ng đ ng m c m t m t ph ng tô màu vùng l i gi a đ ng đ ng m c Đ ki m soát màu tô ta dùng hàm caxis Ví d (l u ct1_27.m): Z = peaks; [C,h] = contourf(Z,10); caxis([ 20 20]) title({ Contour co to mau , contourf(Z,10) }) 24 Các hàm contour(z,n) contour(z,v) cho phép ta ch rõ s l ng m c contour hay m t m c contour c n v v i z ma tr n s li u, n s đ ng contour v vec t 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 vec t m t ph n t mô t m t contour đ n m t m c hàm contour s coi s l ng đ ng contour ch không ph i m c contour Nh v y,contour(z,v) nh contour(z,n) Đ hi n th m t đ ng đ ng m c ta c n cho v m t vec t có ph n t v i c hai ph n t b ng m c mong mu n.V í d đ t o m t đ ng đ ng m c 3D c a hàm peaks Ví d (l u ct1_28.m): xrange = 3:.125:3; yrange = xrange; [X,Y] = meshgrid(xrange,yrange); Z = peaks(X,Y); contour3(X,Y,Z) Đ hi n th m t m c Z = 1, ta cho v [1 1] v = [1 1] contour3(X,Y,Z,v) Hàm ginput cho phép ta dùng chu t hay phím mũi tên đ ch n m v Nó tr v to đ c a v trí tr Ví d sau s minh ho dùng hàm ginput hàm spline đ t o đ ng cong n i suy hai bi n Ví d : Ta t o m t M file có tên ct1_29.m nh sau : disp( Chuot phai tro cac diem tren duong ve ) disp( Chuot trai tro diem cuoi cua duong ve ) axis([0 10 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 25 t = 1:n; ts = 1:0.1:n; xs = spline(t,x,ts); ys = spline(t,y,ts); plot(xs,ys, c ); hold off 13 V vect : Có nhi u hàm MATLAB dùng hi n th vec t có h ng vec t v n t c Ta đ nh nghĩa m t vec t bàng cách dùng m t hay đ i s Các đ i s mô t thành ph n x thành ph n y c a vec t N u ta dùng đ i s đ i s th nh t s mô t thành ph n x đ i s th mô t thành ph n y N u ta ch dùng m t đ i s MATLAB x lí nh m t s ph c, ph n th c thành ph n x ph n o thành ph n y Các hàm v vec t g m: compass v véc t b t đ u t g c to đ c a h to đ c c feather v vec t b t đ u t m t đ ng th ng quiver v vec t 2D có thành ph n (u, v) quiver3 v vec t 3D có thành ph n (u, v, w) a Hàm compass: Ta xét ví d v h ng t c đ gió Các vec t xác đ nh h ng (góc tính b ng đ ) t c đ gió (km/h) là: hg = [45 90 90 45 360 335 360 270 335 270 335 335]; td = [6 9 10 14 12]; Ta bi n đ i h ng gió thành radian tr c bi n đ i thành to đ vuông góc hg1 = hg * pi/180; [x,y] = pol2cart(hg1,td); compass(x,y) t o ghi đ th : gc = { Huong gio suc gio tai san bay Da Nang ) text(–28,15,gc) (l u ct1_30.m) b Hàm feather: Hàm feather hi n th vec t b t đ u t m t đ ng th ng song song v i tr c x Ví d đ t o vec t có góc t 900 đ n 00 đ dài ta có: theta = 90:–10:0; r = ones(size(theta)); 26 tr c v , chuy n s li u sang to đ vuông góc tăng đ l n thành r đ d nhìn(l u c1_31.m): [u,v] = pol2cart(theta*pi/180,r*10); feather(u,v) axis equal N u đ i s s ph c z feather coi ph n th c x ph n o y (l u ct1_32.m): t = 0:0.3:10; s = 0.05 + i; Z = exp(–s*t); feather(Z) c Hàm quiver: Hàm quiver hi n th vec t m cho m t ph ng Các vec t đ c xác đ nh b ng thành ph n x y Ví d đ t o 10 contour c a hàm peaks ta vi t(l u ct1_33.m): n = –2.0:.2:2.0; [X,Y,Z] = peaks(n); contour(X,Y,Z,10) Bây gi dùng hàm gradient đ t o thành ph n c a vec t dùng làm đ i s cho quiver: [U,V] = gradient(Z,.2); Đ t hold on đ thêm đ ng contour: hold on quiver(X,Y,U,V) hold off d Hàm quiver3: Hàm quiver3 hi n th vec t có thành ph n (u,v,w) t i m (x, y, z) Ví d ta bi u di n qu đ o c a m t v t đ c ném theo t Ph ng trình c a chuy n đ ng là: at z( t) = v t + Tr c h t ta gán v n t c ban đ u gia t c a: v0 = 10; % Van toc ban dau a = –32; % gia toc Ti p theo tính z t i th i m: t = 0:.1:1; z = vz*t + 1/2*a*t.^2; Tính v trí theo h ng x y: vx = 2; 27 x = vx*t; vy = 3; y = vy*t; Tính thành ph n c a vec t v n t c hi n th b ng dùng quiver3: u = gradient(x); v = gradient(y); w = gradient(z); scale = 0; quiver3(x,y,z,u,v,w,scale) axis square (l u ct1_34.m) 28 [...]... c n gi i h ph ng trình : y& 1 = y1 − αy1 y 2 y& 2 = − y 2 + βy1 y 2 Ta t o ra M file tên là ct1_6.m function yp = lotka(t,y) global alpha beta yp = [y (1) alpha*y (1) *y(2); y(2) + beta*y (1) *y(2)]; và sau đó t dòng l nh ta nh p các l nh sau : global alpha beta alpha = 0. 01; beta = 0.02; [t,y] = ode23(‘ct1_6’,[0 10 ], [1 1]); plot(t,y) Đ ti n d ng ta có th l u đo n l nh trên vào M file ct1_7.m M t bi n có... n a = [1 2 3]; disp(a) t = Xin chao ; disp(t) format đi u khi n khuôn d ng s L nh format format short format long format short e format long e format short g K t qu Default Same as short 5 digit scaled fixed point 15 digit scaled fixed point 5 digit floating point 15 digit floating point Best of 5 digit fixed or floating Ví d 3 .14 16 3 .14 159265358979 3 .14 16e+00 3 .14 1592653589793e+00 3 .14 16 11 format... ra M file có tên là ct1_24.m nh sau : A = [ 8/3 0 0; 0 10 10 ; 0 28 1 ]; y = [35 10 7] ; h = 0. 01; p = plot3(y (1) ,y(2),y(3), , EraseMode , none , MarkerSize ,5); % dat EraseMode ve none axis([0 50 25 25 25 25]) hold on for i = 1: 4000 A (1, 3) = y(2); A(3 ,1) = y(2); ydot = A*y; y = y + h*ydot; set(p, XData ,y (1) , YData ,y(2), ZData ,y(3)) % thay doi toa do drawnow i = i + 1; end 12 Đ ho 3D: a.Các l nh... o m t M file có tên ct1_29.m nh sau : disp( Chuot phai tro cac diem tren duong ve ) disp( Chuot trai tro diem cuoi cua duong ve ) 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 25 t = 1: n; ts = 1: 0 .1: n; xs = spline(t,x,ts); ys = spline(t,y,ts); plot(xs,ys, c ); hold off 13 V các vect : Có nhi... đây là ví d s d ng movie đ quan sát hàm fft(eye(n)).Ta t o hàm ct1_23.m nh sau : axis equal M = moviein (16 ,gcf); set(gca, NextPlot , replacechildren ) h = uicontrol( style , slider , position , [10 0 10 500 20], Min ,1, Max ,16 ) for j = 1: 16 plot(fft(eye(j + 16 ))) set(h, Value ,j) M(:,j) = getframe(gcf); end clf; axes( Position ,[0 0 1 1]); movie(M,30) B c đ u tiên đ t o hình nh chuy n đ ng là kh i gán... loose Best of 15 digit fixed or floating Hexadecimal Fixed dollars and cents Ratio of small integers +, , blank 3 .14 159265358979 400921fb54442d18 3 .14 355 /11 3 + Suppresses excess line feeds Adds line feeds input nh p d li u x = input( Cho tri cua bien x : ) Cho tri cua bien x :4 x= 4 4 Các hàm toán h c c b n: exp(x) hàm e x sqrt(x) căn b c hai c a x log(x) logarit t nhiên log10(x) logarit c s 10 abs(x)... inline( 1. /((x 0.3).^2+0. 01) +1. /((x 0.9).^2+0.04) 6 ); x = fminbnd(f,0.3 ,1) x= 0.6370 Hàm fminsearch t ng t hàm fminbnd dùng đ tìm c c ti u đ a ph ng c a hàm nhi u bi n Ví d : Ta có hàm three_var.m: function b = three_var(v) x = v (1) ; y = v(2); 13 z = v(3); b = x.^2 + 2.5*sin(y) z^2*x^2*y^2; và bây gi tìm c c ti u đ i v i hàm này b t đ u t x = 0.6 , y = 1. 2 và z = 0 .13 5 v = [ 0.6 1. 2 0 .13 5]; a = fminsearch(... = [ 0.6 1. 2 0 .13 5]; a = fminsearch( three_var ,v) a= 0.0000 1. 5708 0 .18 03 d Tìm đi m zero: Hàm fzero dùng đ tìm đi m zero c a hàm m t bi n Ví d đ tìm giá tr không c a hàm lân c n giá tr 0.2 ta vi t : f = inline( 1. /((x 0.3).^2+0. 01) +1. /((x 0.9).^2+0.04) 6 ); a = fzero(f, 0.2) Zero found in the interval: [ 0 .10 949, 0.264] a= 0 .13 16 §5 Đ HO 1 Các l nh v : MATLAB cung c p m t lo t hàm đ v bi u di n các... các tr c to đ Ví d : x = pi: .1: pi; y = sin(x); plot(x,y) xlabel( t = 0 to 2\pi , Fontsize ,16 ) ylabel( sin(t) , Fontsize ,16 ) title( \it{Gia tri cua sin tu zero đ n 2 pi} , Fontsize ,16 ) (l u trong ct1 _16 .m) 9 Thêm văn b n vào đ ho : Ta có th thêm văn b n vào b t kì ch nào trên 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 trên hình v... so v i t ng các ph n t pie và pie3 t o ra đ th 2D và 3D Ví d (l u trong ct1_22.m): X = [19 .3 22 .1 51. 6; 34.2 70.3 82.4; 61. 4 82.9 90.8; 50.5 54.9 59 .1; 29.4 36.3 47.0]; x = sum(X); explode = zeros(size(x)); [c,offset] = max(x); explode(offset) = 1; h = pie(x,explode) Khi t ng các ph n t trong đ i s th nh t b ng hay l n h n 1, pie và pie3 chu n hoá các giá tr Nh v y cho vec t x, m i ph n có di n tích