Tải bản đầy đủ (.doc) (125 trang)

Ứng dụng matlab trong công nghệ hóa học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.48 MB, 125 trang )

Kỹ thuật tính toán trong công nghệ hóa học
Mục Lục
Lời nói đầu......................................................................................................................................................................2
Phần I: Cơ sở về Matlab................................................................................................................................................3
Chương I:Bắt đầu với Matlab......................................................................................................................................4
1.1 Nhập dữ liệu qua dòng lệnh............................................................................................................................4
1.2 Sử dụng help trực tuyến..................................................................................................................................6
1.3 Đường dẫn......................................................................................................................................................6
1.4 Lưu và tải dữ liệu............................................................................................................................................6
Chương 2: Các cấu trúc cơ bản và biến......................................................................................................................7
2.1 Tính toán với Matlab .....................................................................................................................................7
2.2 Giới thiệu dạng dữ liệu...................................................................................................................................8
Chương 3: Tính toán với ma trận và vec tơ................................................................................................................9
3.1 Vec tơ.............................................................................................................................................................9
3.1.1 Kí tự hai chấm và trích các phần tử của vec tơ.....................................................................................10
3.1.2 Vec tơ cột và sự chuyển vị.....................................................................................................................11
3.1.3 Nhân, chia và mũ của vec tơ.................................................................................................................12
3.2 Ma trận..........................................................................................................................................................13
3.2.1 Các ma trận đặc biệt.............................................................................................................................14
3.2.2 Xây dựng ma trận và cách trích các phần tử của ma trận.....................................................................16
3.2.3 Các phép toán với ma trận....................................................................................................................19
Chương 4: Đồ họa........................................................................................................................................................21
4.1 Đồ thị đơn giản ............................................................................................................................................21
4.2 Vẽ đường .....................................................................................................................................................22
4.3 Vẽ mặt..........................................................................................................................................................26
Chương 5: Các luồng điều khiển................................................................................................................................29
5.1 Các toán tử logic...........................................................................................................................................29
5.2 Lệnh find......................................................................................................................................................29
5.3 Câu lệnh if....................................................................................................................................................31
5.4 Cấu trúc lặp...................................................................................................................................................33
Chương 6: Phương pháp số........................................................................................................................................34


6.1 Đường cong hồi quy.....................................................................................................................................34
6.2 Phép nội suy.................................................................................................................................................34
6.3 Giá trị của hàm số.........................................................................................................................................35
6.3.1 Hàm ‘inline’..........................................................................................................................................36
6.4 Phép tính tích phân và tích phân...................................................................................................................37
6.5 Tính toán số học và cấu trúc điều khiển.......................................................................................................38
Chương 7: Viết chương trình trong Matlab.............................................................................................................38
7.1 Kịch bản và hàm m-file................................................................................................................................38
7.2 Hàm m-file....................................................................................................................................................38
7.2.1 Những biến đặc biệt của hàm số ..........................................................................................................39
7.2.2 Biến địa phương và biến toàn cục.........................................................................................................40
7.2.3 Tính giá trị hàm số cách gián tiếp.........................................................................................................40
Chương 8: Văn bản......................................................................................................................................................42
8.1 Chuỗi kí tự....................................................................................................................................................42
8.2 Vào - ra dữ liệu.............................................................................................................................................43
8.2.1 Vào ra dữ liệu từ bàn phím ..................................................................................................................43
8.2.2 Đưa dữ liệu ra màn hình.......................................................................................................................44
8.2.3 Xử lí file văn bản...................................................................................................................................46
Phần II: Ứng dụng của Matlab..................................................................................................................................50
trong công nghệ hóa học..............................................................................................................................................50
1
Kỹ thuật tính toán trong công nghệ hóa học
Chương 1: Dẫn nhiệt và đối lưu.................................................................................................................................51
1.1. Dẫn nhiệt.....................................................................................................................................................51
1.1.1. Tóm tắt lí thuyết ........................................................................................................................51
1.1.2. Ví dụ.....................................................................................................................................................52
1.2. Đối lưu.........................................................................................................................................................55
1.2.1. Tóm tắt lí thuyết..............................................................................................................................55
1.2.2.Ví dụ......................................................................................................................................................58
Chương 2: Bức xạ nhiệt và truyền nhiệt...................................................................................................................63

