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

Matlab tin học ứng dụng học phần ii

66 14 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 66
Dung lượng 1,26 MB

Nội dung

Bài giảng Tin Ứng dụng – Matlab ĐẠI HỌC THỦY LỢI BỘMÔN QUẢN LÝ TỔNG HỢP BIỂN VÀ ĐỚI BỜ  MATLAB TIN HỌC ỨNG DỤNG – HỌC PHẦN II (Tài liệu tham khảo & Bài tập cho sinh viên Kỹthuật Biển – K45) Nguyễ n Bá Tuyên Nguyễ n Quang Chiế n Hà Nội, tháng 08 năm 2007 -1- Bài giảng Tin Ứng dụng – Matlab MỤC LỤC CHƯƠNG I: MATLAB CĂN BẢN 1.1 Matlab – ngơn ngữcủa tính tốn kỹthuậ t .4 1.2 Khảnăng ứng dụng Matlab 1.3 Đặ c điể m Matlab .6 1.4 Cài đặ t khởi động Matlab 7.0 1.5 Quả n lý không gian làm việ c Matlab 1.6 Ghi & phục hồidữliệu 11 1.7 Sửdụng Help .12 1.8 History & Editing 13 CHƯƠNG II: TÍNH TỐN TRONG MATLAB 15 2.1 Matlab - máy tính cá nhân 15 2.2 Biế n Matlab 16 2.3 Các kiểu dữliệ u - Đị nh dạng kế t 17 2.4 Các kiểu dữliệ u số& sốphức 18 2.5 Các ký tự,Chuỗivà Văn 19 2.6 Các hằ ng sốdựng sẵn 20 2.7 Các hàm dựng sẵ n 20 2.8 Các phép toán quan hệ 23 2.9 Các phép toán logic 24 2.10 Kế t hợp nhiều lệ nh dịng; Ẩn kế t quảtính 26 CHƯƠNG III: VECTƠ 27 3.1 Giới thiệ u 27 3.2 Véctơhàng 28 3.3 Vectơcột 29 3.4 Toán tửhai chấ m ( : ) 29 3.5 Làm việ c với vectơ& ma trậ n (mảng) 30 3.6 Xửlý dữliệ u với hàm dựng sẵ n cho vectơ& ma trậ n 32 CHƯƠNG IV: MA TRẬN ĐẠI SỐ& TUYẾN TÍNH 34 4.1 Đị nh nghĩ a khởi tạ o ma trậ n 34 4.2 Một sốma trận đặ c biệt 34 4.3 Các phép toán với phần tửtrong ma trận 35 4.4 Các phép toán với ma trậ n 35 4.5 Giảiphương trình đạ i số 35 4.6 Giảihệphương trình đạ i sốtuyế n tính 35 4.7 Tìm nghiệ m đa thức 35 4.8 Giảiphương trình phi tuyến 35 4.9 Giảiphương trình vi phân 35 4.10 Các lệnh hữu ích khác 35 -2- Bài giảng Tin Ứng dụng – Matlab CHƯƠNG V: SCRIPTS VÀ FUNCTIONS (M-FILES) 37 5.1 Giới thiệ u M-file 37 5.2 Biên soạ n thực thi M-file 37 5.3 Chú thích (comments) 38 5.4 Các hàm m-file (function m-files) 39 5.5 Câu lệ nh rẽnhánh (if switch) 41 5.6 Vòng lặp (for while) 42 5.7 Đọc dữliệu từfile ghi file 43 CHƯƠNG VI: ĐỒTHỊDẠNG ĐƯỜNG .44 6.1 Biể u diễn đường trình 44 6.2 Lựa chọn màu vẽ , nét vẽ 46 6.3 Tạ o thích, giảitrên hình vẽ 48 6.4 Xóa đường biể u đồ,lưu biể u đồ 50 6.5 ĐồthịLogarit 50 6.6 Dãy biể u đồ 52 CHƯƠNG VII: ĐỒTHỊKHÔNG GIAN .55 7.1 Các ng cơbả n 55 7.2 Chỉđị nh vịtrí khơng gian chiề u 58 7.3 Mặ t cắ t đị a hình 58 7.4 Trường véctơ .59 PHẦN BÀI TẬP 61 Bài tập số1: 61 Bài tập số2 62 Bài tập số3 62 Bài tập số4: 63 LỜI GIẢI 63 Bài tập số1: 63 Bài tập số2: 64 Bài tập số3: 64 Bài tập số4: 64 TÀI LIỆU THAM KHẢO: 66 -3- Bài giảng Tin Ứng dụng – Matlab CHƯƠNG I: MATLAB CĂN BẢN 1.1 Matlab – ngôn ngữcủa tính tốn kỹthuật - MATLAB ngơn ngữbậ c cao môi trường tươ ng tác cho phép bạ n tiế n hành nhiệ m vụtính tốn có cường độlớn nhanh với ngơn ngữlậ p trình nhưC, C++ Fortran - MATLAB viế t tắ t cho "Matrix Laboratory" - Phịng thí nghiệ m ma trậ n Ban đầ u Matlab đ ược thiế t kếbởi Cleve Moler vào nă m 1970 đ ểsửdụ ng nhưmột cơng cụdạ y họ c Từđó đ ế n đ ược phát triể n thành bộphầ n mề m thương mạ i rấ t thành công - Hiệ n MATLAB R14 bộphầ n mề m cho cơng việ c tính tốn ngành kỹthuậ t, khoa họ c lĩ nh vực toán họ c ứng dụ ng Matlab cho ta mộ t ngơn ngữlậ p trình mạ nh, giao diệ n đ ồhọ a xuấ t sắ c, phạ m vi rấ t rộ ng kiế n thức chuyên môn Matlab mộ t thương hiệ u đượ c thương mạ i hóa tậ p đoàn MathWorks, Massachusetts, USA (hiệ n nhà cung cấ p hàng đ ầ u thếgiới cho phầ n mề m tính tốn kỹthuậ t thiế t kếdựa mơ hình) 1.2 Khảnăng ứng dụng Matlab - Một nhữ ng tính nă ng tuyệ t vời nhấ t củ a Matlab nhìn từgóc đ ộnhững nhà khoa họ c tính tốn thưviệ n dựng sẵ n to lớn rấ t phong phú chu trình tính tốn cơng cụhiể n thịđ ồhọ a - Matlab cho phép người dùng tiế n hành rấ t nhiề u nhiệ m vụthông thường liên quan tới việ c giả i quyế t vấ nđ ềmột cách sốhọ c Nó cho phép dành nhiề u thời gian cho việ c suy nghĩ , khuyế n khích thí nghiệ m - Matlab ứng dụng thuậ t tốn hế t sức trân trọng vậ y tin tưởng vào kế t quảthu - Các tính tốn rấ t mạ nh có thểđ ược thực hiệ n chỉvới mộ t hoặ c hai câu lệ nh - Bạ n có thểxây dựng riêng cho hàm tốn học cho ứng dụ ng đ ặ c biệ t - Matlab cung cấ p giao diệ nđ ồhọ a tuyệ t o, hình từMatlab có thểđem chèn vào LATEX tài liệ u Word - Tài liệ u hướng dẫ n chỉđem đế n mộ t nhìn thống qua vềsức mạ nh linh hoạ t củ a hệthống Matlab Đểcó hiể u biế t sâu sắ c chi tiế t hơn, xin tham khả o giáo trình Matlab chuyên dụng khác hiệ n có thịtrường -4- Bài giảng Tin Ứng dụng – Matlab VD: Hãy tham khả o demo củ a Matlab đểxem ta có thểlàm chỉvới vài dịng lệ nh đ ơn giả n: >> >> >> >> colormap(hsv(64)) z = cplxgrid(30); cplxmap(z,z^3) cplxroot(3) % miền không gian số phức đơn vị z % vẽ đồ thị hàm x = z^3 – hinh1 % vẽ đồ thị hàm y = z^(1/3) – hinh2 Hình 1: Đồthịhàm x = z3 khơng gian sốphức Hình 2: Đồthịhàm y 3 z không gian sốphức -5- Bài giảng Tin Ứng dụng – Matlab 1.3 Đặc điểm Matlab Lập trình theo nghĩ a thông thường, nhậ p vào máy câu lệ nh rõ ràng, theo thứtựnhấ tđ ị nh cho máy thực hiệ n theo đ úng thứtựđó sẽcho ta kế t quảmong muố n Mộ t khái niệ m nôm na tương tựnhưvậ y thường thấ y khóa họ c lậ p trình ngơn ngữC, Pascal Khi khởi đ ầ u với MatLab ta hiể u theo nghĩ a rộ ng hơn: lậ p trình cịn có bước biể u diễ n toán ng hàm máy tính qua việ c thực hiệ n hàm cho ta kế t Phương pháp có mức độtrừu tượng cao so với câu lệ nh chỉdẫ n đơn thuầ n Đểminh họa đ iề u này, ta xét mộ t ví dụrấ tđ ơn giả n: so sánh phép cộng hai véctơ ngơn ngữlậ p trình Pascal MatLab - Pascal biể u diễ n véctơdưới ng mả ng (array), chẳ ng hạ n có vec-tơA, B, C A + B = C: var A: array[1 5] of integer = (3, 7, 4, 2, 0); B: array[1 5] of integer = (-2, 4, 8, 5, 1); C: array[1 5] of integer; i: integer; begin for i := to begin C[i] := A[i] + B[i] end end - Cách làm MatLab đ ơn giả n nhiề u: A = [3 0]; B = [-2 1]; C = A + B; - Có đ ược sựđ ơn giả n nói nhờMatLab đ ã xây dựng sẵ n khái niệ m ma trận Dấ u cộng dòng lệ nh MatLab biể u thịphép cộ ng ma trậ n Pascal không nhưvậ y; mả ng chỉlà sựbiể u diễ n có thứtựcủa biế n Khơng có phép cộ ng ma trậ n, chỉcó phép cộng hai số– vậ y chương trình Pascal dài rấ t nhiề u - Mộ t đặ cđ iể m tấ t cảcác biế n chương trình Pascal đề u phả i khai báo Trong MatLab biế n sẽtựđ ộng hình thành câu lệ nh gán Trong nhữ ng nă m gầ nđ ây, bên cạ nh ngôn ngữlậ p trình truyề n thố ng (C / C++ / Fortran), ngôn ngữvăn lệ nh (scripting languages) đ ược sửdụ ng phổbiế n lĩ nh vực nghiên cứu tính tốn MatLab ngơn ngữnhư vậ y Là ngôn ngữbậ c cao, mỗ i dịng lệ nh MatLab thường có tác dụng tương đ ương với khoả ng 10 dòng lệ nh C / C++ Người lậ p trình sẽtố n thời gian gõ câu lệ nh tậ p trung vào nội dung chương trình -6- Bài giảng Tin Ứng dụng – Matlab Tuy vậ y ngơn ngữlậ p trình biên dị ch nhưC / Fortran cho phép chương trình tính tốn rấ t nhanh tốc độcũng yêu cầ u rấ t quan trọng chương trình tính lớn Do đ ó mộ t cách kế t hợp thông minh phầ n lõi tính tốn đ ược viế t bằ ng ngôn ngữbiên dị ch, thao tác nhậ p xuấ t, xửlí, hiể n thịsố liệ u viế t ngôn ngữvă n lệ nh nhưMatLab 1.4 Cài đặt khởi động Matlab 7.0 1.4.1 Cài đặt Matlab 7.0 - Yêu cầ u vềcấ u hình máy tính: + Bộvi xửlý Pentium hoặ c Pentium Pro + Windows 95 hoặ c NT (WinXP home, XPprofessional đề u được) + Bộđ iề u phối đ ồhọa bit card hình tối thiể u 256 màu + Dung lượng ổcứng 25Mb 1Gb (tùy thuộc vào cách cấ u hình đ ĩ a cứng, phân vùng đĩ a, sốhợp phầ n củ a Matlab đ ược cài đ ặ t), tới 2,1Gb nế u cài đ ặ t Matlab với Simulink + Bộnhớđ ộng (RAM) tố i thiể u 16Mb (nên có bộnhớtố i thiể u 128Mb) + Các khuyế n nghịkhác: Bộnhớbổsung, card đồhọa bổsung, card âm thanh, máy in, MS-Word 7.0 hoặ c hơn, trình biên dị ch C, Borlean, Mỉ cosoft (xây dựng file MEX), trình duyệ t internet (đểchạ y Matlab Helpdesk online) - Quá trình cài đặ t Matlab 7.0 cho WindowsXP (bộgồ m đĩ a CD): + Đưa đ ĩ a CD vào ổđọ c Nế u chương trình SETUP khơng tựđ ộng chạ y nhấ n đúp vào biể u tượng setup.exe đểbắ t đầ u trình cài đặ t + Accept (chấ p nhậ n) thỏa thuậ n vềbả n quyề n sau đ ó click Next + Nế u bạ n cài theo kiể u mặ c đị nh (hay gọ i Typical setup - kiể u phổ biế n), Matlab máy tính củ a bạ n sẽcó hợp phầ n cơbả n nhấ tđ ểlàm việ c theo hướ ng dẫ n tài liệ u Theo hướng dẫ n hình Cho đĩ a CD thứ2 vào đ ược yêu cầ u + Nế u bạ n cài đặ t theo kiể u tùy chọ n cá nhân (Manual setup) nhấ n vào hộ p thành phầ n dấ u 'v' nế u bạ n muố n có tùy chọ n Nhấ n tiế p nế u bạ n khơng có ý đị nh (có thểthêm vào sau nế u muố n) + Trên hình hiể n thị'C:\MATLAB7' thưmụ c mặ cđ ị nh trình cài đặ t Nế u bạ n muốn cài đ ặ t vào đị a chỉkhác, hoặ c đổ i tên thưmục, bạ n lựa chọ n 'Browse' -7- Bài giảng Tin Ứng dụng – Matlab + Chi tiế t hướng dẫ n cài đặ t xin xem file ‘ install_guide.pdf’trong đ ĩ a CD1 (bả n tiế ng Anh) 1.4.2 Khởi động Matlab (Hệđiều hành Windows) - TừHĐH Windows, khởi độ ng Matlab đ ơn giả n bằ ng cách nháy đ úp vào biể u tượng MATLAB hình, hoặ c bằ ng cách chọ n MATLAB từMenu Start - Quá trình khởi đ ộ ng đ ưa người dùng đế n Cửa sổlệ nh, nơi dòng lệ nh biể u thị bằ ng '>>' >>_ Đây dấ u hiệ u cho thấ y Matlab đ ang chờbạ nđ ánh (câu) lệ nh Khi hoạ t độ ng chếđộmáy tính cầ m tay, tấ t cảcác lệ nh củ a Matlab nhậ p vào dịng lệ nh từbàn phím - Matlab có thểđượ c sửdụng theo nhiề u chếđ ộvà nhiề u cách khác nhau; + Nhưmột máy tính cầ m tay cao cấ p chếđộmáy tính cầ m tay + Nhưmột ngơn ngữlậ p trình bậ c cao + Nhưmột chu trình gọ i từchương trình C Trong tài liệ u sẽđi nghiên cứu chi tiế t chếđộđầ u tiên 1.5 Quản lý không gian làm việc Matlab - Vềcơbả n, không gian làm việ c Matlab gồ m có phầ n sau: + Cửa sổtrợgiúp (Help window) + Nút Start + Cửa sổnhậ p lệ nh (Command window) + Cửa sổkhông gian làm việ c (Workspace window) + Cửa sổquá trình lệ nh (Command History window - lị ch sử) + Cửa sổbiên tậ p mả ng, vectơ, ma trậ n (Array editor window) + Cửa sổđ ị a chỉthưmục hiệ n thời (Current directory window) - Nút ‘x’ ởgóc bên phả i mỗ i cửa sổdùng đ ểđ óng chúng Hiể n thịlạ i cửa sổ bằ ng cách tích ‘ ’vào tên cửa sổtương ứng menu Desktop - Nút mũi tên cong bên cạ nh nút ‘ x’dùng đểtách cửa sổlàm việ c cửa sổ MATLAB thành cửa sổcon đ ộc lậ p Ấn nút mộ t lầ n sẽnhậ p cửa sổđộ c lậ p vềcửa sổchính củ a MATLAB - Cửa sổHelp, History sẽđược giới thiệ u cụthểtrong mụ c 1.7 mụ c 1.8 Sau đ ây cửa sổlàm việ c lạ i sẽđ ược giới thiệ u vắ n tắ t -8- Bài giảng Tin Ứng dụng – Matlab Hình 1.1: Giao diệ n củ a Matlab 7.0 * Nút Start: ởgóc bên trái củ a hình Matlab, cho phép ta chạ y ứng dụ ng mẫ u (demos), công cụvà cửa sổchưa hiể n thịkhi khởi độ ng Matlab Bằ ng cách đánh lệ nh 'demo' bạ n có thểtiế p cậ n với mộ t tậ p hợp sâu rộng file trình diễ n giá trịrấ t cao, biể u hiệ n cho khảnă ng củ a Matlab Ví dụ : Thửchạ y Start -> Matlab -> Demos chạ y mộ t ứng dụ ng mẫ u cửa sổDemo(s) Ghi chú: Lệ nh sẽxóa tấ t cảgiá trịcủ a biế n hiệ n có * Cửa sổlệ nh: đ ược đềcậ p ởmụ c 1.4.2 (Khởi độ ng Matlab) - Các diễ n giả i câu (mệ nh đ ề ) Matlab đ ánh giá bạ n gõ vào 'Cửa sổ lệ nh', kế t quảtính tốn cũ ng thểhiệ n tạ i đ ây Không giố ng Fortran ngơn ngữtính tốn cầ n biên dị ch khác, Matlab mộ t môi trường tương tác – bạ nđ ưa câu lệ nh, Matlab cốgắ ng thực thi lậ p tức trước đòi hỏ i lệ nh tiế p theo - Các diễ n giả i câu cũ ng đư ợc sửdụ ng M-file (sẽđượ c trình bày chi tiế t ởchương V) Chúng thường có cấ u trúc: >> biế n = diễ n giả i hoặ c đơn giả n  >> diễ n giả i - Các diễ n giả i thường đượ c soạ n bằ ng toán tử, hàm, tên biế n, đ ược hiể n thịtrên hình sau ấ n Enter Các câu lệ nh có ng ‘ tên biế n= -9- Bài giảng Tin Ứng dụng – Matlab diễ n giả i’thì diễ n giải đ ó sẽđ ược gán cho biế nđ ểsửdụng sau Khi ‘tên biế n’ dấ u‘ =’ bỏđi kế t quảcủa diễ n giả i sẽđược tựđ ộng gán cho biế n có tên ‘ans’ (hay answer – câu trảlời) hiể n thịtrên hình - Một câu (lệ nh) thơng thường sẽkế t thúc ởcuối dịng Tuy nhiên có thểtiế p tục câu bằ ng ba dấ u chấ m‘ …’ ởcuối dịng - Có thểđ ặ t mộ t vài câu lệ nh mộ t hàng, ngă n cách dấ u phẩ y‘ ,’ hoặ c chấ m phẩ y‘ ;’ - Nế u mộ t câu lệ nh kế t thúc bằ ng dấ u chấ m phẩ y ởcuố i câu kế t quảcủa lệ nh đ ó sẽkhơng hiể n thị , nhiên yêu cầ u tính vẫ n thực hiệ n (phép tính hay phép gán vẫ n thực hiệ n, kế t quảcó workspace) Điề u thiế t yế u việ cẩ nđ i kế t quảtrung gian không mong muốn (VD nhưkhi thực hiệ n mộtloạ t phép tính, hay tính tốn với ma trậ n lớn) - Bạ n có thểxóa trắ ng tồn bộcửa sổlệ nh bằ ng lệ nh  >> clc % (clear command window) hoặ c vào menu Edit -> Clear Command Window Khi thực hiệ n lệ nh này, toàn bộgiá trịcủa biế n hiệ n có khơng thay đ ổi hay mấ t * Cửa sổ không gian làm việ c (workspace): Các biế n dữliệ u mà bạ n nhậ p vào hoặ c tính tốn sẽđ ược Matlab lưu mộ t phầ n gọi 'không gian làm việ c' Tấ t cảcác biế n, ngoạ i trừnhững biế n cục bộthuộ c vềmộ t M-file, đ ược thểhiệ n không gian làm việ c - Lệ nh 'who' hoặ c 'whos' liệ t kê biế n hiệ n có không gian làm việ c VD: đánh lệ nh 'whos' vào cửa sổlệ nh, bạ n sẽthấ y mộ t danh sách biế n hiệ n có kiể u loạ i kích cỡcủa chúng - Đểbiế t giá trịhiệ n tạ i mộ t biế n, bạ nđ ánh vào tên biế n tạ i dấ u nhắ c cửa sổlệ nh Enter - Đểxóa mộ t hàm hoặ c biế n khỏ i không gian làm việ c, ta sửdụng lệ nh 'clear': >> clear tên_biế n  Bả n thân lệ nh 'clear' sẽxóa tấ t cảcác biế n hiệ n có (tương đương với 'clear all') - 10 - Bài giảng Tin Ứng dụng – Matlab Bieu duong cap phoi hat 100 P (%) 80 60 40 20 0 10 d (mm) Hình 8: Ví dụvới biểu đồcó trục theo thang logarit Các đồthịvới thang logarit trụ c y cả2 trụ c thực hiệ n tương tựvới câu lệ nh lầ n lượt semilogy loglog 6.6 Dãy biểu đồ Bằ ng lệ nh figure ta có thểtạ o nhiề u hình vẽđ ộc lậ p nhiề u cửa sổ Tuy vậ y, nhiề u lúc ta muố n có mộ t dãy (hoặ c bả ng) biể u đồxế p kếtiế p nhau, có kích thước bằ ng đ ểtiệ n việ c so sánh MatLab hỗtrợhệthống subplot (biể u đ nhỏ) với câu lệ nh có ng chung nhưsau: subplot(m,n,k); Hình 9: Vịtrí biể u đồtrong dãy tạo lệ nh subplot - 52 - Bài giảng Tin Ứng dụng – Matlab Sẽtạ o bả ng gồm (m × n) biể uđ ồnhỏ(m hàng n cột) Tiế p hình thứk (tính từtrên xuố ng dưới, trái qua phả i) sẽđ ược kích hoạ t chuẩ n bịđược vẽ Chẳ ng hạ n, sau thực hiệ n lệ nh subplot(2,3,4); ta kế t quảnhưHình Gọ n ta có thểviế t (trong trường hợp m, n, k < 10): subplot 234 Xét ví dụđơn giả n: ta cầ n vẽđường trình mực nướ c (z) vậ n tốc dòng chả y (v) theo thời gian (t), hai biể u đồkhác Đểcó sựđố i chiế u vềthời gian hai biể uđ ồta nên xế p chúng theo cột dọc Nhưvậ y m = n = 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.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'); Kế t quảnhưtrên Hình 7.5 MatLab cịn có lệ nh plotyy cho phép hai trụ c tung vớ i hai đ i lư ợ ng khác (chẳ ng hạ n z v) mộ t biể uđ - 53 - Bài giảng Tin Ứng dụng – Matlab Duong qua trinh muc nuoc tai diem A1 1.5 z (m) 0.5 -0.5 20 40 60 80 t (s) Duong qua trinh luu toc tai diem A1 100 v (m/s) 1.4 1.2 0.8 20 40 60 80 t (s) Hình 10: Hai đường trình hai subplot - 54 - 100 Bài giảng Tin Ứng dụng – Matlab 7 CHƯƠNG VII: ĐỒ THỊKHÔNG GIAN Trong kỹthuậ t rấ t cầ n biể u đ ồkhông gian Thường gặ p nhấ t bình đồ (bả nđ ồđ ị a hình khu vự c nhỏ) Bên cạ nh đó, biể u đồkhơng gian cịn có thểđược dùng đ ểbiể u diễ n độsâu đị a hình hay trường khơng gian nói chung (nhiệ t độ , khí áp ) Trong tấ t cảcác trư ờng hợp nói trên, ln có mộ t biế n (z) đ ược biể u diễ n theo hai biế n không gian mặ tđ ấ t (x, y) 7.1 Các dạng cơbản Các dạng cơbản MatLab hỗtrợnhiề u phương pháp biể u diễ n sốliệ u; tài liệ u ta làm quen với mộ t sốloạ i cơbả n, là:  Mả ng màu (color patch)  Đư ờng đ ồng mức (contour)  Bềmặ t chiề u (surface) Hãy bắ tđ ầ u với mộ t ví dụđ ơn giả n mơ đ ị a hình đáy biể n củ a khu vực giảtưởng đư ợc cho ma trậ n z Đáy biể n có ng tương tựnhưmặ t cắ t ngang cân bằ ng (Dean) theo phương trình: z = - 0.1 y2/3 Với trục x dọc theo bãi biể n trục y hướng khơi Ta xét lướ i tọ a độtrên mặ t bằ ng, đ iể m nút lưới có phạ m vi < x < 200, < y < 200 Khoả ng cách điể m nút lưới theo phương x Δx = 10, theo phương y Δy = Nghĩ a tọa đ ộcủ a tấ t cảcác đ iể m nút lưới có ng: ⋮ 0,0⋮ ⋮ 10,0⋮ ⋮ ⋮ 200,0 ⋮ ⋮ 0,4⋮ ⋮ 10,4⋮ ⋮ ⋮ 200,4 ⋮ ⋮ x i , y i⋮ = ⋮ ⋮ ⋮ ⋮ 0,200 ⋮ ⋮ 10,200 ⋮⋮ ⋮ 200,200 ⋮ [ ] Lệ nh meshgrid sẽgiúp ta làm đ iề u đó: [x, y] = meshgrid(0:10:200, 0:4:200); (Một lầ n cầ n ý dấ u ; ởcuối câu lệ nh, nế u không rấ t nhiề u sốsẽđược in hình!) Lệ nh meshgrid lấ y hai thông số : thông sốvec-tơthứnhấ t tọ a độtrên trục x, thông sốvec-tơthứhai tọ ađ ộtrên trục y Kế t quảta đượ c ma trậ n - 55 - Bài giảng Tin Ứng dụng – Matlab đ iể m vùng hình chữnhậ t (51 × 21) có tọ ađ ộtương ứng dựng từcác vec-tơtrên6 Sau đ ó mả ng z sẽđ ược tính từmả ng y theo cơng thức Dean: z = -0.1 * y ^ (2/3); Trong cầ n ý phép tính lũ y thừa cho phầ n tử Câu lệ nh đơn giả n nhấ t đểhiể n thịmả ng màu biể u thịz là: pcolor(x, y, z) Bả ng màu mặ c đị nh dùng có tên jet Ta có thểthay bả ng màu bằ ng sốbả ng màu khác, chẳ ng hạ n: colormap(gray); pcolor(x, y, z); Cầ n hiệ n tên trụ c x y theo cách tương tựnhưta đ ã làm với biể uđ ồdạ ng đ ường: xlabel('x(m)'); ylabel('y(m)'); Hình 11: Bảng màu biể u thịđị a hình đáy biển với mặt cắt ngang cân theo Dean Có thểhiể n thịthanh thích bên cạ nh bả ng màu bằ ng lệ nh: colorbar Viế t thêm dòng chữz(m) bên cạ nh chỉdẫ n màu bằ ng cách Insert – Text Box Xóa bỏđ ường bao củ a hình chữnhậ t bằ ng cách nháy phả i chuộ t – Line Style – None Chú ý rằ ng hiệ n bả n đồđị a hình / bả n vẽmặ t bằ ng, hầ u hế t trường hợp ta muố n đặ t tỷlệbằ ng hai trục x y Khi đ ó ta dùng lệ nh: axis equal; x y đ ề u ma trậ n chiề u Do đ iể m lướ i xế p theo hàng nên ta nhậ n thấ y phầ n tửgiố ng mỗ i cộ t củ a x (các đ iể m có tọ ađ ộx); tươ ng tựđ ố i với y [ 0 x= ⋮ 10 ⋮ 200 10 ⋮ 200 ⋮ ⋮ 10 ⋮ 200 0 ⋮ 4 ⋮ y= ⋮ ⋮ ⋮ 200 200 ⋮ 200 ] [ ] Bả ng màu jet mặ c dù rự c rỡnhưng không hiệ u quảkhi in trắ ng đ en, thay vào đ ó nên dùng bả ng màu gray - 56 - Bài giảng Tin Ứng dụng – Matlab Tiế p theo ta có khung củ a đồthịlạ i cho vừa với bả ng màu 8: axis tight; Và cũ ng nhưđố i với mả ng màu, ta có thểcă n nh trụ c cách hợp lý: axis equal tight; xlabel('x(m)'); ylabel('y(m)'); -3 -3 140 -2.5 120 -2.5 -2.5 100 -2 -2 -2 -1.5 -1.5 -1.5 80 60 Các đ ường đồ ng mức củ a đ áy biể n đ ã xuấ t hiệ n song song với trụ c x, cầ n phả i có giá trịsốtrên đường đ ồng mức: clabel(C,h); -3 160 y (m) Bên cạ nh cách dùng biể uđ ồmả ng màu, cịn có thểbiể u thịdưới ng đườ ng đồ ng mức Cách thường dùng với bả n in lên giấ y: [C,h] = contour(x,y,z);9 40 -1 -1 -1 20 -0.5 00 50 -0.5 100 x (m) -0.5 150 200 Hình 12: Đường đồng mức biể u diễn đị a hình đáy biể n với mặt cắt theo Dean Ta cũ ng có thểbiể u diễ n đị a hình ng không gian (3 chiề u) sửdụ ng lệ nh surf hoặ c mesh: figure; surf(x, y, z); figure; mesh(x, y, z); Sau đ ó sửdụng cơng cụxoay hình bằ ng cách ấ n nút Rotate 3D cơng cụ( ) Hai lệ nh có thểđ ượ c gộ p lạ i thành mộ t lệ nh axis equal tight Cách viế t có vẻkhác với câu lệ nh thơng thườ ng, nhiên theo MatLab, lệ nh vẽđ ề u có thểviế t dư ới ng hàm Chẳ ng hạ n, gõ thửlệ nh zzz = plot(t, z) Mặ t khác, có khác nế u ta gõ lệ nh clabel(contour(x,y,z)); ? - 57 - Bài giảng Tin Ứng dụng – Matlab Hình 13: Biể u diễn mặt cắt Dean dạng mặt chiều Hình 14: Biểu diễn mặt cắt Dean dạng lưới chiề u 7.2 Chỉđị nh vịtrí khơng gian chiều Khi thểhiệ n dữliệ u không gian bằ ng mả ng màu, sốtrường hợp ta phả i chỉra vịtrí thỏa mãn mộ t điề u kiệ n Cách đơn giả n nhấ t đ ánh dấ u chúng bằ ng điể m riêng Chẳ ng hạ n, chỉra vịtrí có z < -3 ví dụtrên Có hai bước nhưsau:  Tìm số(i,j) ma trậ n có giá trịthỏa mãn z(i,j) < -3  Chấ m điể m xác đ ị nh x(i,j), y(i,j) lên mả ng màu ind = find(z < -3); hold on; plot(x(ind), y(ind), 'k.'); Hình 15: Đánh dấu mảng màu chiều 7.3 Mặt cắt đị a hình Trong nhiề u trường hợp cầ n biể u diễ n mộ t mặ t cắ t đị a hình từbiể uđ ồhai chiề u Và tổng quát hơn, có thểlà phân bốđộsâu nước, áp suấ t, độmặ n, hay bấ t kì biế n đặ c trưng dọc theo tuyế n xác đị nh mặ t bằ ng Sốliệ u mặ t cắ t lấ y từ1 cột (hoặ c hàng) từmả ng chiề u tương ứng Chẳ ng hạ n, mặ t cắ t có x = 100 m (tương ứng với cộ t thứ11 (trong số21 cộ t) ma trậ n z): - 58 - Bài giảng Tin Ứng dụng – Matlab ymc1 = y(11,:); zmc1 = z(11,:); plot(ymc1, zmc1, '*-'); xlabel('y (m)'); ylabel('z (m)'); 7.4 Trường véctơ Trong toán kỹthuậ t thủy độ ng lực thường u câu mơ trường dịng chả y Biể u diễ n dịng chả y khơng gian chiề u hỗtrợrấ t tốt MatLab bằ ng câu lệ nh: quiver(x, y, u, v) x, y hai ma trậ n chứa tọ a đ ộcủ a tấ t cảcác điể m theo phương ngang (thường đ ược phát sinh bằ ng lệ nh meshgrid); u v hai ma trậ n chứa thành phầ n lưu tố c củ a tấ t cảcác điể m (u lưu tốc theo phương x, v lưu tố c theo phương y) Giảsửtrong thưmụ c hiệ n thời đ ã có file data_u.txt data_v.txt, mỗ i file chứa ma trậ n giá trịu v Khi đ ó, hai ma trậ n đ ược đọ c nhưsau: u = dlmread('data_u.txt'); v = dlmread('data_v.txt'); Giảsửu v đ ã đọ c có kích thướ c giố ng = sốđ iể m trục x × sốđiể m trục y: [sizex, sizey] = size(u); Ta muố n biể u diễ n lên hình với, chẳ ng hạ n, Δx = 10 m Δy = m: dx = 10; dy = 5; [x, y] = meshgrid(0:dx:(sizex – 1)*dx, 0:dy:(sizey -1) * dy); figure; quiver(x, y, u, v); xlabel('X(m)'); ylabel('Y(m)'); axis equal tight; - 59 - Bài giảng Tin Ứng dụng – Matlab 50 Y (m) 40 30 20 10 0 20 40 60 80 X(m) Hình 16: Biểu diễ n trường vec-tơ - 60 - Bài giảng Tin Ứng dụng – Matlab PHẦN BÀI TẬP Bài tậ p số1: Tính tốn sóng theo sốliệ u sau: o T = s, H = m, α= 30 o o •G嫕gi trịcho biế n T, Ho, alpha0 •T嫕h Co •T嫕h L o •Mở1 file disperse.m bằ ng cách gõ>> edit disperse •Với file mởhãy gõ vào nội dung sau:function [L] = disperse(h, Lo) L = Lo; err = Inf; while err > 0.1; Ltry = Lo * tanh(2*pi*h / L); err = abs(Ltry - L); L = Ltry; end; •Ta đ ã thiế t lậ p đượ c hàm tính L từcác giá trịh Lo cho trước •Hãy thiế t lậ p vec-tơh chứa độsâu khác nhau: m, 3.2 m, , m Tính L tạ i độsâu cho bởih •T嫕h C tương ứ ng với L •Tính sin_alpha theo công thức sinα= sinα* C / Co(chú ý đ ơn vịđ ộ!) o •T嫕h alpha (d嫕g lệ nh asin) •T嫕h Kr = sqrt(cosα/ cosα ) o •T嫕h Ksh theo cg thc Ksh = ãTớnh H = Ho ì Ksh × Kr •Ghi lạ i c嫕gi trịcủa H - 61 - Bài giảng Tin Ứng dụng – Matlab •Viế t kế t quảra file ketqua.txt Bài tậ p số2 Quan hệgiữa vậ n chuyể n bùn cát S lưu tốc u có quan hệdạ ng: S = aub Đểxác đ ị nh hệsốa b ngườ i ta tiế n hành thí nghiệ m thu đượ c kế t quảsau: u (m/s) 0.2 0.35 0.57 0.68 0.81 0.96 1.12 S (m3 /s.m) 0.0002 0.0018 0.0159 0.0282 0.0609 0.1258 0.2858 1) Hãy nhậ p giá trịu S vào hai vec-tơ, sau đ ó tính X Y logarit tương ứ ng củ a u S 2) Vẽđồthịđ iể m X Y 3) Hai hệ số a b đ ược xác đ ị nh bằ ng cách dựa vào quan hệ : log S = log a + b log u, hay Y = b X + log a Sửdụng hàm polyval đ ểtính b log a phương trình nhưsau: p = polyval(X, Y, 1) Phầ n tửđ ầ u củ a vec-tơp b; phầ n tửthứ2 p bằ ng log a Hãy tính a 4) Vẽđ ồthịđ ường thẳ ng: Y = b X + log a lên hệtrục với đ iể m chấ mở câu 2) Bài tậ p số3 1) Một chuỗi sốliệ u đo đ c vậ n tốc dòng chả yđ ược phát sinh bởi: t = 0:0.5:48; N dãy sốngẫ u nhiên có chiề u dài bằ ng length(t) u = 0.4 + 0.12 sin(2πt / 24) + 0.05 N 2) Tính ứ ng suấ t tiế p tạ i ven bờ, biế t 0.5 C = 60 m /s τ= ρg u / C Thiế t lậ p subplot hàng × cột Hai vùng vẽhai đồthịu ~ t, τ~ t 3) Nế u bờcó thành phầ n đấ t sét với ứng suấ t tiế p tới hạ nτ c = 0.65 N/m , xem có thời điể m xuấ t hiệ n τ> τ c - 62 - Bài giảng Tin Ứng dụng – Matlab 4) Công thức xói lởđ ường bờđược xác đị nh bởi: Hãy tính khoả ng cách xói lởE E = 10 (τ– τ u τ> τ c) nế c = trường hợp lạ i VẽE ~ t lên vùng đ ồthịdưới tạ o subplot Bài tậ p số4: Cho véctơX = [10 20 30] Y = [10 40 30] Tính diệ n tích tam giác tạ o đỉ nh có tọa đ ộ X(1)Y(1), X(2)Y(2), X(3)Y(3) Tổ ng quát hơn, tính diệ n tích đ a giác n cạ nh (trên mặ t phẳ ng chiề u) với tọa độ xi yi đỉ nh thứi cho phầ n tửthứi củ a véctơX Y tương ứng (do đ óX Y véctơcó chiề u dài = n) LỜI GIẢI Bài tậ p số1: Hướng dẫ n: tạ o mộ t script file có tên baitap1.m, soạ n thả o nội dung dư ới đây, ghi lạ i Sau chạ y file này, ta sẽthu kế t % baitap1 % Inputs: T, H0, alpha0 % Outputs: C0, L0, L % clear all; g=9.81; T=8; H0=2; alpha0=30; % L0=g*T^2/(2*pi) C0 = L0/T; h=[3:0.2:4] % n=length(h); % for i = 1:n - 63 - Bài giảng Tin Ứng dụng – Matlab % L(i)=disperse(h(i), L0); % end; L = disperse(h,L0); % Wave length C=L/T % Wave celerity sin_alpha=sin(alpha0)/C0*C alpha = asin(sin_alpha) % arcsin Kr=sqrt(cos(alpha0)./cos(alpha)) % Refraction coefficient k=2*pi./L % Wave number Ksh=sqrt(1./tanh(k.*h)/(1+2*k.*h/sinh(2*k.*h))) % Shoaling coefficient H=H0*Ksh.*Kr % Wave height Bài tậ p số2: Hướng dẫ n: tạ o mộ t script file có tên baitap2.m, soạ n thả o nội dung dư ới đây, ghi lạ i Sau chạ y file này, ta sẽthu kế t (Bài làm theo bước nhưtrên lớp: tính log(u), log(S), vẽlên trục tọ a độ thường (khơng vẽlên trụ c loga ởđ ây ta tính giá trịcủa loga rồ i), xác đ ị nh hệsốa, b củ a đường thẳng mộtcách gầ nđ úng đồthị ) Bài tậ p số3: Hướng dẫ n: tạ o mộ t script file có tên baitap3.m, soạ n thả o nội dung dư ới đây, ghi lạ i Sau chạ y file này, ta sẽthu kế t clear all; t=0:0.5:48 N=rand(1,length(t)); u=0.4+0.12*sin(2*pi*t/24)+0.05*N plot(N); hold on; plot(u,'+'); C=60; Rho = 1000; g=9.81; To = Rho*g/C^2*u.^2 plot(t,To) hold on grid on Toc = 0.65 10 * (To - Toc) * (To > Toc) + * (To > dientich(X,Y)  Lưu ý rằ ng hàm tính diệ n tích ngầ mđ ị nh rằ ng véc tơX, Y ởđây đ ã chứa sốliệ u cho trước vềtọa độcác đ ỉ nh củ ađ a giác theo nhưquy ớc Hơ n nữa, nhậ p tọa đ ộta đ ánh sốcác đỉ nh từ1 đ ế n n theo chiề u kim đồ ng hồ * Đểtính diệ n tích tam giác S với chiề u dài cạ nh cho trước a, b, c, bạ n thửthuậ t tốn khác nhưsau: S  p ( p a)( p b)( p c ) với p=(a+b+c)/2 nửa chu vi - 65 - Bài giảng Tin Ứng dụng – Matlab TÀI LIỆU THAM KHẢO: Matlab R14 - Helps & Demos, The Mathworks, Inc., 2004 David F Griffths, An introduction to Matlab, Department of MathematicsThe University of Dundee – Sweden, 1996 John M Stockie, A Whirlwind Tour of MATLAB for Students of CS 3113, Department of Mathematics and Statistics, University of New Brunswick Canada, 2003 Bill Mason, Introduction to Matlab, Northeastern University - College of Computer and Information Science – USA, 2003 Tobin A Driscoll, Crash course in MATLAB, Department of Mathematical Sciences - University of Delaware – USA, 2006 Nguyễ n Hoàng Hả i & Nguyễ n Việ t Anh, Lập trình Matlab ứng dụng, NXB Khoa học Kỹthuậ t – Hà Nội, 2005 Nguyễ n Phùng Quang, Matlab & Simulink dành cho kỹsưđ iề u khiể n tự đ ộ ng, NXB Khoa họ c & Kỹthuậ t – Hà Nộ i, 2006 Nguyễ n Phương Thả o, Programming in Matlab, handouts, 2007 ĐH Thủy Lợi, Matlab version 7.0 cơbả n, Khóa tin học nâng cao cho cán bộgiả ng dạy củ a dựán 95 bộNN&PTNT, handouts, 2007 10 Knight A., Basics of MatLab® and beyond, CRC Press, 2000 11 Timothy A Davis & Kermit Sigmon, Matlab® Primer, Chapman & Hall/CRC 12 R J Braun, Beginning Matlab Exercises, Department of Mathematical Sciences – University of Delaware – USA - 66 - ...Bài giảng Tin Ứng dụng – Matlab MỤC LỤC CHƯƠNG I: MATLAB CĂN BẢN 1.1 Matlab – ngơn ngữcủa tính tốn kỹthuậ t .4 1.2 Khảnăng ứng dụng Matlab 1.3 Đặ c điể m Matlab ... c dòng lệ nh - 14 - Bài giảng Tin Ứng dụng – Matlab CHƯƠNG II: TÍNH TỐN TRONG MATLAB 2.1 Matlab - máy tính cá nhân * Giới thiệ u toán tửs? ?học: - Các toán tửsốhọ c Matlab hoạ t độ ng theo cú pháp... hệthống Matlab Đểcó hiể u biế t sâu sắ c chi tiế t hơn, xin tham khả o giáo trình Matlab chuyên dụng khác hiệ n có thịtrường -4- Bài giảng Tin Ứng dụng – Matlab VD: Hãy tham khả o demo củ a Matlab

Ngày đăng: 21/03/2021, 18:32

TỪ KHÓA LIÊN QUAN

w