Introduction to Matlab
Bộ môn VLTH-Viện VLKT
1
Phần I: Nhập môn ngôn ngữ MatLab
I.1 Giới thiệu về phần mềm MatLab
-Là sản phẩm của công ty Phần mềm Matworks
-Có thể chạy trên nhiều chủng loại máy tính khác nhau
-Dùng để giải các bài toán khoa học kỹ thuật
Đặc điểm:dễ sử dụng, các thủ tục trong và ngoài
luôn được hoàn thiện phát triển. Có các thủ tục đồ
hoạ rất mạnh dễ dàng kết hợp với quá trình tính
toán, dễ phát triển cho các ứng dụng khoa học kỹ
thuật. Dễ lập trình, chương trinh ngắn gọn. có hai
chế độ làm việc là hội thoại và lập trình
Introduction to Matlab
Bộ môn VLTH-Viện VLKT
2
I.2 làm việc trong môi trường MatLab
Khởi động MatLab
-Kích chuột vào biểu tượng MatLab
- Trên cửa sổ lệnh có các menu: File, Edit, Tool, View, Help
và một số nút chức năng. Có một cửa sổ lệnh đưa ra kết quả
băng số nhưng có nhiều cửa sổ đồ hoạ
- Cửa sổ lệnh có dấu nhắc >>
- Tại dấu nhắc gõ từng lệnh, Khi nhấn Enter MatLab sẽ thực
hiện lệnh và đưa ra kết quả
- Ví dụ >>x=1+3
>>x=
4
Introduction to Matlab
function H=Hermit(x, n)
if(n==0)
H=1;
elseif n==1
H=2.*x
else
H=2.*x.*Hermit(x,n-1)-2*(n-1).*Hermit(x,n-2)
end
3
Introduction to Matlab
Bộ môn VLTH-Viện VLKT
-Nếu lệnh đưa vào là lệnh đồ hoạ thì kết quả sẽ
đưa ra cửa sổ đồ hoạ
Ví Dụ: ezplot(‘sin(x)/x’,[0,10])
4
Introduction to Matlab
-Trên một dòng chúng ta có thể nhập nhiều lệnh các lệnh cách
nhau bằng dấu ’,‘ hoặc ’;’
>>x=2+3; y=x+1, z=y+x
y=
6
z=
11
»
Nếu viết >>x=2+3; y=x+1, z=y+x;
Kết quả của Z sẽ không được in ra
5
Introduction to Matlab
Bộ môn VLTH-Viện VLKT
Một lệnh của MatLab có thể viết trên nhiều hàng
» x=1+2+8+3+...
14
x=
28
»
-Làm việc ở chế độ lập trình
Một chương trình của MatLab là một file văn bản tên file có
phần mở rộng là “.m” nghĩa là filename.m
Trong file văn bản chứa các lệnh hoặc hàm của MatLab. Để
mở một file văn bản làm như sau:
6
Introduction to Matlab
Bộ môn VLTH-Viện VLKT
7
Introduction to Matlab
Bộ môn VLTH-Viện VLKT
I.2.1 Ma trận và các biểu thức ma trận
Ma trận là kiểu dữ liệu cơ bản trong MatLab
A={aij} hàng i cột j
Có ma trận Số (các phần tử là số thực hoặc phức, độ chính
xác 16 chữ số thập phân)
» a=[1 2 3; 8 9 7; 0 4 7]
a=
»
1
2
3
8
9
7
0
4
7
» z=['a' 'b' 'c'; 's' 'p' 'u']
z=
abc
spu
»
8
Bộ môn VLTH-Viện VLKT
Introduction to Matlab
9
Gọi số hàng của ma trận là m số cột là n
m=1 có vec tơ hàng
n=1 Véc tơ cột
n=m=1 có một vô hướng
Ma trận có thể là hằng hay biến, các hằng hay biến là thành
phần của một biểu thức ma trận
-Các hằng trong ma trận
» a=[1 2 3; 8 9 7; 0 4 7]
» a=[1,2,3;8 9 7; 0 4,7]
a=
a=
»
1
2
3
1
2
3
8
9
7
8
9
7
0
4
7
0
4
7
»
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 10
» a=[1+ 2*i,2+ 8*i; 2*i,7+5*i]
a=
1.0000 + 2.0000i
0 + 2.0000i
2.0000 + 8.0000i
7.0000 + 5.0000i
»
b=[1+ 2*j,2+ 8*j; 2*j,7+5*j]
b=
1.0000 + 2.0000i
0 + 2.0000i
»
2.0000 + 8.0000i
7.0000 + 5.0000i
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 11
-Các biến trong MatLab
-Để lưu giữ các hằng trong quá trình tính toán phải gán nó vào
các biến. Biến là nơi chứa các Hằng, các biến các biểu thức
trong MatLab. Ở chế độ chương trình dùng dấu % để viết lời
chú thích
-Tên biến của MatLab bắt đầu bằng chữ cái tiếp theo tối đa là
30 ký tự chữ cái chữ số hoặc dấu gạch chân.
-Phân biệt chữ hoa và chữ thường
-MatLab có một số tên biến được định nghĩa sẵn
eps, pi, inf,…:
pi=3.1416; eps=2.2204e-016; inf=vô cùng…
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 12
Yêu cầu việc đặt tên biến Không trùng với từ khoá, tên hàm, tên
các biến có sẵn
Để xoá đi tên biến không dùng nữa thì dùng lệnh
>>clear tenbien1 tenbien2
I.2.2 Ma trận và các phép tính trên ma trận
-Phép cộng và trừ
A={aij}, B={Bij}; i=1…m; j=1…n
C=A+B; C={Cij}; Cij=aij+Bij
D=A-B; D={Dij}; Dij=Aij-Bij
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 13
Introduction to Matlab
Khi cộng trừ các ma trận
thì các ma trận phải có
cùng kích thước. Trường
hợp đặc biệt một trong
hai ma trận là vô hướng,
MatLab sẽ hiểu vô hướng
đó là một ma trận cùng
kích thước với ma trận
kia và các phần tử đều có
giá trị bằng vô hướng
Bộ môn VLTH-Viện VLKT 14
Introduction to Matlab
Phép nhân Ma trận
-Ma trận A gồm các phần tử Aij,
(m1,n1)
-Ma trận B gồm các phần tử Bij,
(m2,n2)
-Nếu n1=m2 thì tồn tại phép nhân
ma trận
C=A*B
Cij=Aik*Bkj (K chạy từ 1 …n1)
Phép nhân ma trận không giao hoán
Bộ môn VLTH-Viện VLKT 15
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 16
Phép chia trái và chia phải ma trận
A*x=B
X=A\B
X*A=B
X=B/A
A=
1
3
2
4
6
9
»B
B=
1
2
3
» x=A\B
x=
4.0000
-2.4000
0.6000
7
6
1
B=
1
2
3
» A*x
ans =
1.0000
2.0000
3.0000
»
1*X1+3*X2+7*X3
2*X1+4*X2+6*X3
6*X1+9*X2+1*X3
1
2
6
3
4
9
X1
7
X2
=
6*
1 X3
1
2
3
=
=
=
1
2
3
Introduction to Matlab
18
Phép tính luỹ thừa
C=A*A*A*… *A (n lần) Thì C=A^n
a=
a=
a=
1
2
1
2
1
2
1
3
1
3
1
3
» a^3
ans =
11
30
15
41
» a^0
» a^-1
ans =
ans =
»
1
0
3
-2
0
1
-1
1
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 19
Các phép tính nhân chia luỹ thừa theo các phần tử
tương ứng
Để tiện lợi trong quá trình tính toán các biểu thức toán học
MatLab mở rộng thêm các phép tính nhân chia luỹ thừa theo
các phần tử tương ứng của 2 ma trận và được ký hiệu là:
.*, ./, .\, .^
A={aij} ; B={Bij}
C=A.*B => cij=aij*bij
D=A./B => dij=aij/bij
E=A.\B=> Eij=aij.\bij
F=A.^B=> Fij=aij^bij
Introduction to Matlab
A=
1
2
3
4
» B=[5 6 ; 7 8]
B=
5
6
7
8
» A*B
ans =
19 22
43 50
» A.*B
ans =
5 12
21 32
Bộ môn VLTH-Viện VLKT
»A
A=
1
2
3
4
»B
B=
5
6
7
8
» E=A.^B
E=
1
2187
64
65536
20
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 21
Các hàm toán học sơ cấp trong MatLab
sin
- Sine.
sinh
- Hyperbolic sine.
asin
- Inverse sine.
asinh
- Inverse hyperbolic sine.
cos
- Cosine.
cosh
- Hyperbolic cosine.
acos
- Inverse cosine.
acosh
- Inverse hyperbolic cosine.
tan
- Tangent.
tanh
- Hyperbolic tangent.
atan
- Inverse tangent.
.
.
(để Tham
khảo đầy đủ các hàm gõ lệnh help elfun )
Bộ môn VLTH-Viện VLKT 22
Introduction to Matlab
-Tất cả những hàm trên có đối số là ma trận và kết quả trả về
là một ma trận với những thành phần của nó sẽ tương ứng với
hàm trên từng thành phần của ma trận đối số.
Ví dụ
X={xij}
Y=sin(X); Y={yij}; yij=sin(xij)
x=
1
2
3
8
0
9
» y=sin(x)
y=
0.8415
0.9093
0.1411
0.9894
0
0.4121
Introduction to Matlab
Bộ môn VLTH-Viện VLKT 23
Các phép toán Logic trong MatLab
-Kiểu dữ liệu logic đóng một vai trò quan trọng trong ngôn
ngữ lập trình, song không có kiểu dữ liệu riêng để Mô tả các
đại lượng Logic. MatLab dùng các kiểu số để mô tả kiểu này
A khác 0
True
A bằng 0
false
-các phép tính quan hệ
3> 2 true
2>3 false
Các phép tính quan hệ (ký hiệu là o)
C=AoB ; {cij}={aijobij}
Bộ môn VLTH-Viện VLKT 24
Introduction to Matlab
Lớn hơn >
Nhỏ hơn <
Bằng ==
Không bằng ~=
Lớn hơn hoặc bằng >=
Bé hơn hoặc bằng <=
A=
4
7
9
7
1
9
» A>7
A=
4
7
9
7
1
9
» B= [7 8 0; 9 1 10]
B=
7
8
0
9
1
10
» A>B
ans =
ans =
0
0
1
0
0
1
0
0
1
0
0
0
Introduction to Matlab
Các phép tính logic
Và &
Hoặc |
phủ định ~
A=
1
1
»B
B=
0
9
» A|B
ans =
1
1
2
0
3
3
2
0
0
8
1
0
1
1
Bộ môn VLTH-Viện VLKT
A=
1
1
»B
B=
0
9
» A&B
ans =
0
1
A=
1
1
» ~A
ans =
0
0
2
0
3
3
2
0
0
8
1
0
0
1
2
0
3
3
0
1
0
0
25