1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình Matlap Chương 1

28 143 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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 ... 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... fixed point 15 digit scaled fixed point digit floating point 15 digit floating point Best of 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... 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.95 01 0.8 913 0.8 214 0.9 218 0.2 311 0.76 21 0.4447 0.7382 0.6068 0.4565 0. 615 4 0 .17 63 0.4860 0. 018 5

Ngày đăng: 24/12/2015, 15:29

w