intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Matlab - Tin học ứng dụng - Chương 6

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:11

132
lượt xem
33
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo bài giảng Matlab - Tin học ứng dụng ( Nguyễn Bá Tuyên & Nguyễn Quang Chiến ) dành cho sinh viên chuyên ngành kỹ thuật biển gồm 7 chương và phần bài tập - Chương 6 Đồ thị dạng đường

Chủ đề:
Lưu

Nội dung Text: Matlab - Tin học ứng dụng - Chương 6

  1. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n 200 4564 300 3653 400 6798 500 6432 3 lệh sau n >> fid = fopen('table.dat','r'); >> a = fscanf(fid,'%3d%4d'); >> fclose(fid); sẽầ lư t l àm các nhiệ vụ ln ợ m: Mởmộ fi le đ đc, vi ệ này đ ợ ch ỉ ị b ằg ch uỗ ‘ (r là viế tắ t ểọ c ưc đh n n i r’, tt  củ read). Biế fid đ ợ gán cho mộ giá tr ị ằg 1 sốn gu yên t ốdu y a n ưc t bn nhấ đc t rư cho file sẽ ửdụ g (số ày còn gọ là s ố h ỉhịủ f il e). t , ặ ng s n n i c t ca Sau này mỗ kh i nh ắ đn fil e n ày chúng ta sẽ ử ụg số hỉhịid . i cế s dn ctf Đ c vào bộ hớtừ g cặ số ừfi le (fi le có số h ỉ ịà fid ), mộ số ó 3 ọ n n pt c th l tc  chữ ố à mộ số ó 4 chữsố sv tc . Đ file (file có số h ỉ ị fid ). c th là óng  Quá trình này tạ ra mộv éc t ơ ộ ch ứ các phầ tử100 2256 200 4564 ...500 o t ct a n 6432. Véct ơ có thể ư c chu yể đi về a t rậ 5x 2 b ằg lệh: đợ nổ m n nn này  A = reshape(2,2,5)'; .......... (lư c b ớ) .............. (xem thêm Help nế cầ t hi ế .................... ợt un t) 6. CHƯƠNG VI: Đ THỊ Ạ G Đ ỜNG Ồ DN Ư Biể di ễ đ ờ g quá tr ình u n ưn 6.1. Trư ng hợ đn giả n hấ là bi ể di ễ s ựbi ế t h iên tă giả sốl iệ t ro n g mộ ờ pơ n t u n n m u t ng dãy. Chẳg h ạ vớ d ãy số iệ mự n ư c z đ đ ợ t a có t hể iể d iễ d ư i dạg n ni lu c ớ o ưc bu n ớn đờg qu á t rình như ưn sau: z = [- 0.05 0.18 0.28 0.33 0.19 0 - 0.26 - 0.35 -0.31 -0.22 0.05 0.14 0.31 0.38 0.18 0.09 -0.11 -0.20 -0.36 -0.11 0.08];1 plot(z) Lệh p lo t( z) sẽvẽ iể đ dạg đ ờ g v ớ sốli ệ ch o b ở vec-tơz. Trư n g h ợ n b u ồ n ưn i u i ờ p này trụ ho ành sẽ ánh số hứtựl ầ lư t 1 , 2, .. . Đề n ày không giúp ích gì trong c đ t nợ iu trư n g h ợ th ôn g th ư ng kh i tr ụ h oành cầ bi ể th ịho ảg cách k hô ng gi an ho ặ ờ p ờ c n u kn c 1 Chú ý rằ ở ây xuố dòng do hạ chế ề ng đ b ngang củ tài li ệ Khi lậ trình không ấ Enter vì máy s ẽ ng n a u. p n hiể nhầ z thành m ộma tr ậ u m t n. - 44 -
  2. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n thờ gi an. Ch ẳg h ạ, nế sốl iệ z ởví d ụ rên là mự n ư c đ đ ợ tạ các t hờ i n n u u t c ớ o ưc i i đ m 0 s, 1 0 s , 20 s.. . ( cách nh au 1 0 giây ) t hì ta có th ể ổ u ng mã lệh n hưsau: iể bs n figure; t = 0:10:200; plot(t, z); Ởđy l ệh fi gu re có tác d ụg t ạ r a mộh ình mớ. ân n o t i Chú ý: Các vec-t ơ ầ vẽ hư n g có rấn hi ề p hầ t ử và do đ ta c ầ dùng d ấ ; cn tờ t u n, n u ó ở uố câu lệh đ ng ă kh ôn g cho máy hi ệ l ạnộd un g củ to àn bộ ec-t ơ ci nển nii a v . Tóm lạđ vẽ iể đ d ạg đờ g n ói ch un g t a t heo 3 bư c sau : i ể b u ồ n ưn ớ 1) Phát sinh mộv ec-t ơ ứ các t ọ đ x củ các đ m t ch a aộ a iể 2) Phát sinh mộ v ec- tơchứ các t ọ đ y, có t hể à từsố iệ sẵ có , ho ặ l à mộ t a aộ l lu n c t hàm tính từ ác g iá tr ị ơ ứ g củ x . Tron g t rư n g h ợ sau cầ l ư ý phép tính c tư ng n a ờ p nu cầ đợ áp dụg cho t ừg ph ầ t ử ộ n ưc n n n m t. 3) Thự h iệ lệh vẽ l ot (x , y) c nn p Trong các biể đ t a p h ảgh i t iêu đ củ bi ể đ và đ n các đi l ư ng và đ n vị uồ i ềa uồ iề ạợ ơ lên các trụ (x , y ). Có t hểhự h iệ vi ệ này bằg cách : c tc n c n title('Tiêu đ bi ể đ') ềuồ xlabel('Tiêu đ t rụ x ') ềc ylabel('Tiêu đ t rụ y') ềc Chẳg hạ vớ v í d ụ ề ẫ q uan t rắ m ự n ưc t heo t hờ gian như n ni v mu c cớ i trên ta có th ể viế t: title('Qua trinh muc nuoc thuc do') xlabel('t (s)') ylabel('z (m)')2 Kếqu ả i ể đ t hu đ ợ nh ư t buồ ưc trên Hình 1. MatLab t ự ộ g că chỉ p hạ vi củ đn n nh m a trụ t u ng v à trụ h oành sao cho có thểhi ể th ịoàn b ộsốl iệ cầ vẽ Tu y vậ c c n t un. y trong mộ số rư n g hợ ta cầ th ể i ệ từ g p hầ củ b iể đ, ho ặ vì tính thẩ t tờ p n hnn n a uồ c m mỹ à có thể hỉh sử p hạ vi củ các tr ụ. Câu lệh n hưsau: m cn a m a c n 2 Vậ n ế mu ố có V(m3 ) thì sao? Hãy thử yu n V(m^3) xem! - 45 -
  3. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n axis([xmin xmax ymin ymax]) trong đ ó: xmin, xmax l ầ lư t l à giớ h ạ t rái và phảcủ trụ h oành nợ in iac ymin, ymax l ầ l ư t là giớ hạ d ưi v à trên củ t rụ t ung . nợ inớ ac Ta cầ nh ậ cả g iá tr ị ói t rên củ vec-t ơphạ v i t rụ. Chẳg hạ k hi muố n p 4 n a m c n n n biể t hị ự n ư c chỉro ng kh oảg t hờ g ian t ừ = 1 00 s đn t = 1 50 s, và h ạ ch ế u mc ớ t n i t ế n cao đ mặnư c t ừ đn 0 .4 m, t a gõ l ệh: ột ớ 0ế n axis([100 150 0 0.4]) Qua trinh muc nuoc thuc do Qua trinh muc nuoc thuc do 0.4 0.4 0.2 0.3 z (m ) z (m ) 0 0.2 -0.2 0.1 -0.4 0 0 50 100 150 200 100 110 120 130 140 150 t (s) t (s) Hình 1: Ví dụ ề ể đ dạ đờ v bi u ồ ng ư ng Hình 2: Biể đ dạ đờ sau khi chỉ lạ u ồ ng ư ng nh i phạ vi các trụ m c Đ xó a t oàn bộ ồhị iệ th ờ t a gõ lệh: ể đt h n i, n clf 6.2. Lự chọ m àu vẽ nét vẽ a n , Trư ng hợ có nhiề đờ nét vẽ ờ u ư ng khác nhau, ta nên phân biệ bằ nhữ kiể p t ng ng u và màu nét vẽ khác nhau. Nh ữ lự chọ này có ngay trong câu l ệ plot. ng a n nh plot(x, y, 'lự chọ') a n Trong đ l ự chọ là mộchuỗkí tựcó 3 phầ qui đ nh ư ị ó, a n t i n nh sau: md-- vớ m là mộkí tự ỉ ch màu vẽthư ng là chữ ầ củ từtiế Anh tư ng ứ ờ đu a ơ ng i t , ng d là kí hiệ đn h dấ các đ m n út uá u iể -- là mộ hay hai kí tự ể ệ kiể nét v ẽ t th hi n u Ví dụ: - 46 -
  4. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n plot(x, y, 'r') vẽ ồthị vẽ đ màu đ (red). Không có lự chọ kiể nét v ẽ ụ ể ỏ nét a n u c th , do đ máy s ẽ ẽ ể nét liề (mặ đ cị ó v ki u n nh). plot(x, y, 'g--') vẽ ồthị vẽ đ xanh lụ (green). Nét vẽ ư c chọ là ki ể nét đ t đợ ứ nét c n u (--). plot(x, y, 'b*-') vẽ ồ ị vẽ đ th nét xanh lam (blue). Nét vẽ ư c ch ọ là kiể nét liề đợ n u n vớ các đ m dấ sao (* -). iể u i Hình 3: Kiể nét vẽ cùng các thuộ tính khác có thểự ch ọ u c la n trự tiế sau khi chọ chế ộđ Edit Plot và nháy ph ảchu ộ cp n i t vào đờ biể đ ư ng uồ khác nhau, theo bả sau đ 3: Nhưvậ có thểổ ợ các ki ể màu và nét v ẽ y t hp u ng ây Màu v ẽ Nét vẽ Để nút im red, đỏ nét li ề dấ sao r - n * u green, xanh lụ nét đ t ứ dấ c ộ g c -- + u ng nét ch ấ b blue, xanh lam : m s hình vuông black, đ nét ch ấ gạ ^ k en .- m ch tam giác 3 Thự ra ta có th ểự chọ ki ể và nét vẽ ự ti ế trên biể đ c ủ MatLab bằ cách chọ Edit Plot uồa c la nu tr c p ng n (hoặ nút c trên thanh công cụ rồnháy phảchuộvào đờ cầ chỉ và l ự ch ọ Line Style (ki ể đờ Line ưng n nh u ưng), )i i t a n Width (bềộ hoặ Marker (kiể đ m nút) (xem Hình 3). u iể r ng) c - 47 -
  5. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n Theo mặ đ h , khi có m ộđ ờg mớ đ ợ vẽ a t h ì đờ g cũ ẽ i ế mấ Đ vẽ cị n t ưn i ưc r ưn s b n t. ể nhiề đờ g t rên cùng mộ bi ể đ ta cầ gõ l ệh: u ưn t uồ n n hold on trư c k hi v ẽ ác đ ờg ti ế th eo. ớ c ưn p Chẳg hạ ta có t hểh êm mộ đờ g n ét đt n ằ n gan g b iể th ị ự n ư c bằg 0 n n t t ưn ứm u mc ớ n theo cách sau: hold on; plot([0 200],[0 0],':'); Bả th ân t rên đờ g m ự nư c có th ểhêm các đ m dấ *: n ưn cớ t iể u plot(t,z,'*-'); Qua trinh muc nuoc thuc do Qua trinh muc nuoc thuc do 0.4 0.4 0.2 0.2 z (m ) z (m ) 0 0 -0.2 -0.2 -0.4 -0.4 0 50 100 150 200 0 50 100 150 200 t (s) t (s) Hình 4: Bi ể đ dạ đ ờ vớ hai nét vẽ u ồ ng ư ng i Hình 5: Bi ể đ có khung và đ ờ dóng uồ ư ng có kiể khác nhau u Nế mu ố đn g khu n g đ t h ịà tạ các đờ g d ón g ta l ầ l ư t gõ vào các lệh : u nó ồvo ưn nợ n box on grid on Ngư c l ạ đ xó a các đ ờg đng kh un g và đờ g dón g, chỉầ gõ: ợ i, ể ưn ó ưn cn box off grid off 6.3. Tạ cá c c hú thí ch, chú gi ả trên hình vẽ o i Mộ biể đ mặ dù mang nhiề thông tin như đ khi ta vẫ muố làm rõ thêm t uồc u ng ôi n n bằ nh ữ chú thích (thư ng là nh ữ nét vẽđ n giả bằ tay và chú thích ờ ơ ng ng ng n ng bằ chữ Chẳ h ạ vớ ví dụtrên ta muố chỉ trên bi ể đ vị mự n ư c u ồ trí cớ ng ). ng n, i n ra đt cự đi (như ình 6). Cách làm có thể ạcạ theo các bư c sau: ớ H  Vào menu Insert – Ellipse , vẽ ộ vòng tròn vào vị đ trí ỉ c ủ đ ờ quá nh a ư ng mt trình - 48 -
  6. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n Vào menu Insert – Text Box, vạ ra mộ khung chữ ậvà gõ vào z max4  ch t nh t Vào menu Insert – Arrow, vạ mũt ên chỉ khung chữvào vòng tròn từ  ch i Muố xóa các chú thích, chỉầ chọ đi tư ng cầ xóa, ấ Delete. nốợ n cn n n Qua trinh muc nuoc thuc do 0.4 z max 0.2 z (m) 0 -0.2 -0.4 0 50 100 150 200 t (s) Hình 6: Biể đ vớcác chú thích uồi * Chú gi ả(legend): i Khi có nhiề đ ờ bi ể đ trên mộđ thị ầ có chú gi ả(legend) đ phân biệ u ưng u ồ t ồ ,c n ể i t chúng. Giả ử ũ trên đ thị trình mự n ư c ở ồ quá c ớ trên, ta bổ sung thêm mộ s c ng t đờ mự n ư c tính toán đợ từ hình: ư ng cớ ư c mô z2 =[0.05 0.2 0.34 0.38 0.28 0.08 -0.21 - 0.35 -0.23 -0.18 0.11 0.22 0.4 0.45 0.2 0.13 -0.02 - 0.11 -0.32 -0.02 0.09]; hold on; plot(t,z2,'-o'); title('Qua trinh muc nuoc tai N23'); Trên thanh công cụấ nút (hoặ menu Insert – Legend). Sau đ hãy nháy đ ,n c ó úp phầ chú giảmớxuấhiệ gõ vào tên chú giảcầ đt (Hình 7). i nặ n i i t n, 4 Muố có z max, hãy thử z_{max}. Gõ z_max có đợ không, tạ sao? ưc n gõ i - 49 -
  7. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n Hình 7: Chỉ s ử tên chú gi ảtư ng ứ vớcác i ơ ng i nh a đ ờ quá trình ư ng 6.4. Xóa đ ờ g biể đ , l ư biể đ ưn uồ u uồ - N ế vẽ mộ đờ biể đ nào đ ta có thể b ằ cách chọ menu Tools – t ư ng u ồ u sai ó xóa ng n Edit Plot; chọ đ ờ biể đ đ ấ Delete hoặ chọ Delete trong danh mụ khi n ư ng u ồ ó, n c n c nháy phảchuộ trên Hình 3. i t - MatLab có thể ư lạ biể đ chúng ta t ạ ra, dư i dạ nhiề dạ file ả uồ ớ ng lu i o u ng nh chuẩ hiệ nay: *.gif, *.png, *.jpeg, *.emf, *.eps v.v... Bên cạ đ MatLab còn n n nh ó, có mộ dạ file riêng gọ là *.fig, trong đ lư toàn bộthông tin củ các đờ ư ng, t ng i óu a nét, đ m... trên biể đ. Do vậ mà file fig chi tiế hơ đng thờ thư ng có kích iể uồ t nồ ờ y i thư c file lớ ớ n. - Đ lư biể đ trong MatLab ta chọ Menu File – Save, sau đ nhậ tên cho file ểu uồ n ó p hình mà ta muố lư Cũ có th ể ấ vào biể tư ng Save ( ) trên thanh công uợ n u. ng nh n cụ Chú ý chọ kiể file hình (Save as type) thích h ợ . nu p. 6.5. Đ t hị ogarit ồL Trong mộ số ư ng h ợ các đ thị t tr ờ ồ logarit cầ đợ sử ụ ch ẳ hạ biể đ n ư c d ng, uồ p, ng n đờ cấ phốh ạ Mu ố đt thang logarit vớ trụ hoành ta ch ỉầ thay tên lệ ư ng p nặ i t. ic cn nh plot bằ semilogx. ng Chẳ h ạ ta cầ vẽ ư ng cấ phố hạvớ mẫ bùn cát sau: n đờ ng n p itiu Đ ờg kí nh ưn Khốl ư ng iợ (mm) (mg) - 50 -
  8. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n d < 0.15 900 0.15 < d < 0.21 2900 0.21 < d < 0.30 16000 0.30 < d < 0.42 20100 0.42 < d < 0.60 8900 0.60 < d 1200 (Toàn bộ ) 50000 Trư c khi vẽ ồ ị tính t ỉ bùn cát tư ng ứ vớ mỗkhoả đờ kính và ớ đ th hãy lệ ơ ng i i ng ư ng tỉệ ộ d ồ l c ng n: KhoiLuong = [900 2900 16000 20100 8900 1200]; TiLe = KhoiLuong / 50000; Hàm cumsum giúp ta tính cộ d ồ chẳ hạ ng n, ng n: >> cumsum(TiLe) ans = 0.0180 0.0760 0.3960 0.7980 0.9760 1.0000 Ta cầ tính tỉệ theo ph ầ tră cho nên: n lP n m, P = cumsum(TiLe) * 100; Đ ờg kí nh ưn Khố i Tỉệ l T ỉ c ộg lệ n Đ ờ g kí nh ưn lư n g ợ dồ n (mm) (%) d (mm) (mg) P (%) d < 0.15 900 1.8 1.8 0.15 0.15 < d < 0.21 2900 4.8 7.6 0.21 0.21 < d < 0.30 16000 32.0 39.6 0.30 0.30 < d < 0.42 20100 40.2 79.8 0.42 0.42 < d < 0.60 8900 17.8 97.6 0.60 0.60 < d 1200 2.4 100 1 (Toàn bộ ) 50000 100 Sốliệ dùng đ vẽ ồ ị hai c ộsau cùng: tỉ cộ dồ (P) và đ ờ kính (d). ể đ th là lệ ng n ư ng u t Có P (%) khốlư ng bùn cát mị h ơ d (mm). Ởđ đ gi ả ếr ằ đ ờ kính iợ thi t ng ư ng nn ây ã lớ nhấbằ 1 mm như giớ hạ trên củ biể đ. a uồ n t ng là in d = [0.15 0.21 0.30 0.42 0.60 1]; title('Bieu do duong cap phoi hat'); xlabel('d (mm)'); ylabel('P (%)'); semilogx(d,P,'*- '); grid on; box on; - 51 -
  9. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n Bieu do duong cap phoi hat 100 80 60 P (% ) 40 20 0 0 10 d (mm) Hình 8: Ví dụ ớ biể đ có trụ theo thang logarit vi u ồ c Các đ thị ớ thang logarit trên trụ y và trên cả trụ cũ đ ợ thự hiệ tư ng ồ vi 2 c ng ư c c nơ c tự ớ các câu lệ lầ lư t là semilogy và loglog. nh n ợ vi 6.6. Dãy biể đ uồ Bằ lệ figure ta có thểạ ra nhi ề hình vẽ ộ lậ trên nhiề cử sổTuy vậ đc p ng nh to u ua. y, nhiề lúc ta mu ố có mộ dãy (hoặ b ả các biể đ xế kế ế nhau, có kích uồp u n t c ng) ti p thư c bằ nhau đ tiệ việ so sánh. MatLab hỗtrợh ệ ố subplot (biể đ ớ ng ển uồ c th ng nhỏ vớ câu lệ có dạ chung như )i nh ng sau: subplot(m,n ,k); Hình 9: Vị các bi ể đ trong dãy tạ bằ lệ subplot uồ trí o ng nh - 52 -
  10. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n Sẽạ ra mộ bả gồ (m × n) biể đ nhỏ m hàng và n cộ Tiế đ hình thứk uồ to t ng m ( t). pó (tính từtrên xu ố d ư i, trái qua phả s ẽ ư c kích ho ạvà chuẩ bị ư c vẽ ng ớ i) đợ n đợ . t Chẳ h ạ sau khi thự hiệ l ệ ng n, c n nh subplot(2,3,4); ta đ ợ kếquả ư ình 8. ưc t nh H Gọ h ơ nữ ta có thể ế(trong trư ng hợ m, n, k < 10): ờ nna vi t p subplot 234 Xét mộ ví dụ ơ giả ta cầ vẽ ư ng quá trình mự n ưc (z) và vậ tố dòng đn đờ cớ t n: n nc chả (v) theo thờ gian (t), như trên hai bi ể đ khác nhau. Đ có sựđi chiế uồ ể ố y i ng u về ờ gian giữ hai biể đ ta nên xế chúng theo mộ cộ dọ Như ậ m = 2 và uồ th i a p t t c. vy n = 1. t = 0:5:100; z = [-0.14 - 0.08 -0.05 - 0.04 0.01 0.07 0.15 0.23 0.25 0.37 0.4 0.45 0.55 0.6 0.66 0.76 0.82 0.91 1 1.03 1.14]; v = [0.84 0.89 0.91 0.89 0.91 0.88 0.92 0.97 0.97 0.97 0.99 1.02 0.96 1.03 0.98 1.04 1.04 1.11 1.04 1.12 1.16]; subplot 211 plot(t, z); xlabel('t (phut)'); ylabel('z (m)'); title('Duong qua trinh muc nuoc tai diem A1'); subplot 212 plot(t, v, 'g'); xlabel('t (phut)'); ylabel('v (m/s)'); title('Duong qua trinh luu toc tai diem A1'); nh trên Hình 7.5 Kếquả ư t 5 MatLab còn có lệ plotyy cho phép hai trụ tung vớhai đi lưng khác nhau (chẳ h ạ z và v) trên ạợ nh c i ng n cùng mộbi ể đ. uồ t - 53 -
  11. Bài giả g Tin Ứ g dụ g 2 – Matlab 7 n n n Duong qua trinh muc nuoc tai diem A1 1.5 1 z (m ) 0.5 0 -0.5 0 20 40 60 80 100 t (s) Duong qua trinh luu toc tai diem A1 1.4 1.2 v (m/ s ) 1 0.8 0 20 40 60 80 100 t (s) Hình 10: Hai đ ờ quá trình trên hai subplot ư ng - 54 -
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2