PHƢƠNG PHÁP SỐ
TRONG CƠNG NGHỆ HĨA HỌC
Mã học phần: CH3454
TS. Nguyễn Đặng Bình Thành
BM:Máy & TBCN Hóa chất
Numerical Methods in Chemical Engineering
CuuDuongThanCong.com
/>
MỞ ĐẦU
Phƣơng pháp số đƣợc dùng để phân tích và
giải gần đúng các bài toán với sai số nằm
trong giới hạn cho phép.
…bởi vì hầu hết các bài tốn khoa học kỹ
thuật đều khơng có các lời giải chính xác.
Phƣơng pháp số thƣờng đƣợc bắt đầu từ việc
xây dựng mô hình, lựa chọn thuật tốn, và
đƣa ra các đáp số gần đúng.
CuuDuongThanCong.com
/>
MỞ ĐẦU
Phƣơng pháp số có vai trị quan trọng
trong nhiều lĩnh vực nhƣ: Thiên văn
học, nông nghiệp, kiến trúc, …
Và tất nhiên rất quan trọng trong kỹ
thuật.
CuuDuongThanCong.com
/>
MỞ ĐẦU
Phƣơng pháp số trong Kỹ thuật hóa học:
Mơ tả bằng tốn học các q trình và và thiết
bị trong cơng nghệ hóa học.
Tính tốn thiết kế các q trình và thiết bị
hoạt động trong lĩnh vực kỹ thuật hóa học.
Tính tốn tối ƣu hóa các điều kiện làm việc
và kết cấu các thiết bị hóa chất.
Xác định các hằng số thực nghiệm bằng
phƣơng pháp hồi quy.
…
CuuDuongThanCong.com
/>
NỘI DUNG
Chƣơng 1. Các phƣơng pháp giải phƣơng
trình và hệ phƣơng trình.
Chƣơng 2. Phƣơng pháp tính tích phân
Chƣơng 3. Phƣơng trình và hệ phƣơng trình
vi phân
Chƣơng 4. Tối ƣu hóa
CuuDuongThanCong.com
/>
NỘI DUNG
Chương 1. Các phương pháp giải phương
trình và hệ phương trình
1.1 Phương pháp giải hệ phương trình tuyến tính
và ứng dụng
1.1.1 Giải hệ phƣơng trình tuyến tính bằng phƣơng
pháp Gauss và phƣơng pháp nghịch đảo ma trận
1.1.2 Ứng dụng để tính tốn cân bằng vật chất của hệ
thống CNHH
CuuDuongThanCong.com
/>
NỘI DUNG
Chương 1. Các phương pháp giải phương
trình và hệ phương trình
1.2 Phương pháp giải phương trình và hệ phương
trình phi tuyến
1.2.1 Giải phƣơng trình phi tuyến bằng phƣơng pháp
lặp đơn giản và phƣơng pháp Newton-Raphson
1.2.2 Giải hệ phƣơng trình phi tuyến bằng phƣơng pháp
lặp đơn giản và phƣơng pháp Newton-Raphson
1.3 Ứng dụng
CuuDuongThanCong.com
/>
NỘI DUNG
Chương 2. Phương pháp tính tích phân
2.1 Tính tích phân xác định bằng phương pháp
hình thang
2.2 Tính tích phân xác định bằng phương pháp
Simpson
2.3 Ứng dụng
2.3.1 Tính tốn tháp chƣng luyện
2.3.2 Tính tốn tháp hấp thụ
CuuDuongThanCong.com
/>
NỘI DUNG
Chương 3. Phương trình và hệ phương
trình vi phân
3.1 Giải phương trình vi phân bằng phương pháp
Euler
3.2 Giải phương trình vi phân bằng phương pháp
Runge-Kutta
3.3 Giải hệ phương trình vi phân bằng phương
pháp Euler
3.4 Giải hệ phương trình phi phân bằng phương
pháp Runge-Kutta
3.5 Ứng dụng tính tốn hệ phản ứng hóa học
CuuDuongThanCong.com
/>
NỘI DUNG
Chương 4. Tối ưu hóa
4.1 Tìm cực trị hàm một biến: phương pháp điểm
vàng, phương pháp gradien
4.2 Tìm cực trị hàm nhiều biến: phương pháp
gradien, phương pháp đơn hình
4.3 Cực trị có ràng buộc: phương pháp hàm phạt
CuuDuongThanCong.com
/>
TÀI LIỆU THAM KHẢO
[1] Sổ tay q trình và cơng nghệ hóa chất T1, 2, NXB
KHKT, 2004.
[2] Nguyễn Bin. Các q trình và thiết bị cơng nghệ hóa
chất T1, 2, 3, NXB KHKT, 2001.
[3] R. Perry. Chemical Engineers’ Handbook, 7th Ed.,
Mc. Graw Hill, 2007.
[4] K. Johnson. Numerical Methods in Chemistry, Mc.
Graw Hill, 1978.
[5] Nguyễn Minh Tuyển, Phạm Văn Thiêm. Kỹ thuật hệ
thống trong CN Hóa học, T2, NXB KHKT, 2001.
CuuDuongThanCong.com
/>
Ngơn ngữ lập trình
Có nhiều ngơn ngữ lập trình có thể
ứng dụng để tính tốn các q
trình cơng nghệ hóa học:
Matlab; C; C++; Visual Basic; Delphi;
Pascal; …
Các phầm mềm ứng dụng khác trong
cơng nghệ hóa học: Aspen Plus;
gProms; …
CuuDuongThanCong.com
/>
Ngơn ngữ lập trình
Tìm hiểu bản chất của q trình và
các ứng dụng các thuật tốn
Do đó: Pascal đƣợc sử dụng chính
trong mơn học này!
CuuDuongThanCong.com
/>
Nhắc lại các kiến thức về lập trình Pascal
Cấu trúc chƣơng trình
CuuDuongThanCong.com
/>
Nhắc lại các kiến thức về lập trình Pascal
Tên chƣơng trình
Sử dụng các thƣ viện: CRT, GRAPH,
… dùng lệnh goto)
Khai báo nhãn (khi
Khai báo các hằng số (một giá trị cụ thể)
Khai báo các kiểu dữ liệu đặc biệt nhƣ ma trận, …
Khai báo các biến số cùng với các kiểu tƣơng ứng
Chƣơng trình chính (Begin …End.)
Chú ý: Cần phải tuân thủ nghiêm ngặt trình tự!
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Khai báo theo kiểu
Số thực: “real”
Var
a,b,c: real;
Số nguyên: “integer”
Var
i,j,k,n: integer;
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Khai báo theo kiểu
Mảng hay ma trận: “array”
Đối với kiểu này, trƣớc hết phải khai báo kiểu trƣớc!
Type
mx = array [1..50] of real;
ma = array [1..50, 1..100] of real;
Var
x: mx;
a: ma;
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Khai báo theo kiểu
Mảng hay ma trận: “array”
Tuy nhiên cũng có thể khai báo trực tiếp
Var
x: array [1..50] of real;
a: array [1..50, 1..100] of real;
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Các loại chƣơng trình con
Dùng chƣơng trình con khi cần thực hiện một đoạn
chƣơng trình lặp đi lặp lại nhiều lần.
Do đó: khi cần đến những đoạn chƣơng trình nhƣ
vậy thì chỉ cần gọi tên chƣơng trình con đó.
Thuận lợi:
-Chƣơng trình chính đơn giản
-Mức độ khái qt hóa chƣơng trình cao
-Dễ kiểm tra lỗi cho tồn bộ chƣơng trình
-Thuận lợi cho ngƣời sử dụng
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Các loại chƣơng trình con
Trong Pascal có hai loại chƣơng trình con:
-Hàm (function)
Hàm chỉ trả lại một kiểu dữ liệu và một giá trị duy
nhất
-Thủ tục (procedure)
Thủ tục có thể trả lại nhiều kiểu dữ liệu khác nhau và
có thể trả lại nhiều giá trị
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Các loại chƣơng trình con
-Hàm (function)
điểm:
Ví dụ: xác định giá Nhược
trị của hàm
số y = 2x2 + 3x – 5
Khi tính tốn cho nhiều biểu thức, ví dụ:
Function F(x: real):
y1 real;
= 2x2 + 3x – 5
y2 = 5x3 – 2x – 6
Begin
Chú ý:
Cần phải dùng:
Đằng+sau
chƣơng trình con dùng dấu
F:=2*x*x
3*x“End”
– trình
5; củacon
2 chương
kiểu hàm
“;” thay vì dấu “.” trong chƣơng trình chính.
End;
Khi gọi hàm trong chương trình chính:
y:= F(x1);
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Các loại chƣơng trình con
-Thủ tục (procedure)
Ví dụ: xác định giá trị của 2 hàm số y1 = 2x2 + 3x – 5;
y2 = 5x3 – 2x – 6.
Khi gọi thủ tục:
Procedure HAM;
{Tính giá trị tại x:=x1}
Begin
x:=x1;
y1:=2*sqr(x) + 3*x – 5;
HAM;
y1:=5*x*sqr(x) – 2*x – 6;
{Có thể gán giá trị cho y3, y4}
End;
y3:=y1; y4:=y2;
CuuDuongThanCong.com
/>
Nhắc lại kiến thức về lập trình Pascal
Các loại chƣơng trình con
-Thủ tục (procedure) có tham trị và tham biến hình thức
Ví dụ:
Procedure HAM(x: real; Var y1,y2:real)
Begin
Khi gọi thủ tục:
y1:=2*sqr(x) + 3*x – 5;
{Tính giá trị tại x:=x1}
y1:=5*x*sqr(x) – 2*x – 6;
HAM(x1,y1,y2);
End;
{Có thể gán giá trị cho y3, y4}
HAM(x1,y3,y4)
CuuDuongThanCong.com
/>
Có cần chương trình con???
Ví dụ áp dụng
Thuật tốn?
Ví dụ 1 a) Tính tổng
Cho dãy số thực i:=0;S:=0;
x1, x2,…,xn
i:=iS +
1;dãy
S:=S
x[i];
a) Hãy tính tổng
của
số+trên
b) Tìm
trịdãy
nhỏ nhất
b) Tìm giá trị nhỏ
nhấtgiá
của
i:=1;
xmin:= một số rất lớn???
Nếu x[i] <= xmin thì xmin:=x[i];
i:=i+1;
Hoặc cách khác???
CuuDuongThanCong.com
/>
CuuDuongThanCong.com
/>