2.1. Trao đổi nhiệt bức xạ giữa các vật.............................................................................................................63
2.1.1. Tóm tắt lí thuyết................................................................................................................................63
2.1.2. Ví dụ ....................................................................................................................................................64
2.2. Truyền nhiệt và thiết bị trao đổi nhiệt.........................................................................................................66
2.2.1 Tóm tắt lí thuyết ...............................................................................................................................66
2.1.2. Ví dụ ....................................................................................................................................................67
Chương 3: Kỹ thuật tách chất....................................................................................................................................73
3.1 Cân bằng lỏng hơi.........................................................................................................................................73
3.1.1 Tóm tắt lý thuyết..............................................................................................................................73
3.1.2 Ví dụ......................................................................................................................................................75
3.1.3. Bài tập..................................................................................................................................................79
3.2 Phương pháp McCabe Thiele.......................................................................................................................80
3.2.1 Tóm tắt lý thuyết....................................................................................................................................80
3.2.2 Ví dụ......................................................................................................................................................82
Chương 4: Kỹ thuật phản ứng...................................................................................................................................89
4.1 Nhiệt động học.............................................................................................................................................89
4.1.1 Tóm tắt lý thuyết..............................................................................................................................89
4.1.2 Ví dụ......................................................................................................................................................91
4.2 Các kỹ thuật tiến hành phản ứng..................................................................................................................94
4.2.1 Tóm tắt lý thuyết................................................................................................................................94
4.2.2 Ví dụ .....................................................................................................................................................95
4.2.3Bài tập....................................................................................................................................................99
Phụ lục...........................................................................................................................................................................99
Tìm hiểu về các hàm xây dựng.................................................................................................................................100
Tài liệu tham khảo.....................................................................................................................................................125
Lời nói đầu
Các bài toán công nghệ hóa học trong thực tế là rất phức tạp, chúng ta cần có công
cụ hỗ trợ để giải nó. Thực tế có rất nhiều phần mền, tuy nhiên, trong cuốn sách này,
chúng tôi muốn giới thiệu đến các sinh viên nghành công nghệ hóa một công cụ rất
mạnh, đó là matlab .

Mat lab là một công cụ toán học rất mạnh, ngoài ra nó còn hỗ trợ ngôn ngữ lập
trình bậc 4 với cấu trúc đơn giản, gần gũi, dễ tiếp cận, có thể linh hoạt giải quyết các bài
toán thực tế để đạt được yêu cầu mong muốn. Do đó, việc sử dụng nó làm công cụ để
giải quyết các bài toán kĩ thuật là rất tốt .
Nội dung cuốn sách bao gồm:
• Phần I: Cơ sở về Matlab nhằm giới thiệu cho bạn đọc sơ lược về Matlab
2
Kỹ thuật tính toán trong công nghệ hóa học
• Phần II: Ứng dụng Matlab trong công nghệ hóa học gồm có các chương:
Dẫn nhiệt và đối lưu; bức xạ và truyền nhiệt; kỹ thuật tách chất; kỹ thuật
phản ứng .
Trong từng chương có tóm tắt cơ sở lí thuyết, kèm theo mỗi chương đó thì có các
ví dụ và bài tập liên quan đi kèm, mỗi một ví dụ minh họa được giải bằng tay sau đó
được giải lại bằng matlab một cách sinh động và dễ hiểu, có tính tổng quát cao .
Đưa matlab vào công nghệ hóa là mục đích của chúng tôi. Tuy nhiên, do được biên
soạn lần đầu nên không thể tránh được những sai sót, rất mong nhận được đóng góp của
bạn đọc để cuốn sách trở lên gần gũi hơn với các sinh viên công nghệ hóa cũng như
những người quan tâm đến lĩnh vực này .
Phần I: Cơ sở về Matlab
Matlab là công cụ toán học, trước hết là các phép tính khoa học, ngoài ra nó còn
cho phép vẽ các đồ thị, tính toán ma trận, làm việc với các đa thức và các hàm tích phân.
Đồng thời,chúng ta có thể lập trình các chương trình tính toán một cách linh hoạt theo
nhu cầu của mình. Đặc biệt Matlab tỏ ra rất mạnh mẽ trong việc thiết kế và tính toán
vector và ma trận.
Khi khởi chạy Matlab thì xuất hiện một hoặc nhiều cửa sổ trên màn hình, trong đó
quan trọng nhất là Command window, nó cho phép nhập lệnh và hiển thị kết quả.
3
Kỹ thuật tính toán trong công nghệ hóa học
Chương I:Bắt đầu với Matlab
1.1 Nhập dữ liệu qua dòng lệnh

