Các phép toán trong ma tr nậ ..... Gi i các phả ương trình tượng tr ngư .... 81 Các hàm vector Vector Functions .... 83 Các phương trình tuy n tính Linear Equationsế ..... 89 Các hàm âm
Trang 1TR ƯỜ NG Đ I H C KHOA H C T NHIÊN Ạ Ọ Ọ Ự
KHOA HÓA HỌC
Trang 2HÀ N I-2003Ộ
L i gi i thi u ờ ớ ệ
MATLAB integrates mathematical computing, visualization, and a powerful language to provide a flexible environment for technical computing MATLAB includes tools for: Data acquisition
Data analysis and exploration
Visualization and image processing
Algorithm prototyping and development
Modeling and simulation
Programming and application development
Trang 31 Cài đ t và giao di n c a matlabặ ệ ủ 8
1.1 C u hình yêu c u v i Matlab 6.0, 6.5 ấ ầ ớ 8
1.2 Cài đ t ph n m mặ ầ ề 9
1.3 Giao di nệ 9
2 Nh ng khái ni m c sữ ệ ơ ở 10
2.1 Các phím t tắ 10
2.2 L p trình v i Matlabậ ớ 10
2.2.1 Bi n trong matlabế 12
2.2.2 Nh p d li uậ ữ ệ 13
2.2.3 Làm vi c v i workspaceệ ớ 14
2.2.4 Làm vi c v i command historyệ ớ 15
2.2.5 Làm vi c v i current directory, qu n lý t pệ ớ ả ệ 17
3 Các d ng hi n th s và các hàm toán h c thông d ngạ ể ị ố ọ ụ 18
3.1 Các d ng hi n th sạ ể ị ố 18
3.2 S ph cố ứ 18
3.3 Các hàm toán h c thông d ngọ ụ 19
4 Qu n lý ma tr n d li uả ậ ữ ệ 20
4.1 Ma tr n 1 chi uậ ề 20
4.1.1 Ma tr n hàngậ 20
Trang 44.1.2 Ma tr n c tậ ộ 21
4.2 Ma tr n nhi u chi uậ ề ề 22
4.3 Các phép toán trong ma tr nậ 23
4.5 Đ a ch d li u trong ma tr nị ỉ ữ ệ ậ 24
4.6 Các hàm thông d ngụ 25
6 Qu n lý văn b nả ả 27
7 Qu n lý th i gianả ờ 29
7.1 Các hàm th i gianờ 29
7.2 L p l ch các tháng ậ ị 29
7.3 Hi n th ngày gi hi n t iể ị ờ ệ ạ 29
7.3 Tính kho ng th i gian ả ờ 31
8 C u trúc vòng l p và đi u ki n ấ ặ ề ệ 31
8.1 Vòng l p for ặ 31
8.2 Vòng l p whileặ 32
8.3 C u trúc đi u ki n if-else-endấ ề ệ 33
8.4 C u trúc switch-caseấ 33
9 Phân tích d li u và các hàm chuy n đ i Fourierữ ệ ể ổ 34
10 T o và gi i h phạ ả ệ ương trình tuy n tínhế 38
11 Đa th c và các hàm n i suyứ ộ 40
11.1 Các phép toán đ i v i đa th cố ớ ứ 40
11.1.1 C ng, tr hai đa th cộ ừ ứ 40
11.1.2 Nhân, chia hai đa th cứ 41
11.1.3 Tính giá tr đa th cị ứ 41
11.1.4 Đ o hàm và tích phân ạ 42
11.1.5 Nghi m c a phệ ủ ương trình đa th cứ 42
11.2 Các phép n i suy d li uộ ữ ệ 43
12 Hàm s ố 49
12.1 Kh o sát hàm sả ố 49
* V đ th hàm s : ẽ ồ ị ố 49
* Xác đ nh các c c tr trong lân c n h pị ự ị ậ ẹ 49
12.2 Tìm giao đi m c a đ th hàm s v i tr c hoành và v i đ th hàm s khácể ủ ồ ị ố ớ ụ ớ ồ ị ố 50
12.3 Đ o hàmạ 50
12.4 Tích phân 50
13 H p công cộ ụ 51
13.1 Gi i thi u các h p công cớ ệ ộ ụ 51
13.2 H p công c toán h cộ ụ ọ 52
13.1.1 Bi n tế ượng tr ng ư 52
* Khái ni mệ 52
* Đ i tên bi nổ ế 53
* Hàm double chuy n m t h ng tể ộ ằ ượng tr ng thành ki u s ư ể ố 53
13.1.2 Các phép toán trên bi u th c tể ứ ượng tr ngư 54
* Các hàm s , ma tr n s d ng ký t +, -, *, /, ^ đ th c hi n các phép toán c ngố ậ ử ụ ự ể ự ệ ộ tr , nhân, chia, mũ hóaừ 54
Trang 5* Hàm compose(f,g)=f(g(x)) k t h p hai hàm s và finverse(g) xác đ nh hàmế ợ ố ị
ngượ ủc c a g 55
13.1.3 Đ o hàm và tích phânạ 55
13.1.4 Gi i các phả ương trình tượng tr ngư 57
14 Đ h a trong matlabồ ọ 60
14.1 Đ h a trong không gian hai chi uồ ọ ề 61
14.1.1 Các hàm v đ thẽ ồ ị 61
14.1.2 Các tùy ch n ọ 62
14.1.3 H tr c t a đ , nhãn, lệ ụ ọ ộ ưới, h p ch a tr c, chú thíchộ ứ ụ 63
14.2 Đ h a trong không gian 3 chi uồ ọ ề 67
14.2.1 Đ th b m t và lồ ị ề ặ ưới 67
14.2.3 Các tùy ch n, h tr c t a đ , nhãn, lọ ệ ụ ọ ộ ưới, h p ch a tr c, chú thíchộ ứ ụ 71
14.2.4 Đi u khi n màu và ánh sángề ể 74
Các kh i l nh c b nố ệ ơ ả 76
Các l nh đa năngệ 76
Qu n lý hàm và l nh ả ệ 76
Qu n lý bi n và không gian làm vi cả ế ệ 77
Ki m soát command windowể 77
Làm vi c v i file và môi trệ ớ ường ho t đ ngạ ộ 77
Kh i đ ng và thoát chở ộ ương trình MATLAB 78
Các ký t đ c bi t và toán t ự ặ ệ ử 78
Các hàm logic 79
Xây d ng và g r i ngôn ng l p trìnhự ỡ ố ữ ậ 79
MATLAB là m t ngôn ng l p trìnhộ ữ ậ 79
Đi u khi n lu ng (Control Flow)ề ể ồ 79
Nh p d li u (Interactive Input)ậ ữ ệ 79
L p trình hậ ướng đ i tố ượng (Object-Oriented Programming) 80
G r iỡ ố 80
Các ma tr n c s và thao tác v i ma tr n (Elementary Matrices and Matrixậ ơ ở ớ ậ Manipulation) 80
Ma tr n c s và m ng (Elementary Matrices and Arrays)ậ ơ ở ả 80
H ng s và bi n đ c bi t (Special Variables and Constants)ằ ố ế ặ ệ 81
Ngày tháng và th i gian (Time and Dates)ờ 81
Thao tác v i ma tr n (Matrix Manipulation)ớ ậ 81
Các hàm vector (Vector Functions) 82
Các ma tr n chuyên d ng (pecialized Matrices)ậ ụ 82
Các hàm toán h c c s (Elementary Math Functions)ọ ơ ở 82
Các hàm toán h c chuyên d ng (Specialized Math Functions)ọ ụ 83
Chuy n đ i h tr c t a đ (Coordinate System Conversion)ể ổ ệ ụ ọ ộ 83
Hàm ma tr n và đ i s h c tuy n tính (Matrix Functions - Numerical Linear Algebra )ậ ạ ố ọ ế
83
Phân tích ma tr n (Matrix Analysis)ậ 83
Các phương trình tuy n tính (Linear Equations)ế 84
Trang 6Giá tr duy nh t và giá tr riêng (Eigenvalues and Singular Values)ị ấ ị 84
Các hàm ma tr n (Matrix Functions)ậ 84
Các hàm c p dấ ưới (Low Level Functions) 84
Phân tích d li u và hàm chuy n đ i Fourier (Data Analysis and Fourier Transformữ ệ ể ổ Functions) 84
Sai phân h u h n (Finite Differences)ữ ạ 85
S tự ương quan (Correlation) 85
L c và x p tr t t (Filtering and Convolution)ọ ế ậ ự 85
Các hàm n i suy và đa th c (Polynomial and Interpolation Functions)ộ ứ 86
Đa th c (Polynomials)ứ 86
N i suy d li u (Data Interpolation)ộ ữ ệ 86
Các phương pháp toán h c không tuy n tính và các hàm ch c năng (Functionọ ế ứ Functions - Nonlinear Numerical Methods) 87
Hàm ma tr n r i r c (Sparse Matrix Functions)ậ ờ ạ 87
Các ma tr n r i r c c s (Elementary Sparse Matrices)ậ ờ ạ ơ ở 87
Chuy n đ i gi a ma tr n r i r c và ma tr n đ y đ (Full to Sparse Conversion)ể ổ ữ ậ ờ ạ ậ ầ ủ 87
Làm vi c v i d li u khác 0 c a ma tr n r i r c (Working with Nonzero Entries ofệ ớ ữ ệ ủ ậ ờ ạ Sparse Matrices) 87
Hình nh ma tr n r i r c ả ậ ờ ạ 88
Thu t toán x p x p (Reordering Algorithms)ậ ắ ế 88
Quy t c, S đi u ki n, Th t (Norm, Condition Number, and Rank)ắ ố ề ệ ứ ự 88
Phương th c r i r c c a các phứ ờ ạ ủ ương trình tuy n tính (Sparse Systems of Linearế Equations) 88
Giá tr duy nh t và giá tr riêng r i r c (Sparse Eigenvalues and Singular Values)ị ấ ị ờ ạ 88
Các hàm t o âm thanh (Sound Processing Functions)ạ 89
Các hàm âm thanh chung (General Sound Functions) 89
Các hàm âm thanh chuyên d ng (SPARC station-Specific Sound Functions)ụ 89
Hàm âm thanh v i format wav (.WAV Sound Functions)ớ 89
Các hàm xâu ký t (Character String Functions)ự 89
Chung (General) 89
Chuy n đ i gi a xâu và hàm (String to Function Handle Conversion)ể ổ ữ 89
Thao tác v i xâu (String Manipulation)ớ 89
Chuy n đ i gi a xâu và s (String to Number Conversion)ể ổ ữ ố 90
Chuy n đ i c s (Radix Conversion)ể ổ ơ ố 90
Các hàm vào/ra file (File I/O Functions) 90
File Opening and Closing 90
D li u ngôn ng máy (Unformatted I/O)ữ ệ ữ 90
D li u đã format (Formatted I/O)ữ ệ 90
V trí file (File Positioning)ị 90
Chuy n đ i xâu (String Conversion)ể ổ 90
Vào ra file chuyên d ng (Specialized File I/O)ụ 91
Các hàm bitwise (Bitwise Functions) 91
Các hàm c u truc (Structure Functions)ấ 91
Trang 7Các hàm đ i tố ượng Matlab (MATLAB Object Functions0 91
Giao di n Malab v i Java (MATLAB Interface to Java)ệ ớ 91
Các hàm m ng t bào (Cell Array Functions)ả ế 92
Các hàm m ng nhi u chi u (Multidimensional Array Functions)ả ề ề 92
Đ th và hình nh d li u (Plotting and Data Visualization)ồ ị ả ữ ệ 92
Đ th và bi u đ c b n (Basic Plots and Graphs)ồ ị ể ồ ơ ả 92
V đ th 3 chi u (Three-Dimensional Plotting)ẽ ồ ị ề 92
Đ th c t l p th tích (Volumetric slice plot)ồ ị ắ ớ ể 93
Chú thích và đường lướ ệ ụi h tr c đ th (Plot Annotation and Grids)ồ ị 93
Đ th b m t, lồ ị ề ặ ưới, đường đ ng m c (Surface, Mesh, and Contour Plots)ồ ứ 93
Hình nh kh i (Volume Visualization)ả ố 93
Thi t l p ph m vi (Domain Generation)ế ậ ạ 94
Đi u khi n góc nhìn (View Control)ề ể 95
Ánh sáng (Lighting) 95
Tính trong su t (Transparency)ố 95
Cách t o màu (Color Operations)ạ 96
B n đ màu (Colormaps)ả ồ 96
In n (Printing)ấ 96
Kênh đi u khi n chung và đ h a (Handle Graphics, General)ề ể ồ ọ 96
Làm vi c v i d li u ng d ng (Working with Application Data)ệ ớ ữ ệ ứ ụ 97
T o kênh đi u khi n đ i tạ ề ể ố ượng và đ h a (Handle Graphics, Object Creation)ồ ọ 97
Đi u khi n c a s hình nh và đ h aề ể ử ổ ả ồ ọ 97
Đi u khi n đ h a và h tr cề ể ồ ọ ệ ụ 97
Thao tác v i đ i tớ ố ượng 97
Tác đ ng ngộ ườ ử ụi s d ng đ a vào (Interactive User Input)ư 98
Mi n quan tâm (Region of Interest)ề 98
Giao di n đ h a (raphical User Interfaces)ệ ồ ọ 98
H p tho i (Dialog Boxes)ộ ạ 98
Phát tri n giao di n ngể ệ ườ ử ụi s d ng (User Interface Development) 98
Vào ra c ng n i ti p (Serial Port I/O)ổ ố ế 98
T o m t đ i tạ ộ ố ượng c ng n i ti pổ ố ế 98
Vi t và đ c d li u (Writing and Reading Data)ế ọ ữ ệ 98
Đ nh hình và tr l i thu c tính (Configuring and Returning Properties)ị ả ạ ộ 99
Thay đ i tr ng thái (State Change)ổ ạ 99
L nh đa năng (General Purpose)ệ 99
Trang 81 Cài đ t và giao di n c a matlab ặ ệ ủ
1.1 C u hình yêu c u v i Matlab 6.0, 6.5 ấ ầ ớ
Đ có thông tin m i nh t v yêu c u c a h th ng chúng ta có th vào MathWorksể ớ ấ ề ầ ủ ệ ố ểWeb site (www.mathworks.com), system requirements page
Matlab là m t ph n m m có yêu c u khá cao v i h th ng máy tính, đ ch y ph nộ ầ ề ầ ớ ệ ố ể ạ ầ
m m này máy tính c n đ m b o nh ng y u t t i thi u sau:ề ầ ả ả ữ ế ố ố ể
T i thi u 64 MB RAM đ i v i Windows 98, NT 4.0 và 2000; nên có 128ố ể ố ớ
MB RAM Đ i v i Window XP nên có 256 MB RAMố ớ
Không gian c ng đòi h i tùy thu c kích thổ ứ ỏ ộ ước partition và l a ch n c a b n Càiự ọ ủ ạ
đ t đ y đ các l a ch n ph n m m Matlab 6.5 chi m kho ng 900 MB c ngặ ầ ủ ự ọ ầ ề ế ả ổ ứ
Card hình t i thi u 8 bit và màn hình hi n th t i thi u 256 màu ố ể ể ị ố ể
Nh ng ph n b tr nên cóữ ầ ổ ợ
Card tăng t c đ đ h aố ộ ồ ọ
Printer
Microsoft Word 7.0 (Office 95), 8.0 (Office 97), or Office 2000 is
required to run the MATLAB Notebook
Đ t o các MEX-files c a riêng b n c n có:ể ạ ủ ạ ầ
Trang 9Compaq Visual Fortran 5.0 or 6.1, Microsoft Visual C/C++ version 5.0 or 6.0, Borland C/C++ version 5.0, 5.02, Borland C++Builder version 3.0, 4.0, or 5.0, Lcc 2.4 (bundled with MATLAB)
Adobe Acrobat Reader đ in các tài li u do Matlab cung c p trên m ng.ể ệ ấ ạ
nút trên thanh tiêu đ các c a sề ử ổ
nh ho c b m gi chu t trái vàoỏ ặ ấ ữ ộ
thanh tiêu đ và kéo th Khi các c a s t do chúng có thêm thanh menu (hình 2) đ cácề ả ử ổ ự ể
c a s tr v tr ng thái nh cũ chúng ta vào Viewử ổ ở ề ạ ư Dock (Workspace ho c currentặdirectory )
Matlab có 6 ki u giao di n khác nhau: Default, Command ể ệ Window Only, Single, Short History, Tail History, Five Panel (Hinh 3)
Hình 1: Giao di n m c đ nh c a Matlabệ ặ ị ủ
Hình 2: C a s ử ổ workspace t ự
do
Hình 3: Các ki u giao di n c a ể ệ ủMatlab
Trang 102 Nh ng khái ni m c s ữ ệ ơ ở
2.1 Các phím t t ắ
↑ ho c Ctrl+p ặ G i l i l nh v a th c hi n trọ ạ ệ ừ ự ệ ước đó
ESC ho c ↓ặ Xóa l nh v a g iệ ừ ọ
→ ho c Ctrl+fặ Chuy n con tr sang ph i m t ký tể ỏ ả ộ ự
← ho c Ctrl+bặ Chuy n con tr sang trái m t ký tể ỏ ộ ự
Ctrl+l ho c Ctrl+←ặ Chuy n con tr sang trái m t tể ỏ ộ ừ
Ctrl+r ho c Ctrl+→ặ Chuy n con tr sang ph i m t tể ỏ ả ộ ừ
Ctrl+a ho c Homeặ Chuy n con tr v đ u dòngể ỏ ề ầ
computer Đ a ra tên lo i máy tính ư ạ
Ctr-c D ng chừ ương trình khi máy tình tr ngở ạ
vòng l p không k t thúcặ ếdemo Xem các chương trình mô t kh năng c aả ả ủ
Trang 11xor Phép toán logic ho c tuy t đ iặ ệ ố xor(0,4)=1, xor(4,4)=0,
Trang 12T i c a s ạ ử ổ Workspace và Commad History ta thu được k t qu nh Hình 4 và Hình 5ế ả ư
C a s ử ổ Workspace được g i là không gian làm vi c c a Matlab, nó ch a các bi nọ ệ ủ ứ ế đang s d ng (a, b, c, kq) C a s history ghi l i toàn b quá trình thao tác c a chúng ta.ử ụ ử ổ ạ ộ ủ
2.2.1 Bi n trong matlab ế
* Các phiên b n trả ước 6.5 các bi n, tên hàm và hàm con, tên trế ường c u trúc (structureấfield), M-file, MEX-file và MDL-file gi i h n 31 ký t T phiên b n Matlab 6.5 các tênớ ạ ự ừ ảnày có t i đa 63 ký t Chúng ta có th ki m tra b ng hàm:ố ự ể ể ằ
Tên bi n phân bi t ch hoa và chế ệ ữ ữ
Tên bi n ph i b t đ u là ch sau đó cóế ả ắ ầ ữ
th là s ho c g ch dể ố ặ ạ ưới và không sử
d ng các ký t đ c bi t khácụ ự ặ ệ
a23_er4 đúng1233smds sai
Tên bi n ph i vi t liên t cế ả ế ụ Qwer12 đúng
qwqe 45dr sai
* Ngoài các bi n trong quá trình quá trình l p trình chúng ta đ a vào, Matlab còn có cácế ậ ư
bi n đ c bi t N u chúng ta đ t tên bi n trùng v i bi n đ c bi t thì khi Matlab s d ngế ặ ệ ế ặ ế ớ ế ặ ệ ử ụ
đ n bi n đó giá tr bi n c a chúng ta s b thay đ i ho c giá tr c a bi n đ c bi t khôngế ế ị ế ủ ẽ ị ổ ặ ị ủ ế ặ ệ
đượ ử ục s d ng, t i khi chúng ta xóa bi n do chúng ta đ t trùng.ớ ế ặ
inf Đ ch s vô cùng l n (a/0, a khác 0)ể ỉ ố ớ
NaN ho c nanặ Ch s không xác đ nh (0/0)ỉ ố ị
nargin S các đ i s đố ố ố ược đ a vào hàm đang s d ngư ử ụ
narout S các đ i s hàm đ a raố ố ố ư
realmax S l n nh t c a s th c (1.7977e+308)ố ớ ấ ủ ố ự
Trang 13realmin S nh nh t c a s th c (2.2251e-308)ố ỏ ấ ủ ố ự
Các l nh đ i v i các bi n trong ệ ố ớ ế workspace
clear, clear variables, Xóa toàn b bi n trong không gian làm vi cộ ế ệ
clear global Xóa bi n toàn bế ộ
clear functions xóa các M-, MEX- function
clear bi nế Xóa t ng bi n riêng bi từ ế ệ
clear bi n1 bi n2 bi n3 ế ế ế Xóa các bi n ch nế ọ
clear all Xóa t t c các bi n, hàm, liên k t MEX ấ ả ế ế
who Hi n th các bi n đ nh trong workspaceể ị ế ị
whos Hi n th các bi n cùng các thông tin kích thể ị ế ước, số
byte, ki u m ngể ảexist (‘a’) Ki m tra xem ‘a’ là bi n để ế ược đ nh nghĩa hay hàmị
được đ nh nghĩa, cho k t qu t 0-8 ị ế ả ừ
Đ có thêm thông tin chúng ta th c hi n l nh:ể ự ệ ệ
>> help clear
>> help who
2.2.2 Nh p d li u ậ ữ ệ
Đ nh p gi li u cho m t chể ậ ữ ệ ộ ương trình chúng ta có th nh p tr c ti p trong quá trìnhể ậ ự ế
vi t chế ương trình Tuy nhiên, đi u đó có th gây khó khăn trong l u tr và qu n lý dề ể ư ữ ả ữ
li u Matlab cho phép nh p d li u t m t file văn b n format d ng *.txt Matlab qu nệ ậ ữ ệ ừ ộ ả ạ ả
lý và x lý d li u d ng ma tr n Khi dùng ph n m m notepad, wordpad, đ l p fileử ữ ệ ạ ậ ầ ề ể ậ
Trang 14Trên Hình 6 chúng ta ch n next t đó có hai cách đ t bi n cho d li u ọ ừ ặ ế ữ ệ
D ng 1: có 3 bi n, bi n data là ma tr n 5x5 và 2 bi n còn l i là textdata = [a b c d e]vàạ ế ế ậ ế ạcolheaders=[a b c d e] d ng matran hàng 1x5.ạ
D ng 2: có 5 bi n c t a=[12;23;12;123;23], b=[23;23;23;234;0], c=[234;34;0;234;0],ạ ế ộd=[34;24;0;0;0], e=[345;0;0;0;0] d ng ma tr n c t 5x1ạ ậ ộ
2.2.3 Làm vi c v i ệ ớ workspace
Nh p chu t ph i vào 1 bi n trong workspace ta nh n đấ ộ ả ế ậ ược menu nh hình 7ư
* Open dùng đ bi t và thay đ i các thu c tính c a bi n ể ế ổ ộ ủ ế
Ví d bi n data khi m ta có các thu c tính sauụ ế ở ộ
Bi n data là m t ma tr n 5 hàng năm c t ta có th thay đ i s hàng (ô size), s c t (ôế ộ ậ ộ ể ổ ố ố ộby) và thay đ i giá tr các s trong ma tr n Ki u format các s trong ma tr n trên d ngổ ị ố ậ ể ố ậ ạ shotG, chúng ta s tìm hi u các d ng format s trong ph n sau.ẽ ể ạ ố ầ
* Trong m c Graph là các d ng bi u di n đ th 2D, 3D, c a bi n data.ụ ạ ể ễ ồ ị ủ ế
Hình 6
Hình 7
Trang 15* Import data m thêm các bi n l u trong file d li u *.mat Chúng ta l u ý các bi nở ế ư ữ ệ ư ế
m i m cùng tên s ghi đè lên các bi n hi n th i trong c a s workspace.ớ ở ẽ ế ệ ờ ử ổ
* Workspace có th để ược save l i dạ ướ ại d ng file *.mat c a 1 s bi n l a ch n ho củ ố ế ự ọ ặ
t t ấ c ả các bi n trong ế workspace Khi c n s d ng, t menu c a workspace chúng ta ch nầ ử ụ ừ ủ ọ import data và m l i file này.ở ạ
2.2.4 Làm vi c v i command history ệ ớ
C a s command history l u tr các l nh đử ổ ư ữ ệ ược th c hi n command window Đự ệ ở ể
th c hi n l i m t l nh hay nhóm l nh trự ệ ạ ộ ệ ệ ước đó chúng ta có th kéo th 1 l nh hay m tể ả ệ ộ nhóm l nh t command history vào trong commandệ ừ
window Chúng ta cũng có th kéo 1 l nh hay m tể ệ ộ
nhóm l nh trong command window vào dòng l nhệ ệ
hi n th i đ th c hi n l i các l nh đó ệ ờ ể ự ệ ạ ệ
T command history n u m t nhóm l nh nào đóừ ế ộ ệ
ph i s d ng nhi u l n chúng ta có th save chúngả ử ụ ề ầ ể
dướ ại d ng M-file (Create M-File) Khi c n th c hi nầ ự ệ
l i nhóm l nh này chúng ta ch vi c đánh tên M-fileạ ệ ỉ ệ
Trang 16echo file off, echo on all, echo off all
Đi u khi n c a s l nh l p l i các l nh c aề ể ử ổ ệ ặ ạ ệ ủ M-File
Trang 172.2.5 Làm vi c v i current directory, qu n lý t p ệ ớ ả ệ
Current directory là n i l u tr các file d li u và M-File mà Malab x d ng nh đ aơ ư ữ ữ ệ ử ụ ư ị
ch đ u tiên khi tìm ki m các M-File trong các thỉ ầ ế ư m c có trong đụ ường d n c a Matlab ẫ ủ
B m chu t ph i ta đấ ộ ả ược menu nh hình 9, v i M-File ta có th ch n Open đ m ,ư ớ ể ọ ể ở
s a ch a, v i các file *.mat khi ta ch n open các bi n c a file đử ữ ớ ọ ế ủ ược đ a vào không gianưlàm vi c hi n th i c a Matlab ệ ệ ờ ủ
Trong quá trình làm vi c các file d li u c a chúng ta có th n m th m c b t kỳệ ữ ệ ủ ể ằ ở ư ụ ấ
đ đ a v Current directory chúng ta b m vào nút ể ư ề ấ đ ch n th m c ch a file c n sể ọ ư ụ ứ ầ ử
d ng.ụ
M t chú ý đó là khi chúng ta s d ng m tộ ử ụ ộ
hàm, th t c t t o d ng M-File nh m t l nhủ ụ ự ạ ạ ư ộ ệ
trong command history Matlab ch tìm ki m fileỉ ế
ch a l nh trong đứ ệ ường d n đã đẫ ược đ t s n.ặ ẵ
Vì v y, file c a chúng ta có th đang t n t iậ ủ ể ồ ạ
nh ng Matlab không nh n ra n u nh nó khôngư ậ ế ư
n m trong đằ ường d n đã đ t Đ đ t đẫ ặ ể ặ ườ ng
d n cho th m c ch a file c n s d ng, chúngẫ ư ụ ứ ầ ử ụ
ta vào file Set Path Matlab s hi n th c aẽ ể ị ử
s Set Part (Hình 10) trong đó hi n th đ y đổ ể ị ầ ủ
các folder đã đượ đ t đc ặ ường d n Chúng taẫ
ch n ọ Add Folder , sau đó ch n folder ch aọ ứ
các file c n s d ng r i ch n ầ ử ụ ồ ọ Save Close
Bài t p:ậ
1 Vi t b ng d li u sau dế ả ữ ệ ướ ại d ng file *.txt
Nguyelieu A(mol/L) (Amol/L)Sanpham Th igianluuơ
c) L u các l nh dư ệ ướ ại d ng M-file và th c l i các tính toán theo m c b.ự ạ ụ
2 Vi t M-file tính cho phép nh p m ng 1 chi u x đ tính các giá tr y=ế ậ ả ề ể ịa*x^3+b*x^2+c*x+d v i đi u ki n a,b,c,d,x nh p t bàn phím Đ t tên M-file là ớ ề ệ ậ ừ ặ tgtrb3
Hình 10
Trang 183 Cut trtrb3 t th m cử ư ụ work trong matlab ra ngoài C và đ t đổ ặ ường d n choẫmatlab truy c p t i đ a ch đó.ậ ớ ị ỉ
short format short 1.4142 3.0000 - 2.0000i
shortE format short e 1.4142e+000 3.0000e+000 -2.0000e+000ilong format long 1.41421319796954 3.00000000000000 -
2.00000000000000ilongG format long g 1.41421319796954 3 - 2i
longE format long e 1.414213197969543e+000 3.000000000000000e+000
-2.000000000000000e+000ihex format hex 3ff6a09e04ad9cb8 4008000000000000
Chúng ta ph i hi u r ng Matlab luôn tính toán v i c p đ chính xác nh t có th , khiả ể ằ ớ ấ ộ ấ ể
bi n a hi n th d ng shortG: a=2^(1/2)= 1.4142 không có nghĩa là giá tr c a a d ng l i ế ể ị ạ ị ủ ừ ạ ở
4 s sau d u ph y, theo ng m đ nh matlab tính toán v i hàng trăm s sau d u ph y c aố ấ ẩ ầ ị ớ ố ấ ẩ ủ a
Đ thay đ i d ng hi n th s m c đ nh chúng ta vào ể ổ ạ ể ị ố ặ ị File Preferences Array Editor sau đó l a ch n d ng format phù h p Ngoài ra Preferences là m c cho phépự ọ ạ ợ ụchúng ta thay đ i nhi u giao di n gi a ngổ ề ệ ữ ườ ậi l p trình và ph n m m.ầ ề
3.2 S ph c ố ứ
Malab có hai bi n đ c bi t đó là i=j=ế ặ ệ −1 dùng cho ph n o c a s th c, vai trò c a iầ ả ủ ố ự ủ
và j là tương t nhau u đi m đ c bi t c a Matlab đó là tính toán v i s ph c tự Ư ể ặ ệ ủ ớ ố ứ ương tự
nh s th c ư ố ự
Trong toán h c s ph c có th bi u di n dọ ố ứ ể ể ễ ướ ại d ng sau:
Trang 19Trong đó A,θ và A.eiθlà các d ng bi u di n t a đ c c.ạ ể ễ ở ọ ộ ự
A= a2 +b2 , θ = arc[tan(b/a)], a=A cosθ, b=A sinθ
angle(c) -0.5880 Tính góc s ph c theo radianố ứ
conj(c) 3.0000 + 2.0000i S ph c liên h pố ứ ợ
3.3 Các hàm toán h c thông d ng ọ ụ
atan2(x,y) Hàm ngược tang c a thủ ương s ph n th cố ầ ự
x chia cho ph n th c yầ ự
cos(x), sin(x), tan(x), cosh(x), sinh(x),
gdc(x,y) Ư c s chung l n nh t c a 2 s nguyên x,yớ ố ớ ấ ủ ốlcm(x,y) B i s chung nh nh t c a hai s nguyênộ ố ỏ ấ ủ ố
x,yrem(x,y) Ph n dầ ư c a phép chia x cho yủ
Trang 20a Tính các giá tr :ị
A
A A
C1000
C1000
1ln2
Matlab làm vi c v i các đ i lệ ớ ạ ượng vô hướng, vect , và maơ
tr n Đ i lậ ạ ượng vô hướng ch đ n gi n là ma tr n 1x1, vàỉ ơ ả ậ
vect chính là ma tr n 1 c t ho c 1 dòng T t c các d ng d li u này Matlab ki m soátơ ậ ộ ặ ấ ả ạ ữ ệ ể
VD2: Trong quá trình phân tích Amoni theo phương pháp quang h c chúng ta thu đọ ượ c
d li u v đữ ệ ề ường chu n nh sau:ẩ ư
Trang 21linspace là câu l nh t o ma tr n hàng cú pháp nh sau ệ ạ ậ ư linspace(a,b,c) trong đó a là giá
tr đ u, b là giá tr cu i và c là s giá tr n m trong đo n ị ầ ị ố ố ị ằ ạ [a, b]
D li u v đ h p th không có quy lu t do đó chúng ta ph i nh p t ng giá tr , khiữ ệ ề ộ ấ ụ ậ ả ậ ừ ịchúng ta nh p d li u ph i chú ý gi a các giá tr ph i cách nhau m t d u cách ho c d uậ ữ ệ ả ữ ị ả ộ ấ ặ ấ
‘,’, các giá tr ph i n m trong d u ngo c vuông [ ]:ị ả ằ ấ ặ
Ngoài 2 cách t o ma tr n hàng nh trên chúng ta có th t o các cách sau:ạ ậ ư ể ạ
Trang 22100
1000
Chúng ta có hai phép toán chuy n v là (ể ị ’) và (.’) hai phép chuy n v này ch khác nhauể ị ỉkhi d li u là s ph c Toán t (.’) ch đ n gi n là chuy n v ma tr n, còn toán t (‘)ữ ệ ố ứ ử ỉ ơ ả ể ị ậ ửchuy n c các s ph c trong ma tr n ngu n thành s ph c liên h p:ể ả ố ứ ậ ồ ố ứ ợ
Trang 23./ and \ Chia ma tr n theo t ng v trí tậ ừ ị ương ng hai ma tr nứ ậ
' Chuy n v chuy n liên h pể ị ể ợ
.' Chuy n v không chuy n liên h pể ị ể ợ
Đ hi u rõ h n gi a phép toán s d ng d u (.) và không s d ng ta hãy xét ví d sauể ể ơ ữ ử ụ ấ ử ụ ụ
Trang 24Các phép toán s d ng d u ‘.’ th c hi n trên các v trí tử ụ ấ ự ệ ị ương ng c a hai ma tr nứ ủ ậ h(i,j)=n(i,j)*g(i,j) trong đó i ch v trí hàng, j ch v trí c t.ỉ ị ỉ ị ộ
Các phép toán không s d ng d u ‘.’ tuân theo quy đ nh toán h c v đ nh th c maử ụ ấ ị ọ ề ị ứ
*x)n(i,j)
Trang 25Chúng ta có quy đ nh chung v đ a ch c a ma tr n nh sau: ị ề ị ỉ ủ ậ ư
h(m) Ch ph n t th m trong ma tr n h theo cách đ m liên ti p t trên xu ngỉ ầ ử ứ ậ ế ế ừ ố
dướ ừi, t trái qua ph iả
ph n t trong ma tr n g Malab tìm ki m trong ma tr n h n u cóầ ử ậ ế ậ ế
ph n t có giá tr b ng thì tr k t qu 1, n u không có thì tr giáầ ử ị ằ ả ế ả ế ả
tr 0.ịintersect(g(:),h(:)) Tr k t qu là ma tr n c t các ph n t b ng nhau đả ế ả ậ ộ ầ ử ằ ược s pắ
x p t nh đ n l nế ừ ỏ ế ớsetdiff(g(:),h(:)) Tr k t qu là ma tr n c t các ph n t có trong g mà không cóả ế ả ậ ộ ầ ử
trong h, x p x p t nh đ n l n ắ ế ừ ỏ ế ớsetxor(g(:),h(:)) Tr k t qu là ma tr n c t các ph n t không ph i là ph n tả ế ả ậ ộ ầ ử ả ầ ử
chung c a g và h ủunion(g(:),h(:)) Tr k t qu là ma tr n c t t t c các ph n t có trong g ho c hả ế ả ậ ộ ấ ả ầ ử ặsize(g) Tr k t qu là ma tr n hàng v i hai d li u là s hàng và sả ế ả ậ ớ ữ ệ ố ố
c t ma tr n gộ ậsize(g,1) Tr k t qu là s hangả ế ả ố
Trang 272 Theo dõi nhi t đ t i các v trí khác nhau c a m t thùng ph n ng tĩnh thu đệ ộ ạ ị ủ ộ ả ứ ượ c
Trang 28Column 27
78
>> char(b)
ans =
Khoa Hoa hoc, truong DHKHTN
Các hàm double và abs chuy n v d ng s c a các ký t hàm char là hàm ngể ề ạ ố ủ ự ượ ạ c l ichuy n s v d ng ký t , hàm size cho bi t s ký t trong xâu Chúng ta cũng có thể ố ề ạ ự ế ố ự ể trích d n đo n văn b n trong xâu theo chi u thu n hay ngh ch.ẫ ạ ả ề ậ ị
Các l nh trên chúng ta th y r ng khi hi n th d li u luôn có tên bi n đi cùng ví d ‘cệ ấ ằ ể ị ữ ệ ế ụ
=’ Khi mu u hi n th xâu văn b n mà không hi n th bi n chúng ta dùng hàm disp.ố ể ị ả ể ị ế
>>disp(c)
coh aoH
Trong qúa trình làm 1 bài toán chúng ta c n vi t d li u d ng s vào trong xâu vănầ ế ữ ệ ạ ố
b n khi đó chúng ta ph i chuy n đ i d li u d ng s sang xâu, ta dùng l nh num2str.ả ả ể ổ ữ ệ ạ ố ệ
Trang 297 Qu n lý th i gian ả ờ
Matlab l y m c th i gian là năm 0 theo dấ ố ờ ương l ch t đó tính th i gian nh trên tr cị ừ ờ ư ụ
s trố ước năm không các năm mang d u âm sau năm 0 các năm mang d u dấ ấ ương Đ n vơ ị
th i gian s d ng trong Matlab là ngày, chờ ử ụ ương trình không qu n lý th i gian theo ngàyả ờtháng năm mà theo các con s ví d ngày 19 tháng 07 năm 2003 ng v i con s 732135ố ụ ứ ớ ốngày (tính t ngày d u tiên c a năm 0) S tính ngày c a Matlab chính xác hàng trăm sừ ầ ủ ố ủ ố sau d u ph y, đ chính xác đ n giây chúng ta c n l y t i thi u năm s sau d u ph y.ấ ẩ ể ế ầ ấ ố ể ố ấ ẩ
7.1 Các hàm th i gian ờ
calendar L chị
clock Hi n th th i gian hi n t i dể ị ờ ệ ạ ướ ại d ng vector (number)
cputime Th i gian Matlab đang ho t đ ng (giây)ờ ạ ộ
date Ngày hi n th i, hi n th d ng xâu (Text)ệ ờ ể ị ạ
datenum Tính s ngàyố
datestr Hi n th ngày d ng xâu v i nhi u ki u m c đ nh khác nhauể ị ạ ớ ề ể ặ ị
datevec Chuy n xâu ký t d ng ngày sang d li u d ng ma tr n 1 chi uể ự ạ ữ ệ ạ ậ ề
>> clock % hi n th th i gian lúc th c hi n l nh dể ị ờ ự ệ ệ ướ ại d ng ma tr n hàng ậ
%(năm, tháng, ngày, gi , phút, giây) các ph n t format d ng sờ ầ ử ạ ốans =
Columns 1 through 3
2003 7 19
Columns 4 through 6
17 0 44.023
Trang 31ans b ng t ng s ngày t ngày đ u tiên c a năm 0 t i ngày 19 tháng 7 năm 2003ằ ổ ố ừ ầ ủ ớ
* Hàm etime tính kho ng th i gian gi a hai th i đi m (tính b ng giây), hai th i đi mả ờ ữ ờ ể ằ ờ ể này ph i bi u di n dả ể ễ ướ ại d ng vect g m 6 ph n t d ng s (năm, tháng, ngày, gi , phútơ ồ ầ ử ạ ố ờ, giây)
Trang 32for n= ma tr nậ % d li u d ng ma tr n, đữ ệ ạ ậ ược hi u dể ướ ại d ng vect hàng có ơ
Do n thu c d ng ma tr n d li u s nên ta có th kh i t o n gi ng nh kh i t o maộ ạ ậ ữ ệ ố ể ở ạ ố ư ở ạ
tr n ví d nh n=1:10, n=10,-1,1 ậ ụ ư
8.2 Vòng l p while ặ
Khác v i vòng l p for vòng l p ớ ặ ặ while th c hi n s vòng l p không xác đ nh t i khiự ệ ố ặ ị ớ
bi u th c đi u ki n b vi ph m thì d ng l i Cú pháp vòng l p ể ứ ề ệ ị ạ ừ ạ ặ while nh sau:ư
Trang 33C u trúc này đấ ược áp d ng khi chúng ta mu n m t nhóm l nh đụ ố ộ ệ ược th c hi n ch khiự ệ ỉ
m t đi u ki n nào đó độ ề ệ ược th a mãn.ỏ
>>switch bi u th c đi u ki nể ứ ề ệ
case ki m tra đ c tính 1ể ặ
nhóm l nhệ
case ki m tra đ c tính 1ể ặ
Trang 342 Tìm các s nguyên t t 1 t i 1000 (có th áp d ng hàm factor, size, câu l nh for)ố ố ừ ớ ể ụ ệ
9 Phân tích d li u và các hàm chuy n đ i Fourier ữ ệ ể ổ
Matlab qu n lý d li u d ng ma tr n nên chúng ta d dàng x lý, truy xu t t ng dả ữ ệ ạ ậ ễ ử ấ ừ ữ
li u riêng l cũng nh theo các hàng hay theo các c t.ệ ẻ ư ộ
Ví d : K t qu thí nghi m v i các h ph n ng lo i b nit trong nụ ế ả ệ ớ ệ ả ứ ạ ỏ ơ ước th i rácả
b ng 1 lo i c , đánh giá b ng kh i lằ ạ ỏ ằ ố ượng nit (kg) và s chuy n hóa gi a các d ng Dơ ự ể ữ ạ ữ
li u đệ ược ghi trong file kqtnito.txt nh sau ư
Thietbi Bandau Cuoicung NH3_N NO2_N NO3_N
Trang 36>> xlabel('thu tu thiet bi')
>> ylabel('khoi luong nito (kg)')
Trang 37Phép toán c b n (Basic Operations) ơ ả
cumprod cumprod(b,n), n=1 tích lũy theo c t, n=2 tích lũy theo hàng ộ
cumsum T ng tích lũyổ
cumtrapz T ng tích lũy c a giá tr trung bình 2 s liên ti p (n=1 tính theo c t, n=2ổ ủ ị ố ế ộ
tính theo hàng)
factor Tách s thành các th a s nguyên tố ừ ố ố
inpolygon Tìm các đi m trong vùng đa giácể
max Xác đ nh giá tr l n nh t theo 1 chi uị ị ớ ấ ề
mean Xác đ nh giá tr trung bình theo 1 chi uị ị ề
median Giá tr trung gian trong m ngị ả
min Xác đ nh giá tr nh nh t theo 1 chi uị ị ỏ ấ ề
perms T t c kh năng có th x y ra c a phép hoán v 1 t p sấ ả ả ể ả ủ ị ậ ố
polyarea Di n tích c a đa giácệ ủ
primes T o ra danh sách các s nguyên tạ ố ố
prod Tích s 1 chi u các ph n t trong ma tr nố ế ầ ử ậ
sort X p các ph n t theo chi u tăng d nế ầ ử ề ầ
sortrows X p các dòng theo chi u tăng d nế ề ầ
std Đ l ch chu nộ ệ ẩ
sum T ng các ph n t theo 1 chi u ma tr nổ ầ ử ề ậ
trapz Hàng hay c t cu i cùng c a l nh cumtrapzộ ố ủ ệ
var S thay đ iự ổ
Sai phân h u h n (Finite Differences) ữ ạ
del2 Toán t r i r c Laplacianử ờ ạ
diff Tính đ chênh l ch gi a các ph n t và đ o hàm g n đúngộ ệ ữ ầ ử ạ ầ
gradient Gradient vi phân
Bi n đ i Fourier (FourierTransforms) ế ổ
Trang 38abs Giá tr tuy t đ i và agument s ph cị ệ ố ố ứ
angle Góc pha
cplxpair X p x p các s ph c thành các c p liên h p ph cắ ế ố ứ ặ ợ ứ
fft Bi n đ i Fourier r i r c 1 chi uế ổ ờ ạ ề
fft2 Bi n đ i Fourier r i r c 2 chi uế ổ ờ ạ ề
fftshift Shift DC component of fast Fourier transform to center of spectrum
ifft Bi n đ i Fourier r i r c ngế ổ ờ ạ ược 1 chi uề
ifft2 Bi n đ i Fourier r i r c ngế ổ ờ ạ ược 2 chi uề
ifftn Bi n đ i Fourier r i r c ngế ổ ờ ạ ược n chi uề
Trang 39* Nh đã gi i thi u ph n 4 matlab cung c p các hàm nhân, chia ma tr n do đó ta cóư ớ ệ ầ ấ ậ
th tính nghi m tr c ti p b ng phép chia ma tr n (không s d ng d u ‘.’):ể ệ ự ế ằ ậ ử ụ ấ
>> x=a\b % phép chia trái
V i các h có s bi n l n h n s phớ ệ ố ế ớ ơ ố ương trình thì h có vô s nghi m Khi th c hi nệ ố ệ ự ệ phép toán a\b matlab l a ch n gi i pháp s ph n t 0 c c đ i đ đ a ra 1 b nghi mự ọ ả ố ầ ử ự ạ ể ư ộ ệ
x1 + 2x2 - 4x4 = -3
x1 - x2 - 4x3 + 9x4 = 22
Trang 40gi s 0xả ử 3có h s b ng 0 ta v n ph i nh p giá tr 0 v trí th 4 t ph i qua trái.ệ ố ằ ẫ ả ậ ị ở ị ứ ừ ả
C ng hai đa th c cũng tộ ứ ương t nh c ng ma tr n hàng ự ư ộ ậ
S ph n t trong hàng ph i tố ầ ử ả ương đương
Các v trí thi u ph i đị ế ả ược thêm ph n t 0ầ ử
11.1.2 Nhân, chia hai đa th c ứ
Matlab s d ng hàm conv đ nhân hai đa th c và s d ng hàm deconv đ chia hai đaử ụ ể ứ ử ụ ể
th c.ứ
>> tich=conv(h,g)% nhân hai đa th c, = conv(g,h) = 2xứ 5+13x4+23x3-14x2-105x+75tich =
2 13 23 -14 -105 75
>> [thuong,sodu]=deconv(h,g) % n u v trái ch có m t ph n t thì phép chia ch thuế ế ỉ ộ ầ ử ỉ
được đa th c thứ ương
thuong =
2 1