Đăng ký Đăng nhập

Tài liệu Matlab tin học ứng dụng hoc phần ii

.PDF
66
6
134

Mô tả:

Bài giảng Tin Ứng dụng 2 – Matlab 7 ĐẠ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 2 – Matlab 7 MỤC LỤC 1. CHƯƠNG I: MATLAB CĂN BẢN ....................................................................... 4 1.1. Matlab – ngôn ngữcủa tính toán kỹthuậ t.........................................................4 1.2. Khảnăng và những ứng dụng của Matlab ........................................................ 4 1.3. Đặ c điể m của Matlab .......................................................................................6 1.4. Cài đặ t và khởi động Matlab 7.0....................................................................... 7 1.5. Quả n lý không gian làm việ c của Matlab..........................................................8 1.6. Ghi & phục hồidữliệu...................................................................................11 1.7. Sửdụng Help.................................................................................................12 1.8. History & Editing...........................................................................................13 2. CHƯƠNG II: TÍNH TOÁN TRONG MATLAB .................................................. 15 2.1. Matlab - một máy tính cá nhân ....................................................................... 15 2.2. Biế n trong Matlab..........................................................................................16 2.3. Các kiểu dữliệ u - Đị nh dạng kế t quả .............................................................. 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 bả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 trên một dòng; Ẩn kế t quảtính.....................................26 3. 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 các hàm dựng sẵ n cho vectơ& ma trậ n............................... 32 4. CHƯƠNG IV: MA TRẬN ĐẠI SỐ& TUYẾN TÍNH.......................................... 34 4.1. Đị nh nghĩ a và 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 từng 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 của đ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 2 – Matlab 7 5. CHƯƠNG V: SCRIPTS VÀ FUNCTIONS (M-FILES)........................................ 37 5.1. Giới thiệ u M-file............................................................................................ 37 5.2. Biên soạ n và 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 và switch)..................................................................... 41 5.6. Vòng lặp (for và while).................................................................................. 42 5.7. Đọc dữliệu từfile và ghi ra file...................................................................... 43 6. CHƯƠNG VI: ĐỒTHỊDẠNG ĐƯỜNG .............................................................44 6.1. Biể u diễn đường quá trình.............................................................................. 44 6.2. Lựa chọn màu vẽ , nét vẽ................................................................................ 46 6.3. Tạ o các chú thích, 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 7. CHƯƠNG VII: ĐỒTHỊKHÔNG GIAN .............................................................55 7.1. Các dạ ng cơbả n.............................................................................................55 7.2. Chỉđị nh các vịtrí trong không gian 2 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 8. 9. TÀI LIỆU THAM KHẢO: ...................................................................................66 -3- Bài giảng Tin Ứng dụng 2 – Matlab 7 1. CHƯƠNG I: MATLAB CĂN BẢN 1.1. Matlab – ngôn ngữcủa tính toán kỹthuật - MATLAB là một ngôn ngữbậ c cao và môi trường tươ ng tác cho phép bạ n tiế n hành các nhiệ m vụtính toán có cường độlớn nhanh hơn với các ngôn ngữlậ p trình nhưC, C++ và 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 những nă m 1970 đ ểsửdụ ng nhưmột công cụdạ y họ c. Từđó đ ế n nay nó đã đ ược phát triể n thành một bộphầ n mề m thương mạ i rấ t thành công. - Hiệ n nay MATLAB R14 là một bộphầ n mề m cho công việ c tính toán trong các ngành kỹthuậ t, trong khoa họ c và trong 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, và một phạ m vi rấ t rộ ng các kiế n thức chuyên môn. Matlab là mộ t thương hiệ u đã đượ c thương mạ i hóa của tậ p đoàn MathWorks, Massachusetts, USA (hiệ n là nhà cung cấ p hàng đ ầ u thếgiới cho các phầ n mề m tính toán kỹthuậ t và thiế t kếdựa trên mô hình). 1.2. Khảnăng và những ứng dụng của Matlab - Một trong 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 toán là thưviệ n dựng sẵ n to lớn rấ t phong phú các chu trình tính toán và các công cụhiể n thịđ ồhọ a. - Matlab cho phép người dùng tiế n hành rấ t nhiề u các nhiệ m vụthông thường liên quan tới việ c giả i quyế t các vấ nđ ềmột cách sốhọ c. Nó cho phép chúng ta dành nhiề u thời gian hơn cho việ c suy nghĩ , khuyế n khích chúng ta thí nghiệ m. - Matlab ứng dụng những thuậ t toán hế t sức được trân trọng vì vậ y chúng ta có thể tin tưởng vào kế t quảthu được. - Các tính toá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 mình những hàm toán học cho những ứng dụ ng đ ặ c biệ t. - Matlab cung cấ p giao diệ nđ ồhọ a tuyệ t hả o, các hình từMatlab có thểđem chèn vào LATEX và các tài liệ u Word. - Tài liệ u hướng dẫ n này chỉđem đế n mộ t cái nhìn thoáng qua vềsức mạ nh và sự linh hoạ t củ a hệthống Matlab. Đểcó được những hiể u biế t sâu sắ c và chi tiế t hơn, xin tham khả o các giáo trình Matlab chuyên dụng khác hiệ n có trên thịtrường. -4- Bài giảng Tin Ứng dụng 2 – Matlab 7 VD: Hãy cùng tham khả o các demo củ a Matlab đểxem ta có thểlàm được những gì chỉvới một 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 trong không gian sốphức Hình 2: Đồthịhàm y 3 z trong không gian sốphức -5- Bài giảng Tin Ứng dụng 2 – Matlab 7 1.3. Đặc điểm của Matlab Lập trình theo nghĩ a thông thường, là nhậ p vào máy những câu lệ nh rõ ràng, theo một thứtựnhấ tđ ị nh sao cho khi máy thực hiệ n theo đ úng thứtựđó thì 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 trong các khóa họ c lậ p trình các ngôn ngữC, Pascal... Khi khởi đ ầ u với MatLab ta hãy hiể u theo nghĩ a rộ ng hơn: lậ p trình còn có các bước biể u diễ n bài toán dưới dạ ng các hàm và máy tính qua việ c thực hiệ n các hàm này cho ta kế t quả . Phương pháp này có mức độtrừu tượng cao hơn so với các 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ơ trong ngôn ngữlậ p trình Pascal và MatLab. - Pascal biể u diễ n một véctơdưới dạ ng mả ng (array), chẳ ng hạ n có 3 vec-tơA, B, C và 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 := 1 to 5 do begin C[i] := A[i] + B[i] end end. - Cách làm trong MatLab đ ơn giả n hơn nhiề u: A = [3 7 4 2 0]; B = [-2 4 8 5 1]; C = A + B; - Có đ ược sựđ ơn giả n nói trên là nhờMatLab đ ã xây dựng sẵ n khái niệ m ma trận. Dấ u cộng trong dòng lệ nh MatLab biể u thịphép cộ ng ma trậ n. Pascal không được nhưvậ y; mả ng chỉlà sựbiể u diễ n có thứtựcủa các biế n. Không có phép cộ ng ma trậ n, chỉcó phép cộng hai số– vì vậ y chương trình Pascal dài hơn rấ t nhiề u. - Mộ t đặ cđ iể m nữa là tấ t cảcác biế n trong chương trình Pascal trên đề u phả i được khai báo. Trong MatLab các biế n sẽtựđ ộng hình thành trong mỗi câu lệ nh gán. Trong nhữ ng nă m gầ nđ ây, bên cạ nh các ngôn ngữlậ p trình truyề n thố ng (C / C++ / Fortran), các ngôn ngữvăn lệ nh (scripting languages) đ ược sửdụ ng phổbiế n hơn trong lĩ nh vực nghiên cứu tính toán. MatLab là một trong các ngôn ngữnhư vậ y. Là một 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ủa C / C++. Người lậ p trình sẽtố n ít thời gian gõ câu lệ nh và tậ p trung hơn vào nội dung chương trình. -6- Bài giảng Tin Ứng dụng 2 – Matlab 7 Tuy vậ y các ngôn ngữlậ p trình biên dị ch nhưC / Fortran cho phép chương trình tính toán rấ t nhanh và tốc độcũng là một yêu cầ u rấ t quan trọng trong các chương trình tính lớn. Do đ ó mộ t cách kế t hợp thông minh là phầ n lõi tính toán có thể đ ược viế t bằ ng ngôn ngữbiên dị ch, và các thao tác nhậ p xuấ t, xửlí, hiể n thịsố liệ u được viế t bởi ngôn ngữvă n lệ nh nhưMatLab. 1.4. Cài đặt và 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 8 bit và card màn hình tối thiể u 256 màu + Dung lượng ổcứng 25Mb cho tới hơn 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), và tới 2,1Gb nế u cài đ ặ t Matlab cùng 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 2 đĩ a CD): + Đưa đ ĩ a CD vào ổđọ c. Nế u chương trình SETUP không tựđ ộng chạ y thì nhấ n đúp vào biể u tượng setup.exe đểbắ t đầ u quá trình cài đặ t. + Accept (chấ p nhậ n) những 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 còn gọ i là Typical setup - kiể u phổ biế n), Matlab trên máy tính củ a bạ n sẽcó các hợp phầ n cơbả n nhấ tđ ểlàm việ c theo các hướ ng dẫ n trong tài liệ u này. Theo các hướng dẫ n trên màn hình. Cho đĩ a CD thứ2 vào khi đ ược yêu cầ u. + Nế u bạ n cài đặ t theo kiể u tùy chọ n cá nhân (Manual setup) thì nhấ n vào các 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ày nế u muố n). + Trên màn hình hiể n thị'C:\MATLAB7' là thưmụ c mặ cđ ị nh của quá 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, thì bạ n lựa chọ n 'Browse'. -7- Bài giảng Tin Ứng dụng 2 – Matlab 7 + 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 trên màn 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 các dòng lệ nh được biể u thị bằ ng '>>'. >>_ Đây là dấ u hiệ u cho thấ y Matlab đ ang chờbạ nđ ánh một (câu) lệ nh. Khi hoạ t độ ng trong chếđộmáy tính cầ m tay, tấ t cảcác lệ nh củ a Matlab được 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 trong 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 con gọ i từchương trình C Trong tài liệ u này chúng ta sẽđi nghiên cứu chi tiế t 2 chếđộđầ u tiên. 1.5. Quản lý không gian làm việc của Matlab - Vềcơbả n, không gian làm việ c của Matlab gồ m có cá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 trên 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 trong menu Desktop. - Nút mũi tên cong bên cạ nh nút ‘ x’dùng đểtách các cửa sổlàm việ c trong cửa sổ chính MATLAB thành cửa sổcon đ ộc lậ p. Ấn nút này mộ t lầ n nữa sẽnhậ p một 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 và mụ c 1.8. Sau đ ây các cửa sổlàm việ c còn lạ i sẽđ ược giới thiệ u vắ n tắ t. -8- Bài giảng Tin Ứng dụng 2 – Matlab 7 Hình 1.1: Giao diệ n củ a Matlab 7.0 * Nút Start: ởgóc dưới bên trái củ a màn hình Matlab, cho phép ta chạ y các ứng dụ ng mẫ u (demos), các 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 những file trình diễ n giá trịrấ t cao, vì đó là biể u hiệ n cho những khảnă ng củ a Matlab. Ví dụ : Thửchạ y Start -> Matlab -> Demos và chạ y mộ t ứng dụ ng mẫ u trong cửa sổDemo(s). Ghi chú: Lệ nh này sẽxóa tấ t cảgiá trịcủ a các 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 và câu (mệ nh đ ề ) của Matlab được đ ánh giá khi bạ n gõ vào 'Cửa sổ lệ nh', và các kế t quảtính toán cũ ng được thểhiệ n tạ i đ ây. Không giố ng như Fortran và các ngôn ngữtính toán cầ n biên dị ch khác, Matlab là mộ t môi trường tương tác – bạ nđ ưa ra một câu lệ nh, và Matlab cốgắ ng thực thi nó ngay lậ p tức trước khi đòi hỏ i 1 lệ nh tiế p theo. - Các diễ n giả i và câu cũ ng đư ợc sửdụ ng trong các 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 là  >> diễ n giả i - Các diễ n giả i thường đượ c soạ n bằ ng các toán tử, các hàm, và tên các biế n, và đ ược hiể n thịtrên màn hình sau khi ấ n Enter. Các câu lệ nh có dạ ng ‘ tên biế n= -9- Bài giảng Tin Ứng dụng 2 – Matlab 7 diễ n giả i’thì diễ n giải đ ó sẽđ ược gán cho biế nđ ểsửdụng sau này. Khi ‘tên biế n’ và dấ u‘ =’ được bỏđi thì 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) và hiể n thịtrên mà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 một câu bằ ng ba dấ u chấ m‘ …’ ởcuối dòng. - Có thểđ ặ t mộ t vài câu lệ nh trên cùng mộ t hàng, ngă n cách bởi 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 thì kế t quảcủa lệ nh đ ó sẽkhông được hiể n thị , tuy nhiên yêu cầ u tính vẫ n được thực hiệ n (phép tính hay phép gán vẫ n được thực hiệ n, kế t quảcó trong workspace). Điề u này là thiế t yế u trong việ cẩ nđ i các 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 toán với các ma trậ n lớn). - Bạ n có thểxóa trắ ng toà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 các biế n hiệ n có không thay đ ổi hay mấ t đi. * Cửa sổ không gian làm việ c (workspace): Các biế n và dữliệ u mà bạ n nhậ p vào hoặ c tính toán ra sẽđ ược Matlab lưu trong mộ t phầ n gọi là '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, sẽ đ ược thểhiệ n trong không gian làm việ c - Lệ nh 'who' hoặ c 'whos' liệ t kê các biế n hiệ n có trong 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 các biế n hiệ n có cùng kiể u loạ i và kích cỡcủa chúng. - Đểbiế t giá trịhiệ n tạ i của mộ t biế n, bạ nđ ánh vào tên biế n tạ i dấ u nhắ c của cửa sổlệ nh và 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 2 – Matlab 7 * Cửa sổbiên tậ p mả ng (ma trậ n nói chung): Khi ta đã có một mả ng, ta có thể chỉ nh sửa, biên tậ p lạ i nó bằ ng Array Editor. Công cụnày làm việ c nhưmộ t bả ng tính (spreadsheet) cho ma trậ n. Ví dụ: Có ma trậ n M, hãy thửclick và thay đổ i nó, thay đổ i các phầ n tử, hay kích thước ma trậ n. Quay trởlạ i Cửa sổlệ nh và gõ 'M' rồi Enter, xem ma trậ n M của chúng ta sau khi thay đổ i. + Bạ n cũng có thểbiên tậ p lạ i ma trậ n M bằ ng cách đ ánh lệ nh  >> openvar ('C') * Cửa sổđị a chỉthưmục hiệ n thời: Thưmục hiệ n thời là nơi chương trình Matlab sẽtìm các M-file, và các file không gian làm việ c (.mat files) mà bạ n đã Load và Save. 1.6. Ghi & phục hồi dữliệu 1.6.1. Lưu và phục hồi dữliệu - Đểnhớcác biế n, Matlab có thểghi và gọi lạ i dữliệ u từfile trong máy tính của bạ n. Mục Save Workplace as... trong bả ng chọ n File sẽmởhộ p hộ i thoạ i đểghi tấ t cảcác biế n hiệ n tạ i. - Tương tự, mục Load Workplace trong bả ng chọ n File sẽmởhộ p hội thoạ i đểgọi lạ i tấ t cảcác biế n mà ta đ ã ghi lạ i từkhông gian làm việ c trước. Ghi chú: việ c Load không làm mấ t các biế n hiệ n có trong không gian lamg việ c hiệ n tạ i. Khi ta gọ i lạ i các biế n mà chúng trùng tên với các biế n trong không gian làm việ c củ a Matlab, nó sẽthay đ ổi giá trịcủa các biế n theo giá trịcủ a các biế n gọ i ra từfile. - Ngoài các bả ng chọ n, Matlab còn cung cấ p hai lệ nh Save và Load, nó thực hiệ n một cách mề m dẻ o hơn. Lệ nh save cho phép bạ n ghi một hoặ c nhiề u hơn mộ t biế n tùy theo sựlựa chọn. Ví dụ : >> save  >> save dulieu  - lưu tấ t cảcác biế n trong Matlab theo kiể u nhịphân trong file matlab.mat - lưu tấ t cảcác biế n trong Matlab theo kiể u nhịphân trong file dulieu.mat >> save dulieu A B C D -ascii  - lưu các biế n A, B, C, D theo dạ ng mã ASCII trong file dulieu.mat 1.6.2. Lưu một bộdữliệu (record) - 11 - Bài giảng Tin Ứng dụng 2 – Matlab 7 1.6.3. Lưu một phiên (session) Khi làm bài tậ p, việ c lưu tấ t cảcác thông sốđầ u vào và đ ầ u ra củ a phiên làm việ c với Matlab hiệ n tạ i củ a bạ n cho việ c in ấ n sau này là rấ t hữu ích. Lệ nh 'diary' sử dụ ng cho mục đích này, sẽlưu tấ t cảnhững thông sốđầ u vào và đ ầ u ra ởgiữa hai lệ nh 'diary' và 'diary off'. Từdấ u nhắ c ởdòng lệ nh, bạ n đánh: >> diary('diary_file_name') >> ........ (các câu lệ nh củ a bạ n ởđây)   >> diary off 1.7.  Sửdụng Help - Trợgiúp và thông tin vềcác lệ nh của Matlab có thểđ ược tìm thấ y theo nhiề u cách: + Từdòng lệ nh bằ ng cách đ ánh lệ nh 'help chủđ ề ' (xem dưới đ ây) + Từcửa sổHelp riêng biệ t xuấ t phát ởMenu Help + Từhelpdesk củ a Matlab lưu trữtrên đ ĩ a hoặ c CD-rom, hoặ c + Từmạ ng Internet - Từdòng lệ nh, đ ơn giả n nhấ t hãy đ ánh lệ nh 'help' và Enter! Kế t quả : Matlab cho ta một bả n tóm tắ t vềhệthống trợgiúp.Mộ t vài dòng đ ầ u tiên của kế t quảsẽnhưsau: HELP topics: (Các chủđ ềtrợgiúp) matlab/general - Các lệ nh với mục đ ích tổng quát. matlab/ops - (operators) Các toán tửvà các ký tựđ ặ c biệ t... matlab/lang - (language) Ngôn ngữlậ p trình... matlab/elmat - (elementary) Ma trậ n că n bả n... matlab/elfun - (elementary functions) Các hàm toán că n bả n. matlab/specfun - (specialized functions) Các hàm toán đặ c biệ t. - Thông thường bạ n sẽthấ y cửa sổtext không đủlớn đ ểchứa tấ t cảthông tin từ một lệ nh Matlab. Do đ ó bạ n có thểsửdụ ng chức nă ng 'more on' đểxem thông tin theo từng trang màn hình, sau đ ó duyệ t từng trang mộ t bằ ng cách nhấ n phím bất kỳ . Đánh 'more off' vào cửa sổlệ nh sẽđưa Matlab trởvềcách cưxửthông thường, không duyệ t từng trang. - Thông thường bạ n có thểkhông nhớchính xác tên củ a một lệ nh Matlab, trong trường hợp đ ó bạ n có thểsửdụ ng lệ nh 'lookfor' (tìm kiế m) nhưmộtsựtrợgiúp. - 12 - Bài giảng Tin Ứng dụng 2 – Matlab 7 Ví dụ, nế u bạ nđ ánh vào dòng lệ nh 'lookfor logarithm', Matlab sẽliệ t kê tấ t cảcác hàm từng biế t của Matlab có liên quan tới Logarit. Hình 1. : Giao diệ n cửa sổHelp củ a Matlab 7.0 1.8. History & Editing - Trong giao diệ n mặ c đ ị nh củ a Matlab, cử a sổ'Command History' (lị ch sửcác lệ nh) nằ m ởgóc phầ n tưbên dưới, phía trái. Trong cửa sổnày, các lệ nh đã sử dụ ng trong các lầ n khởi độ ng Matlab gầ n đây đề uđ ược lưu lạ i. Mỗ i lầ n khởi đ ộng Matlab, toàn bộcác lệ nh sửdụng trong lầ nđ ó sẽđược lưu lạ i dưới dạ ng một nhóm có thểđ óng mởbằ ng nút biể u tượng '+' (expand)hoặ c '-' (collapse) ởđầ u dòng (dòng ghi mố c thờigian giữa hai dấ u chú thích '%'): VD: (+) %-- 8/14/07 3:21 PM --% (-) %-- 8/14/07 3:21 PM --% - Đểgọi lạ i lệ nh từcử a sổ'Command History', bạ n tìm đ ế n lệ nh đ ó bằ ng các thanh cuố n, rồ i nháy đ úp vào tên lệ nh. - Đểgọi lạ i các lệ nh bạ nđ ã sửdụng từdấ u nhắ c củ a cửa sổlệ nh, Matlab dùng các phím mũi tên () trên bàn phím. - Ví dụ , đểgọ i lạ i lệ nh bạ n gõ vào lúc gầ n nhấ t, bạ n nhấ n phím mũ i tên lên (). Tiế p tụ c nhấ n phím này, nó sẽgọ i tiế p lệ nh trước đó. Phím mũ i tên xuống gọi lạ i lệ nh theo thứtựngược lạ i. - 13 - Bài giảng Tin Ứng dụng 2 – Matlab 7 - Các phím mũi tên  và  có thểdùng đ ểthay đổ i vịtrí con trỏtrong dòng lệ nh tạ i dấ u nhắ c củ a Matlab, nhưvậ y chúng ta có thểsửa dòng lệ nh. Thêm nữa, có thể dùng chuột cùng với bộnhớđệ mđ ểcắ t, copy, dán và sửa vă n bả n tạ i dấ u nhắ c của dòng lệ nh. - 14 - Bài giảng Tin Ứng dụng 2 – Matlab 7 2. CHƯƠNG II: TÍNH TOÁN TRONG MATLAB 2.1. Matlab - một máy tính cá nhân * Giới thiệ u các toán tửsốhọc: - Các toán tửsốhọ c của Matlab hoạ t độ ng theo một cú pháp rấ t giố ng với cú pháp của các ngôn ngữkhác mà bạ n có thểđã quen thuộc nhưTurbo Pascal, C, C++, Fortran, Java... - Các toán tửcơbả n gồm có + - * / ^ = và chúng được dùng kế t hợp với ngoặ cđ ơn: ( ). Toán tử'=' là toán tửgán. Toán tử ^ đ ược dùng đ ểcho lũ y thừa: 2^4=16. Với những toán tửnày ta có thểdùng Matlab nhưmộ t máy tính cá nhân đ ơn giả n. * Ví dụ: Bạ n có thểđánh các lệ nh dưới đây vào sau dấ u nhắ c lệ nh: >>_. >> A = 2 + 3/4*5 A = 5.7500 >> B = 2^5 - 3*A B = 14.7500 >> A + B ans = 20.5000 Khi không có toán tửgán, Matlab trảkế t quảcủ a phép tính gầ n nhấ t vào biế n 'ans = ...' (answer). Xem thêm mục 2.2. * Thứtựưu tiên tính toán: Trong ví dụtrên, Matlab đã tính nhưthếnào, 2 + 3/(4*5) hay 2 + (3/4)*5? Matlab làm việ c theo thứtựưu tiên sau: 1. các đạ i lượng trong ngoặ cđ ơn, 2 + 3^2  2. lũy thừa 2 + 9 = 11, 3. * /, làm việ c từtrái qua phả i (3*4/5 = 12/5), 4. + -, làm việ c từtrái qua phả i (3+4-5=7-5), Vì vậ y phép tính ởtrên sẽtheo thứtựư u tiên 3. * Bộcác toán tửcủa Matlab: (Xem thêm Help/Arithmetic operators) Toán tử Mô tả + Cộng - Trừ - 15 - Bài giảng Tin Ứng dụng 2 – Matlab 7 2.2. .* Nhân mả ng cùng kích thước (nhân phầ n tửvới phầ n tử) ./ Chia mảng cùng kích thước (chia phần tửvới phầ n tử) .\ Chia mảng trái : Toán tửHai chấ m .^ Lũy thừa mảng, lũy thừa từng phầ n tửvới phầ n tử .' Chuyển vịmảng ' Chuyển vịma trận - ma trậ n liên hợp (MTLH phức) * Nhân (ma trậ n). Đạ i sốtuyế n tính. / Chia (ma trận), B/A B*inv(A), chính xác hơn B/A=(A'\B') \ Chia (ma trận) trái. A\B ~ inv(A)*B ^ Lũy thừa ma trận Biến trong Matlab * Ví dụ: >> 2^3-3 ans = 5 >> ans*6 ans = 30 - Kế t quảcủa phép tính thứnhấ tđ ược Matlab gán cho biế n 'ans', biế n này đ ược sử dụ ng cho phép tính thứhai, qua đ ó giá trịcủ a nó đã đ ược thay đổ i (được gán lạ i). - Chúng ta có thểsửdụng tên riêng do ta đ ặ tđ ểlưu các giá trị số >> x = 2^3-3 x = 5 >> y = x*6 y = 30 từđó 'x' có giá trịbằ ng 5 và 'y' bằ ng 30. Chúng có thểđ ược sửdụng cho những tính toán tiế p theo. - Đây là các ví dụvềvềcâu lệ nh gán: các giá trịđược gán cho các biế n. Cầ n phả i gán một giá trịcho mỗ i biế n trước khi sửdụng biế n đó trong câu lệ nh tiế p theo. * Quy tắ c đặ t tên biế n: - Tên biế n hợp lệcấ u tạ o bởi các chữvà số, bắ tđ ầ u bằ ng chữ. Nên đặ t tên biế n phả n ánh giá trịmà nó đạ i diệ n cho. Các tên sau hợp lệ : - 16 - Bài giảng Tin Ứng dụng 2 – Matlab 7 Hsig, Let2try, Dhaluu, T1, V2, z25c5 Các tên sau không hợp lệ : chu-ky, 2P, %x, @wru - Chiề u dài tên biế n: Mặ c dù tên biế n có thểcó đ ộdài tùy ý, nhưng Matlab sẽchỉ sửdụ ng N ký tựđ ầ u tiên củ a tên, vì vậ y các biế n khác nhau không đ ược có N ký tựđầ u tiên đề u giống nhau. N = namelengthmax N = 63  - Bạ n có thểsựdụng hàm 'isvarname' đểkiể m tra tính hợp lệcủ a tên biế n. Hàm trả vềgiá trị1 nế u tên hợp lệvà 0 nế u tên đó không hợp lệ . isvarname 8th_column ans = 0  % Not valid - begins with a number - Thông thường, tên biế n không phụthuộc vào chữhoa - chữthường. Vì thế'xyz' sẽgiố ng như'xYz'. - Tránh đ ặ t tên biế n trùng với tên các hàm chuẩ n, hoặ c các từkhóa của Matlab. Vì nhưvậ y thông thường bạ n sẽkhông thểsửdụ ng các hàm, từkhóa của Matlab nữa. VD: Nế u bạ n gán cho 1 biế n tên là 'sqrt' một giá trị , thì bạ n sẽkhông thểsửdụ ng hàm că n bậ c hai (sqrt) nữa! - Matlab đã đ ă ng ký trước rấ t nhiề u từkhóa (xem bằ ng lệ nh 'iskeyword'): 'break' 'case' 'catch' 'continue' 'else' 'elseif' 'end' 'for' 'function' 'global' 'if' 'otherwise' 'persistent' 'return' 'switch' 'try' 'while' và các hàm, xem danh sách trong Help/Functions/Categorical List); và các hằ ng số . Một sốhằ ng sốvà hàm thông dụ ng có thểxem ởmục 2.5 và 2.6. 2.3. Các kiểu dữliệu - Đị nh dạng kết quả * Tổng quát vềcác kiể u dữliệ u: - Matlab sửdụ ng 15 kiể u (loạ i) dữliệ u chính. Mỗi một kiể u dữliệ u này đ ề uở dạ ng củ a mộ t ma trậ n hoặ c mả ng. Các mả ng hoặ c ma trậ n này có kích cỡtố i thiể u là 0-nhân-0 và có thểphát triể n tới mả ng n-chiề u với kích cỡtùy ý. - Ngoài ra còn có các kiể u dữliệ u do người dùng đị nh nghĩ a (thiế t lậ p), kiể u hướng đ ối tư ợng, và kiể u dữliệ u liên quan tớiJava. - 17 - Bài giảng Tin Ứng dụng 2 – Matlab 7 Hình 2.1. Các kiể u dữliệ u của Matlab * Đị nh dạ ng kế t quả : - Sửdụ ng lệ nh 'format' cùng các đị nh dạ ng. Lệ nh này chỉlàm thay đổ i cách mà kế t quảđư ợc hiể n thịtrên màn hình, không làm thay đ ổi độchính xác của sốhoặ c phép tính. Hầ u hế t các phép tính sốhọ c củ a Matlab đượ c thực hiệ n với độchính xác Double, nghĩ a là độchính xác 16 chữsốsau dấ u phẩ y thậ p phân. - Đểthực hiệ n lênh, từdấ u nhắ c củ a cửa sổlệ nh đánh mộ t trong các lệ nh sau: format short : dấ u phẩ y thậ p phân cốđ ị nh, 5 chữsố format long : dấ u phẩ y cốđị nh, 15 chữsố format short e : ký hiệ u khoa họ c, 5 chữsố format long e : ký hiệ u khoa họ c, 15 chữsố format short g : dấ u phẩ y cốđị nh hoặ c di độ ng, 5 chữsố format long g : dấ u phẩ y cốđị nh hoặ c di độ ng, 15 chữsố format hex : format dạ ng Hexa (hệ16) format '+' : dương (+), âm (-), và ký tựtrắ ng (blank) ứng với 0 format bank : Dollars và cents format rat : tỷlệxấp xỉinteger - Thông thường, 'format short' là dạ ng mặ c đ ị nh. Khi đ ược gọ i lên, một dạ ng format sẽcó hiệ u lực tới khi nó đ ược thay đổ i. 2.4. Các kiểu dữliệu số& sốphức - Integer: ví dụnhư-5 hay 9888. - 18 - Bài giảng Tin Ứng dụng 2 – Matlab 7 - Double precision reals: Trong Matlab, tấ t cảcác sốthực đ ược lưu với đ ộchính xác double, không giố ng các ngôn ngữlậ p trình khác nhưC hay Fortran khi chỉcó một loạ i riêng biệ t float hay real*8 cho các sốthực vớiđộchính xác single. - Một dạ ng ngắ n cực kỳhiệ u quảcho việ c nhậ p các sốrấ t lớn hoặ c rấ t bé là dạ ng -7 ký hiệ u 'e'. Chẳ ng hạ n -1.23456e-7 là dạ ng ngắ n của -1.23456 x 10 ; và 8.76e+12 12 là dạ ng viế t ngắ n của 8.76 x 10 . Ví dụ : >> 1.23e-2 ans = 0.0123 >> 5e6 ans = 5000000   - Sốphức: đ ược nhậ p vào dưới dạ ng 3+2*i hoặ c 3+2*sqrt(-1). - Chuỗ i: là mộ t mả ng tậ p hợp củ a các ký tự, được nhậ p vào dưới dạ ng 'abc' hoặ c 'vi du day la mot chuoi'. Trên đ ây là những kiể u dữliệ u cơbả n mà bạ n sẽrấ t thường dùng trong khóa học này. Đểbiế t danh sách đ ầ yđ ủhơn, bạ n có thểdùng lệ nh 'help datatypes' từcửa sổ nhậ p lệ nh. 2.5. Các ký tự, Chuỗi và Văn bản - Khảnă ng xửlý vă n bả n trong tính toán rấ t hữu ích cho việ c nhậ p/xuấ t kế t quả từ/tới màn hình và file lưu trên đĩ a. Đểcó thểquả n lý vă n bả n, một loạ i dữliệ u là 'character' được đưa vào Matlab. Mộ t mả nh của vă n bả nđ ơn giả n là mộ t chuỗi (vectơ) hay một mảng các ký tự. VD: >> t1='A'  sẽgán giá trịA cho mộ t mả ng ký tựtên 't1', kích thước 1 x 1. >> t2='BCDE'  sẽgán giá trịBCDE cho mộ t mả ng ký tựtên 't2', kích thước 1 x 4. - Các chuỗi có thểđ ược cộ ng với nhau bằ ng cách sửdụ ng các toán tửthao tác trong mả ng. VD: >> t3=[t1, t2]  sẽgán giá trịABCDE cho mộ t mả ng ký tựtên 't3', kích thước 1 x 5. >> t4=[t3, ' la 5 ky tu dau tien 'trong bang chu cai latinh.'] sẽgán giá trị 'ABCDE la 5 ky tu dau tien ' 'trong bang chu cai latinh.' cho một mả ng ký tựtên 't4', kích thước 2 x 26. - 19 - ';...  ' Bài giảng Tin Ứng dụng 2 – Matlab 7 - Cầ n chú ý rằ ng sốcác ký tựởhai dòng phả i bằ ng nhau, nế u không việ c thực thi câu lệ nh trên sẽdẫ n tới một lỗi: ??? Error using ==> vertcat All rows in the bracketed expression must have the same number of columns. - Dấ u ba chấ m '...' thểhiệ n rằ ng câu lệ nh còn tiế p tục ởdòng sau. * Chuyể n đổ i giữa chuỗi và số - Đôi khi chúng ta cầ n chuyể n mộ t chuỗi thành mộ t sốtương ứng, hoặ c ngược lạ i. Các công việ c chuyể n đổ i này được thực hiệ n bởi lệ nh: - 'str2num': chuyể n một chuỗi thành sốtương ứng và hai lệ nh: - 'num2str': chuyể n một sốthực thành chuỗ i tươ ng ứng - 'int2str': chuyể n một chuỗi thành sốtương ứng - Những lệ nh này rấ t hữu ích trong việ c tạ o ra các nhãn và tiêu đềmột cách tự đ ộ ng, chẳ ng hạ n như 2.6. Các hằng sốdựng sẵn Matlab đ ị nh nghĩ a sẵ n nhiề u hàm sốrấ t hữu ích, bao gồm:  pi, = 3.141592654...  i và j, cảhai đ ề u bằng phầ n ảo của sốphức, = sqrt(-1)  inf, 'infinity' hay 'vô cùng'  NaN, 'not-a-number' hay 'không phả i là mộ t số '  ans, luôn được gán cho kế t quảcủ a lệ nh tính trước đ ó  ... Bạ n nên tránh gán lạ i giá trịkhác cho các hằ ng sốnêu trên nế u có thể . Chỉcó một ngoạ i lệlà i và j, vì cảhai thường đ ược sửdụng nhưcác chỉsốcủ a vòng lặ p. Việ c gán lạ i giá trịkhác cho các hằ ng sốnày là chấ p nhậ nđ ược vì sốphức luôn có thể thu được bằ ng cách sửdụng sqrt(-1). 2.7. Các hàm dựng sẵn - Cũng nhưnhững ngôn ngữbậ c cao khác, Matlab thực thi các 'function' (hàm) nhiề u hơn 'procedure' (chương trình con). Các hàm này bao gồm că n bậ c hai - 20 -
- Xem thêm -

Tài liệu liên quan