*) Các lệnh sẽ được thực hiện ngay sau khi ấn phím Enter. Kết quả sẽ được hiển thị
trên màn hình nếu muốn. Tuy nhiên, nó chỉ thực hiện khi các dòng lệnh là hợp lệ. Có thể
tìm hiểu thêm từ menu Help.
Ví dụ :
>> 3 + 7.5
>> 18/4
4
Kỹ thuật tính toán trong công nghệ hóa học
>> 3 * 7
Chú ý : các dấu cách không quan trọng trong Matlab
*) Kết quả tính toán sẽ được tự động lưu vào biến ans
Ví dụ :
>> 14/4
ans =
3.5000
>> ans^(-6)
ans =
5.4399e-04
Chúng ta có thể định nghĩa biến cho riêng mình. Ví dụ:
>> a = 14/4
a =
3.5000
>> b = a^(-6)
b =
5.4399e-04
Dữ liệu sẽ được lưu vào biến a và b.
*) Khi kết thúc dòng lệnh kết thúc bằng dấu “;” thì sẽ không hiển thị kết quả ra
màn hình, có thể kiểm chứng bằng hai biểu thức sau :
>> 3 + 7.5
>> 3 + 7.5;

*) Có thể thực thi nhiều lệnh cùng một lúc, các câu lệnh ngăn cách nhau bởi dấu
phẩy hoặc dấu chấm phẩy.
>> sin(pi/4), cos(pi); sin(0)
ans =
0.7071
ans =
0
Chú ý : cos(pi) không được in ra màn hình
*) Mặc định Matlab chỉ hiển thị 5 chữ số. Do đó, muốn có kết quả chính xác hơn
thì ta dùng lệnh format long thì có thể hiển thị được tới 15 chữ số
>> 312/56
ans =
5.5714
5
Kỹ thuật tính toán trong công nghệ hóa học
>> format long
>> 312/56
ans =
5.57142857142857
Có thể tìm hiểu thêm:
>> help format
*) Khi dòng quá dài có thể dùng dấu “…” để nối câu xuống dòng sau
>> sin(1) + sin(2) - sin(3) + sin(4) - sin(5) + sin(6) - ...
sin(8) + sin(9) - sin(10) + sin(11) - sin(12)
ans =
1.0357
*) Dòng kí tự đặt sau dấu “%” chỉ có tác dụng làm dòng chú thích
>> sin(pi) % dùng để tính giá trị của sin (pi)
1.2 Sử dụng help trực tuyến
Chúng ta có thể dùng cấu trúc

>> help <câu lệnh>
Vd: help ops
Hoặc
>> lookfor <câu lệnh>
Vd : lookfor inverse
1.3 Đường dẫn
Trong Matlab, các lệnh hay các chương trình được chứa trong m-file, cái mà được
biên soạn từ file văn bản nhưng khi lưu với đuôi mở rộng là “.m”. M-file chỉ chạy được
khi nó nằm ở thư mục current working directory
1.4 Lưu và tải dữ liệu
Rất dễ dàng lưu hoặc gọi 1 biến nào đó, ta chỉ cần click vào File- menu sau đó
chọn Save Workspace as... hoặc Load Workspace...
Vd : khi save
>> s1 = sin(pi/4);
>> c1 = cos(pi/4); c2 = cos(pi/2);
>> str = ’hello world’; % đây là 1 chuỗi
>> save % lưu toàn bộ biến với định dạng matlab.mat
>> save data % lưu các biến với định dạng nhị phân data.mat
6
Kỹ thuật tính toán trong công nghệ hóa học
>> save numdata s1, c1 % lưu các biến số s1 và c1 tới numdata.mat
>> save strdata str % lưu biến chuỗi str vào strdata.mat
>> save allcos.dat c* -ascii % saves c1,c2 in 8-digit ascii format to allcos.dat
Còn khi load
>> load % tải tất cả các biến từ file matlab.mat
>> load data s1 c1 % chỉ tải riêng từng biến trong file data.mat
>> load str data % tải tất cả các biến từ file strdata.mat
Chương 2: Các cấu trúc cơ bản và biến
2.1 Tính toán với Matlab
Có 3 loại biến số học: Số nguyên, số thực, số phức. Matlab còn hỗ trợ thêm những

loại không phải là số: Inf (giá trị vô cực, ví dụ : 1/0 sẽ cho kết quả như vậy) hoặc NaN
(không phải là số, là kết quả của các phép tính như 0/0 hoặc vô cùng – vô cùng)
Chúng ta có thể viết các biểu thức trên dòng lệnh của Matlab :
>> (23*17)/7
Kết quả sẽ là :
ans =
55.8571
Matlab có 6 toán tử cơ bản là : +, - , * , \ , /(chia phải hoặc trái) và ^(hàm mũ)
7
Kỹ thuật tính toán trong công nghệ hóa học
Chú ý sự khác nhau của toán tử chia trái và chia phải :
>> 19/3 % thực hiện phép chia: 19/3
ans =
6.3333
>> 19\3, 3/19 % thực hiện phép chia: 3/19
ans =
0.1579
ans =
0.1579
Những hàm cơ bản về lượng giác, mũ … có thể tìm hiểu
>> help elfun
Bài tập:
Xác định giá trị các biểu thức dưới đây bằng tay và bằng Matlab để so sánh. Chú ý
tới sự khác nhau giữa chia trái và phải, và dùng lệnh help để tìm hiểu về các hàm: round,
floor, ceil …
• 2/2 - 3
• 8 - 5\4
• 8 - (5\4)
• 7 − 5 - 4\9
• 6 − 2/5 + 7^2 − 1

• 10/2\5 − 3 + 2 - 4
• 3^2/4
• 3^2^3
• 2 + round (6/9 + 3 - 2)/2
• 2 + floor (6/9 + 3 - 2)/2
• 2 + ceil (6/9 + 3 - 2)/2
• x = pi/3, x = x − 1, x = x + 5, x = abs(x)/x
2.2 Giới thiệu dạng dữ liệu
Mặc dù tất cả các tính toán số trong Matlab đều được tính toán với độ chính xác
kép (double precision), nhưng khuôn dạng của dữ liệu đưa ra có thể định dạng lại nhờ
các lệnh định dạng của Matlab. Các biến ngầm định cũng như các biến của người sử
dụng định nghĩa đều có thể đưa ra nhiều định dạng khác nhau. Định dạng được chọn
nhờ sử dụng lệnh format tiếp đến là chỉ định long hay short và cuối cùng có thể là dạng
biểu diễn của dữ liệu, cụ thể là e đối với dạng hàm mũ, f đối dạng dấu phẩy động(ngầm
định là f). Một khuôn dạng ít dùng hơn là rat để đưa dữ liệu ra dưới dạng phân số (chính
xác hoặc gần đúng ).
8
Kỹ thuật tính toán trong công nghệ hóa học
Ví dụ:
>> 4*atan(1)
ans =
3.1416
>> format long e
>> ans
ans =
3.141592653589793e+000
>> format long f
>> ans
ans =
3.14159265358979

>> format short e
>> ans
ans =
3.1416e+000
>> format rat
>> ans
ans =
355/113
Chương 3: Tính toán với ma trận và vec tơ
Nền tảng của Matlab chính là ma trận (hay mảng). Trường hợp đặc biệt:
1 ma trận 1
×
1: là 1 số vô hướng;
1 ma trận chỉ có 1 dòng hoặc 1 cột: là 1 vec tơ
3.1 Vec tơ
Vec tơ hàng là 1 danh sách các số được ngăn cách nhau bởi dấu cách hoặc dấu
phẩy. Số lượng phần tử của 1 vec tơ được gọi là length của vec tơ. Các phần tử nhập
vào phải đặt trong dấu “[ ]”. Vd:
>> v = [-1 sin(3) 7]
v =
-1.0000 0.1411 7.0000
>> length(v)
9
Kỹ thuật tính toán trong công nghệ hóa học
ans =
3
Một số phép toán có thể thực hiện với vec tơ như nhân vô hướng, cộng hoặc trừ từ
các vec tơ khác có số phần tử tương tự, hoặc giữa 1 số với vec tơ. Mọi phép toán đều
được thực hiện trên từng phần tử. Các vec tơ cũng có thể được xây dựng từ các phần tử
hữu hạn.

>> v = [-1 2 7]; w = [2 3 4];
>> z = v + w % cộng từng phần tử
z =
1 5 11
>> vv = v + 2 % cộng 2 vào tất cả các phần tử vào vec tơ
vv =
1 4 9
>> t = [2*v, -w]
ans =
-2 4 14 -2 -3 -4
Đồng thời 1 phần tử có thể được trích dẫn ra, hoặc chỉnh sửa:
>> v(2) = -1 % sửa phần tử thứ 2 của v
v =
-1 -1 7
>> w(2) % hiển thị phần tử thứ 2 của w
ans =
3
3.1.1 Kí tự hai chấm và trích các phần tử của vec tơ
Dấu hai chấm là phím tắt quan trọng dùng để tạo ra vec tơ hàng:
>> 2:5
ans =
2 3 4 5
>> -2:3
ans =
-2 -1 0 1 2 3
Dạng tổng quát “first:step:last”, khởi tạo vec tơ dòng bắt đầu từ phần tử first, kết
thúc tại phần tử last và với độ dài bước là step. Nếu không chỉ ra step, thì giá trị mặc
định nó là bằng một.
10
Kỹ thuật tính toán trong công nghệ hóa học

>> 0.2:0.5:2.4
ans =
0.2000 0.7000 1.2000 1.7000 2.2000
>> -3:3:10
ans =
-3 0 3 6 9
>> 1.5:-0.5:-0.5 % cũng có thể dùng bước nhảy âm
ans =
1.5000 1.0000 0.5000 0 -0.5000
Các phần tử có thể được lấy ra bởi dấu hai chấm
>> r = [-1:2:6, 2, 3, -2] % -1:2:6 => -1 1 3 5
r =
-1 1 3 5 2 3 -2
11
>> r(3:6) % lấy ra các phần tử của r có vị trí từ 3 đến 6
ans =
3 5 2 3
>> r(1:2:5) %lấy ra các phần tử của r có vị trí 1,3 và 5
ans =
-1 3 2
>> r(5:-1:2) % chuyện gì sẽ xảy ra với trường hợp này?
3.1.2 Vec tơ cột và sự chuyển vị
Để tạo 1 vec tơ cột, chúng ta phải tách các phần tử bởi phím ‘enter’ hoặc dấu chấm
phẩy:
>> z = [1
7
7];
z =
1
7

7
>> u = [-1; 3; 5]
u =
-1
11
Kỹ thuật tính toán trong công nghệ hóa học
3
5
Các phép toán cũng được thực hiện 1 cách tương tự, và cũng có thể chuyển dạng
thành vec tơ hàng:
>> u’ % u là vec tơ hàng còn u’ là vec tơ cột
ans =
-1 3 5
3.1.3 Nhân, chia và mũ của vec tơ
Chúng ta có thể tính tích vô hướng của 2 vec tơ có cùng độ dài:
>> u = [-1; 3; 5] % 1 vec tơ cột
>> v = [-1; 2; 7] % 1 vec tơ cột
>> u * v % chúng ta không thể nhân vec tơ cột với vecto cột
??? Error using ==> *
Inner matrix dimensions must agree.
>> u’ * v % đây mới là tích vô hướng
ans =
42
Một cách khác để tính tích vô hướng là sử dụng dấu “.*”:
>> u .* v %nhân từng phần tử cho nhau
1
6
35
>> sum(u.*v) % cách lấy tích vô hướng
ans =

42
>> z = [4 3 1]; % z là vec tơ hàng
>> sum(u’.*z) % tích vô hướng
ans =
10
Trong toán học, chúng ta không chia vec tơ cho vec tơ. Tuy nhiên, trong Matlab
chúng ta có thể chia từng phần tử cho nhau của các vec tơ có cùng kích cỡ và cùng loại:
>> x = 2:2:10
x =
2 4 6 8 10
12
Kỹ thuật tính toán trong công nghệ hóa học
>> y = 6:10
y =
6 7 8 9 10
>> x./y
ans =
0.3333 0.5714 0.7500 0.8889 1.0000
>> z = -1:3
z =
-1 0 1 2 3
>> x./z % chia 4/0, kết quả ra Inf
Warning: Divide by zero.
ans =
-2.0000 Inf 6.0000 4.0000 3.3333
>> z./z % chia 0/0, kết quả ra NaN
Warning: Divide by zero.
13
ans =
1 NaN 1 1 1

Toán tử “./” có thể thực hiện bởi 1 đại lượng vô hướng với 1 vector:
>> x=1:5; 2/x % không thể thực hiện
??? Error using ==> /
Matrix dimensions must agree.
>> 2./x % nhưng thế này thì được!
ans =
2.0000 1.0000 0.6667 0.5000 0.4000
3.2 Ma trận
Một ma trận
A =










987
654
321
Được định nghĩa trong Matlab như sau:
>> A = [1 2 3; 4 5 6; 7 8 9] % nhập theo hàng
A =
13
Kỹ thuật tính toán trong công nghệ hóa học
1 2 3
4 5 6

7 8 9
Hoặc cũng có thể:
>> A2 = [1:4; -1:2:5]
A2 =
1 2 3 4
-1 1 3 5
>> A3 = [1 3
-4 7]
A3 =
1 3
-4 7
Phép toán chuyển vị ma trận cũng có thể thực hiện 1 cách dễ dàng:
>> A2
A2 =
1 2 3 4
-1 1 3 5
>> A2’ % chuyển vị A2
ans =
1 -1
2 1
3 3
4 5
>> size(A2) % lấy cỡ của A2
ans =
2 4
>> size(A2’)
ans =
4 2
3.2.1 Các ma trận đặc biệt
>> E = [] % tạo lập 1 ma trận rỗng !

E =
14
Kỹ thuật tính toán trong công nghệ hóa học
[]
>> size(E)
ans =
0 0
>> I = eye(3); % ma trận đơn vị 3
×
3
I =
16
1 0 0
0 1 0
0 0 1
>> x = [2; -1; 7]; I*x % I is such that for any 3-by-1 x holds I*x = x
ans =
2
-1
7
>> r = [1 3 -2]; R = diag(r) % tạo lập 1 ma trận chéo với r nằm trên đường
chéo
R =
1 0 0
0 3 0
0 0 -2
>> A = [1 2 3; 4 5 6; 7 8 9];
>> diag(A) % trích dẫn đường chéo của ma trận A
ans =
1

5
9
>> B = ones(3,2)
B =
1 1
1 1
1 1
>> C = zeros (size(C’)) % một ma trận toàn phần tử toàn là số 0 với
kích thước bằng ma trận C’
C =
15
Kỹ thuật tính toán trong công nghệ hóa học
0 0 0
0 0 0
>> D = rand(2,3) % tạo 1 ma trận với các phần tử là các số ngẫu nhiên
D =
0.0227 0.9101 0.9222
0.0299 0.0640 0.3309
>> v = linspace(1,2,4) % một vec tơ được sử dụng như 1 ma trận
v =
1.0000 1.3333 1.6667 2.0000
3.2.2 Xây dựng ma trận và cách trích các phần tử của ma trận
Người ta thường xây dựng một ma trận lớn hơn từ những cái nhỏ hơn:
>> x = [4; -1], y = [-1 3]
x =
4
-1
y =
-1 3
>> X = [x y’] % X gồm có cột x và y’

X =
4 -1
-1 3
>> T = [ -1 3 4; 4 5 6]; t = 1:3;
>> T = [T; t] % thêm hàng cho T, hàng đó là vec tơ t
T =
-1 3 4
4 5 6
1 2 3
>> G = [1 5; 4 5; 0 2]; % G là ma trận 2*3
>> T2 = [T G] % ghép 2 ma trận
T2 =
-1 3 4 1 5
16
Kỹ thuật tính toán trong công nghệ hóa học
4 5 6 4 5
1 2 3 0 2
>> T3 = [T; G ones(3,1)] % G là 3*2, T là 3*3
T3 =
-1 3 4
4 5 6
1 2 3
1 5 1
4 5 1
0 2 1
>> T3 = [T; G’];
>> [G’ diag(5:6); ones(3,2) T] % chúng ta cso thể nối nhiều ma trận
ans =
1 4 0 5 0
5 5 2 0 6

1 1 -1 3 4
1 1 4 5 6
1 1 1 2 3
Một phần có thể được trích từ 1 ma trận tương tự như cách lấy của vectơ. Mỗi phần
tử trong ma trận được mang chỉ số bởi vị trí của nó trong hàng và cột. Ví dụ:
>> A = [1:3; 4:6; 7:9]
A =
1 2 3
4 5 6
7 8 9
>> A(1,2), A(2,3), A(3,1)
ans =
2
ans =
6
ans =
7
>> A(4,3) % this is not possible: A is a 3-by-3 matrix!
??? Index exceeds matrix dimensions.
17
Kỹ thuật tính toán trong công nghệ hóa học
>> A(2,3) = A(2,3) + 2*A(1,1) % sửa giá trị của phần tử A(2,3)
A =
1 2 3
4 5 8
7 8 9
Ta có thể dễ dàng mở rộng ma trận:
>> A(5,2) = 5 % gán 5 vào vị trí (5,2);
A =
1 2 3

4 5 8
7 8 9
0 0 0
0 5 0
>> A(4,:) = [2, 1, 2]; % gán vec tơ [2, 1, 2] cho hàng thứ 4 của A
>> A(5,[1,3]) = [4, 4]; % gán : A(5,1) = 4 và A(5,3) = 4
>> A
Lấy các phần tử khác của A:
>> A(3,:) % trích ra hàng thứ 3 của A
ans =
7 8 9
>> A(:,2) % trích ra cột thứ 2 của A
ans =
2
5
8
1
5
>> A(1:2,:) % trích ra hàng 1 và 2 của A
ans =
1 2 3
4 5 8
>> A([2,5],1:2) % trích ra các phần của A
ans =
4 5
18
Kỹ thuật tính toán trong công nghệ hóa học
4 5
Khái niệm về ma trận rỗng [] rất hữu ích trong Matlab. 1 số hàng hoặc cột của ma
trận có thể được loại bỏ bằng cách gán nó bằng 1 ma trận rỗng:

>> C = [1 2 3 4; 5 6 7 8; 1 1 1 1];
>> D = C; D(:,2) = [] % copy C vào D, xóa cột thứ 2 của D
>> C ([1,3],:) = [] % xóa hàng 1 và hàng 3 của C
3.2.3 Các phép toán với ma trận
Các phép toán thực hiện với ma trận cũng tương tự với vec tơ:
>> B = [1 -1 3; 4 0 7]
B =
1 -1 3
4 0 7
>> B2 = [1 2; 5 1; 5 6];
>> B = B + B2’ % cộng 2 ma trận. Tại sao phải thay B2’ cho B2?
B =
2 4 8
6 1 13
>> B-2 % trừ các phần tử của B cho 2
ans =
0 2 6
4 -1 11
>> ans = B./4 % chia các phần tử của B cho 4
ans =
0.5000 1.0000 2.0000
1.5000 0.2500 3.2500
>> 4/B % đây là điều không thể
??? Error using ==> /
Matrix dimensions must agree.
>> 4./B % nhưng đây lại có thể ; tương đương với: 4.*ones(size(B)) ./ B
ans =
2.0000 1.0000 0.5000
0.6667 4.0000 0.3077
>> C = [1 -1 4; 7 0 -1];

19
Kỹ thuật tính toán trong công nghệ hóa học
>> B .* C % nhân từng phần tử
ans =
2 -4 32
42 0 -13
>> ans.^3 – 2 % thực hiện cho tất cả các phần tử
ans =
6 -66 327 66
74086 -2 -2199 20
>> ans ./ B.^2
ans =
0.7500 -1.0312 63.9961
342.9907 -2.0000 -1.0009
>> r = [1 3 -2]; r * B2
ans =
6 -7
Khi thực hiện nhân ma trận:
>> b = [1 3 -2];
>> B = [1 -1 3; 4 0 7]
B =
1 -1 3
4 0 7
>> b * B % không thể thực hiện: b là ma trận 1*3 và B là 2*3
??? Error using ==> *
Inner matrix dimensions must agree.
>> b * B’
ans =
-8 -10
>> B’ *ones(2,1)

ans =
5
-1
10
>> C = [3 1; 1 -3];
20
Kỹ thuật tính toán trong công nghệ hóa học
>> C * B
ans =
7 -3 16
-11 -1 -18
>> C.^3 % thực hiện trên từng phần tử
ans =
27 1
1 -27
>> C^3 % tương đương với C*C*C
ans =
30 10
10 -30
>> ones(3,4)./4 * diag(1:4)
ans =
0.2500 0.5000 0.7500 1.0000
0.2500 0.5000 0.7500 1.0000
0.2500 0.5000 0.7500 1.0000
Chương 4: Đồ họa
4.1 Đồ thị đơn giản
Đơn giản nhất, đồ thị có thể được vẽ nhờ nối các điểm được đánh dấu trên mặt
phẳng tọa độ Đề các. Ví dụ:
>> x = 0:10;
>> y = 2.^x; % ta được y = [1 2 4 8 16 32 64 128 256 512 1024]

>> plot(x,y) % vẽ
>> semilogy(x,y)
Để đưa nhiều đồ thị lên cùng một cửa sổ ta dùng lệnh subpot, chính xác hơn,
subplot(m,n,i) tạo mn bản vẽ, được sắp xếp trong mảng với m dòng và n cột. Lệnh này
cũng bắt plot tiếp theo phải chuyển đến hệ tọa độ thứ i (đếm theo số dòng). Ví dụ:
>> t=(0:.1:2*pi);
>> subplot(2,2,1)
>> plot(t,sin(t))
>> subplot(2,2,2)
21
Kỹ thuật tính toán trong công nghệ hóa học
>> plot(t,cos(t))
>> subplot(2,2,3)
>> plot(t,exp(t))
>> subplot(2,2,4)
>> plot(t,1./(1+t.^2))
4.2 Vẽ đường
Hàm plot được sử dụng để vẽ dữ liệu trên mặt phẳng. Cho vec tơ x gồm các hoành
độ x1,…,xn và vec tơ y gồm các tung độ y1,…yn, lệnh plot(x,y) sẽ vẽ các điểm từ
(x1,y1) đến (xn,yn). Theo mặc định, các điểm này sẽ được nối theo thứ tự bởi các đoạn
thẳng.
Câu lệnh tổng quát:
Mầu của đường vẽ Ký tự hiển thị Nét vẽ
y yellow
m magenta
c cyan
r red
g green
b blue
w white

k black
. dấu chấm(point)
O vòng tròn
X dấu x
+ dấu cộng
* dấu sao
s hình vuông
d kim cương

tam giác chỉ lên
- solid
: dotted
-. dashdot
-- dashed
22
Kỹ thuật tính toán trong công nghệ hóa học

tam giác chỉ xuống
< tam giác chỉ sang
trái
> tam giác chỉ sang
phải
p ông sao 5 cánh
h ông sao 6 cánh
Ví dụ:
Lệnh plot(x,y,’ro:’) vẽ đường nối bởi các chấm màu đỏ với điểm dữ liệu là vòng
tròn nhỏ.
Lệnh plot(x,y,’y-’,x,y,’go’) vẽ dữ liệu 2 lần với đường nối liền nét màu vàng và các
điểm dữ liệu là các vòng tròn xanh lá cây.
Để vẽ tứ giác với các đỉnh (0,0), (1,1), (4,2), và (5,-1) ta có thể dùng lệnh:

>> x=[0 1 4 5 0];
>> y=[0 1 2 -1 0];
>> plot(x,y)
Ta cũng có thể gần đúng đồ thị hàm số bằng cách lấy nhiều điểm. Ví dụ vẽ đồ thị
hàm số
3
xy
=
/ [-2;2]. Trước hết, ta lấy vec tơ dòng với các thành phần biến thiên từ -2
đến 2 với độ dài bước chia là 0.05
>> x=-2:.05:2;
Tiếp đó là xác định các giá trị của y bằng cách lấy lũy thừa từng phần tử của x.
>> y=x.^3;
Cuối cùng:
>> Plot(x,y)
Ta đặt tên cho hình vẽ nhờ đánh lệnh
>>title(‘Do thi cua ham f(x)=x^3’)
23
Kỹ thuật tính toán trong công nghệ hóa học
Hình 1: Đồ thị hàm số
3
)( xxf
=
Vẽ các đường cong tham số cũng tương tự:
))1/(sin2),1/(cos2()(
++=
tttttttr
với
]4,0[
π


t
.
>> t=0:.1:4*pi;
>> x=2*t.*cos(t)./(t+1);
>> y=2*t.*sin(t)./(t+1);
>> plot(x,y);
>> title( '(2t cos t/ (t+1)),2t sin t/(t+1)' )
Chú ý: các phép toán nhân chia phải được thực hiện trên từng phần tử(nghĩa là .*, ./
hoặc .^).
Để có tỷ lệ chính xác ta dùng:
>> axis equal
Hình 2: Đồ thị hàm số cho bởi phương trình tham số
Để vẽ nhiều đường trên cùng 1 hình ta dùng lệnh “hold on”.
Ví dụ: vẽ 2 đường tròn
4
22
=+
yx

1)1()1(
22
=−+−
yx
. Chuyển sang phương
trình tham số:
24
Kỹ thuật tính toán trong công nghệ hóa học
)sin2,cos2()(
1

tttr
=

)sin1,cos1()(
2
tttr
++=
với
]2,0[
π

t
.
>> t=0:pi/20:2*pi;
>> plot(2*cos(t),2*sin(t))
>> hold on
>> plot(1+cos(t),1+sin(t))
>> axis equal
>> title('Cac duong tron x^2+y^2=4 va (x-1)^2+(y-1)^2=1')
Hình 3: vẽ đồ thị nhiều hàm trên cùng một hình
Trong không gian 3 chiều thì thay lệnh plot bằng plot3. Ví dụ:
Để vẽ đường tham số
)),sin(),(cos()( ttttr
=
với
]8,0[
π

t
ta có thể làm như sau:

t=0:.1:8*pi;
>> plot3(cos(t),sin(t),t)
>> title('(cos t,sin t,t)')
Hình 4a: vẽ đồ thị đường cho bởi phương trình tham số trong không gian 3 chiều
Để vẽ đường trong tọa độ cực
2
θρ
=
, với
πθ
≤≤
0
:
>> theta = 0:.2:5*pi;
25

×