Từng hàm lệnh nhận theo dạng các vectơ hoặccác ma trận và tự động điều chỉnh các trục cho tương ứng với dữ liệu plot Vẽ đồ thị tuyến tính 2D được chỉnh theo hai trục plot3 Vẽ đồ thị tuyế
Trang 1Bảng 1: Các bằng số thủy phân và các dạng tồn tại của ion kim loại
Trang 2Bảng 2: Dạng hiđroxit và giá trị pH để kết tủa các hiđroxit của một số kim loại
Trang 41 MATLAB và ứng dụng của MATLAB [1],[4]
I.1 MATLAB.
MATLAB là một môi trường tính toán số và lập trình, được thiết kế bởicông ty MathWorks MATLAB cho phép tính toán số với ma trận, vẽ đồ thịhàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao tiếp ngườidùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữlập trình khác Với thư viện Toolbox, MATLAB cho phép mô phỏng tínhtoán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật
MATLAB là viết tắt từ "Matrix Laboratory", được phát minh vào cuốithập niên 1970 bởi Cleve Moler, và sau đó là chủ nhiệm khoa máy tính tại Đạihọc New Mexico MATLAB, nguyên sơ được viết bởi ngôn ngữ Fortran Chođến 1980, nó vẩn chỉ là một bộ phận được dùng nội bộ của Đại Học Standford.Năm 1983, Jack Little, một người đã học ở MIT và Stanford, đã viết lạiMATLAB bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục vụcho thiết kế hệ thống điều khiển, hệ thống hộp công cụ (Toolbox), mô phỏng Jack xây dựng MATLAB trở thành mô hình ngôn ngữ lập trình cơ sở ma trận(matrix-based programming language) Steve Bangert là người đã thực hiện trìnhthông dịch cho MATLAB Công trình này tốn gần 1 1/2 năm Sau này, JackLittle kết hợp với Moler và Steve Bangert quyết định đưa MATLAB thành dự ánthương mại - công ty The MathWorks ra đời thời gian này - năm 1984
MATLAB gồm 5 phần chính:
- Ngôn ngữ MATLAB: Đây là ngôn ngữ ma trận/mảng cấp cao để điềukhiển các câu lệnh, các hàm, cấu trúc dữ liệu, nhập/xuất và các đặc tínhlập trình hướng đối tượng Nó cho phép cả hai lập trình nhỏ để tạo cácchương trình ứng dụng phức tạp và bao quát
- Môi trường làm việc MATLAB: Đây là một bộ công cụ và những thànhphần tiện ích để sử dụng như những người sử dụng hoặc các lớp lậptrình viên MATLAB Chúng bao gồm những đối tượng tiện ích đượcdùng để quản lí các thay đổi trong môi trường làm việc cũng như nhập
và xuất các dữ liệu Ngoài ra, chúng cũng bao gồm những công dụng
Trang 5vào việc khai phá, quản lí, gỡ rối và tạo các tập tin nền M-files, cáctrình ứng dụng của MATLAB.
- Đồ hình: Đây là một hệ thống đồ hoạ của MATLAB Chúng bao gồm cáclệnh cấp cao cho các dữ liệu hiện hữu hai chiều hoặc ba chiều, xử lí hìnhảnh, chuyển dộng và những đối tượng hình ảnh giới thiệu Ngoài ra,chúng cũng bao gồm các lệch cấp thấp cho phép chúng ta hoàn toàn sởthích hoá tính hiển thị của các đối tượng hình ảnh cũng như thiết kế nhữnggiao diện hình ảnh trong các chương trình đồ hoạ
- Thư viện hàm toán học MATLAB: Đây là một sự lựa chọn của cácchương trình thuật toán từ những công thực cơ bản như sin, cos, số phứccho đến các hàm toán học phức tạp hơn như ma trận…
- Trình giao diện ứng dụng MATLAB (API): Đây là một chương trình giaodiện cho phép lập các chương trình ứng dụng theo ngôn ngữ C hoặcFORTRAN để tương tác với MATLAB Chúng bao gồm những thànhphần tiện ích để gọi các đại lượng từ MATLAB (liên kết động), triển khaiMATLAB khi tính toán kĩ thuật cũng như lập và đọc các tập tin MAT
Có thể hình dung đơn giản về MATLAB là nó có đầy đủ các đặc điểm củamáy tính cá nhân: giống như các máy tính cơ bản, nó làm tất cả các phép tínhtoán học cơ bản như cộng, trừ, nhân, chia; giống như máy tính kỹ thuật, nó baogồm: số phức, căn thức, số mũ, logarit, các phép toán lượng giác như sin, cosin,tang; nó cũng giống như máy tính có khả năng lập trình, có thể lưu trữ, tìmkiếm lại dữ liệu, cũng có thể tạo, bảo vệ và ghi trình tự các lệnh để tự độngphép toán khi giải quyết các vấn đề, có thể so sánh logic, điều khiển thực hiênlệnh để đảm bảo tính đúng đắn của phép toán Giống như các máy tính hiện đạinhất, nó cho phép biểu diễn dữ liệu dưới nhiều dạng như: biểu diễn thôngthường, ma trận đại số, các hàm tổ hợp và có thể thao tác với dữ liệu thườngcũng như đối với ma trận
Trong thực tế MATLAB còn ứng dụng rất rộng rãi trong nhiều lĩnh vực và
nó cũng sử dụng rất nhiều các phép tính toán học Với những đặc điểm đó vàkhả năng thân thiện với người sử dụng nên nó dễ dàng sử dụng hơn các ngôn
Trang 6diễn dữ liệu, và có khả năng mạnh mẽ về đồ hoạ, có thể tạo các giao diện riêngcho người sử dụng (GUIs) để giải quyết những vấn đề riêng cho mình Thêmvào đó MATLAB đưa ra những công cụ để giải quyết những vấn đề đặc biệt, gọi
là Toolbox (hộp công cụ) Ví dụ Student Edition của MATLAB bao gồm cảToolbox điều khiển hệ thống, Toolbox xử lí tín hiệu, Toolbox biểu tượng toánhọc Ngoài ra có thể tạo Toolbox cho riêng mình
Cài đặt MATLAB khá đơn giản như sau:
- Khởi động Window
- Do chương trình được cấu hình theo AutoRun nên sau khi cho đĩa CD
vào ổ đĩa chương trình sẽ tự chạy Sau đó cứ chọn Next hoặc Yes đến
khi quá trình hoàn thành
1.2 Đồ hoạ với MATLAB
MATLAB cung cấp một tập hợp gồm các biểu thức đồ hoạ cấp cao.Việc thực hiện của những biểu thức này dùng những kĩ thuật đồ hoạ thôngdụng như đánh điểm theo hình tứ giác và các toạ độ góc, các đồ thị hìnhthanh Ngoài ra, chúng ta có thể kiểm soát các màu sắc và độ bóng trên các
đồ thị, gán nhãn cho các trục, và trình bày cách thể hiện chung cho đồ thị.Các lệnh cấp cao tự động kiểm soát các điểm ghi ở mỗi vị trí như là điềuchỉnh các trục và màu sắc các đường biểu diễn để làm cho các đồ thị códạng sẽ nhìn, dễ phân biệt…
1 Các lệnh vẽ cơ bản
MATLAB cung cấp một số hàm lệnh để vẽ các đồ thị cũng như cáchàm lệnh về chú giải và in ấn Những hàm lệnh này khác với cách chúng ghidấu các điểm trên trục đồ thị Từng hàm lệnh nhận theo dạng các vectơ hoặccác ma trận và tự động điều chỉnh các trục cho tương ứng với dữ liệu
plot Vẽ đồ thị tuyến tính 2D được chỉnh theo hai trục
plot3 Vẽ đồ thị tuyến tính 3D được chỉnh theo hai trục
loglog Vẽ đồ thị theo giá trị logarit được chỉnh theo 2 trục
semilogx Vẽ đồ thị với giá trị logarit theo trục x và tuyến tính theo trục ysemilogy Vẽ đồ thị với giá trị logarit theo trục y và tuyến tính theo trục x
Trang 7plotyy Vẽ đồ thị với nhãn y được dán bên cạnh trái và phải
- Hàm plot có những dạng khác nhau tuỳ theo câu lệnh nhập
Ví dụ 1: Nếu y là vectơ thì hàm lệnh sẽ là plot(y) sẽ tạo một đồ thị với trục
y Nếu gán 2 vectơ x, y theo câu lệnh plot(x,y) sẽ tạo một đồ thị với 2 trục x
(trục hoành) và y (trục tung)
Ví dụ 2: Những câu lệnh sau đây tạo một đồ thị dựa theo các giá trị nằm
trong phạm vi [0;2π] tăng dần đều đến π/100 và sau đó dùng vectơ này đểtính hàm sin theo phạm vi giá trị đó MATLAB vẽ một vectơ theo trục x và
những giá trị của hàm sine theo trục y.
Trang 8Ghi chú: Lệnh Grid on dùng để hiện các ô carô trong khung cho tiện
cho việc theo dõi Có thể không dùng lệnh này bằng cách không khai báo trong dòng lệnh.
MATLAB tự động chọn phạm vi tương ứng trên trục và đánh dấu những
vị trí theo từng giá trị trong phạm vi đó
- Cũng có thể vẽ nhiều đồ thị trong một lệnh gọi plot bằng cách khai báo
một cặp trục x,y kèm theo lệnh Khi vẽ nhiều đồ thị trong một đồ thị,MATLAB sẽ tự động tính toán và sau đó gán cho mỗi đường đồ thị một màukhác nhau để phân biệt và dễ nhìn Ví dụ, dùng một hàm để vẽ 3 đồ thị:
Trang 9Đồ thị thu được:
- Chúng ta cũng có thể gán thể loại minh hoạ cho các đường vẽ đồ thị khácnhau, thay đổi màu sắc, độ nét để dễ phân biệt bằng cách nhập lệnh nhận dạng
nét vẽ cho từng loại dữ liệu đồ thị vào lệnh plot…
- MATLAB cũng đưa ra các lệnh để gán nhãn cho từng trục toạ độ và đặtcác kí tự vào những vị trí tuỳ ý trong đồ thị
Trang 10legend Thêm nội dung vào đồ thị cũ
text Hiện chuỗi kí tự ngay vị trí đã chỉ định
gtext Dùng mouse đặt kí tự trên đồ thị
- Ngoài ra MATLAB còn cho phép chúng ta vẽ nhiều dạng đồ thị khác như
đồ thị 3D, đồ thị cột, vùng, hình Pie (hình tròn) và các phổ đồ, hình tháp…
PHẦN 2: KẾT QUẢ VÀ THẢO LUẬN
Trang 112.1 Cơ sở thiết lập chương trình tính % các dạng tồn tại của các ion kim loại phụ thuộc vào pH
Trong dung dịch Mn+ bị thủy phân i nấc theo các phương trình:
Mn+ + H2O M(OH)(n-1)+ + H+ k1 M(OH)(n-1)+ + H2O M(OH)2(n-2)+ + H+ k2 M(OH)2(n-2)+ + H2O M(OH)3(n-3)+ + H+ k3
M(OH)i-1(n+1-i)+ + H2O M(OH)i(n-i)+ + H+ ki.Theo định luật tác dụng khối lượng, ta có:
[M(OH)(n-1)+] = h-1 k1.[Mn+]
[M(OH)2(n-2)+] = h-2 k1k2.[Mn+]
[M(OH)i(n-i)+ ] = h-i.[Mn+].k1k2 ki
Áp dụng định luật bảo toàn nồng độ ban đầu ta có:
CMn+ = [Mn+] + [M(OH)(n-1)+] + [M(OH)2(n-2)+] + + [M(OH)i(n-i)+] = [Mn+] (1 + h-1 k1 + h-2.k1k2 + + h-i k1k2 ki)
Trang 12[Mn+] = CMn+
a ; [M(OH)(n-1)+] =
Trên cơ sở các biểu thức đã thiết lập ở phần 2.1, để tính % các dạngtồn tại của ion kim loại trong dung dịch chúng tôi đã tiến hành lập chươngtrình tính đầy đủ và chính xác % các dạng tồn tại của các ion kim loại trongkhoảng pH từ -5 đến 20 để từ đó xây dựng đồ thị cho từng loại ion kim loại.Các ion kim loại được chia thành các 5 nhóm dựa theo số hằng số thuỷphân như sau:
Trang 132.2.1 Đối với ion kim loại có một hằng số thủy phân:
a. Các ion kim loại có 1 hằng số thủy phân: 29 ion
Các ion này đều chỉ có 1 hằng số thuỷ phân nên chương trình tính giốngnhau Xét trường hợp ion Li+ có k = 2,29.10-14, chương trình tính như sau:
>> title('GIAN DO PHAN BO CAC DANG TON TAI CUA Li^+');
>> xlabel('pH cua dung dich');
>> ylabel('% cac dang ton tai cua Li^+');
>> gtext('\leftarrow Li^+');
>> gtext('\leftarrow LiOH');
Giản đồ phân bố của ion Li+ được trình bày ở hình 1:
Trang 140 2 4 6 8 10 12 14 16 18 20 0
GIAN DO PHAN BO CAC DANG TON TAI CUA Li+
pH cua dung dich
Hình 1 Giản đồ phân bố các dạng tồn tại của Li+
c Cực đại của từng dạng tồn tại và giá trị pH tương ứng
Để nhận được bức tranh thuỷ phân đầy đủ (trạng thái và dạng phụ thuộcvào pH), từ các đồ thị trên chúng tôi xác định được những giá trị pH mà tại đó
% của từng dạng tồn tại đạt giá trị lớn nhất
Ion Dạng tồn tại M n+ (%max) Ion Dạng tồn tại M n+ (%max)
Trang 15a.Các ion kim loại có 2 hằng số thủy phân: 5 ion
Ion kim loại M n+ Ag + Y 3+ UO 2 2+ VO 2+ Fe 2+
k 1 1,00.10-11 1,00.10-7 1,00.10-5 2,24.10-3 1,23.10-7
k 2 5,01.10-13 1,58.10-9 6,31.10-7 8,32.10-4 5,62.10-9
b Chương trình tính và vẽ giản đồ phân bố % các dạng tồn tại của các ion kim loại có hằng số thủy phân 2 nấc theo phần mềm MATLAB.
Các ion này đều có 2 hằng số thuỷ phân nên chương trình tính giống nhau.Xét trường hợp ion Ag+ có k1 = 10-11; k2=5,01.10-13, chương trình tính như sau:
>> title('GIAN DO PHAN BO CAC DANG TON TAI CUA Ag^+');
>> xlabel('pH cua dung dich');
>> ylabel('% cac dang ton tai cua Ag^+');
Trang 160 2 4 6 8 10 12 14 16 18 20 0
20 40 60 80
100
GIAN DO PHAN BO CAC DANG TON TAI CUA Ag+
pH cua dung dich
Hình 2 Giản đồ phân bố các dạng tồn tại của Ag+
c Cực đại của từng dạng tồn tại và giá trị pH tương ứng
Tương tự, từ các đồ thị chúng tôi xác định được những giá trị pH mà tại đó
% của từng dạng tồn tại đạt giá trị lớn nhất
2.2.3 Đối với ion kim loại có ba hằng số thủy phân:
a Các ion kim loại có 3 hằng số thủy phân: 15 ion
Trang 17b Chương trình tính và vẽ giản đồ phân bố % các dạng tồn tại của các ion kim loại có hằng số thủy phân 3 nấc theo phần mềm MATLAB.
Các ion này cũng đều có 3 hằng số thuỷ phân nên chương trình tính giốngnhau Xét trường hợp ion Cd2+ có k1 = 1,26.10-8; k2=2,51.10-11, k3=5,01.10-15,chương trình tính như sau:
>> title('GIAN DO PHAN BO CAC DANG TON TAI CUA Cd^2^+');
>> xlabel('pH cua dung dich');
>> ylabel('% cac dang ton tai cua Cd^2^+');
Trang 18GIAN DO PHAN BO CAC DANG TON TAI CUA Cd2+
pH cua dung dich
Hình 3 Giản đồ phân bố các dạng tồn tại của Cd2+
c Cực đại của từng dạng tồn tại và giá trị pH tương ứng
Tương tự, từ các đồ thị chúng tôi xác định được những giá trị pH mà tại đó
% của từng dạng tồn tại đạt giá trị lớn nhất
2.2.4 Đối với ion kim loại có bốn hằng số thủy phân:
a Các ion kim loại có 4 hằng số thủy phân: 15 ion
Ion kim loại
M n+
Cu 2+ 3,16.10 -8 1,00.10 -7 1,99.10 -13 1,26.10 -14
Be 2+ 1,99.10 -6 3,16.10 -8 1,23.10 -11 3,55.10 -14
Trang 19Các ion này cũng đều có 4 hằng số thuỷ phân nên chương trình tính giốngnhau Xét trường hợp ion Cu2+ có k1 = 3,16.10-8; k2=1,00.10-7, k3=1,99.10-13,
k4=1,26.10-14, chương trình tính như sau:
Trang 20>> title('GIAN DO PHAN BO CAC DANG TON TAI CUA Cu^2^+');
>> xlabel('pH cua dung dich');
>> ylabel('% cac dang ton tai cua Cu^2^+');
GIAN DO PHAN BO CAC DANG TON TAI CUA Cu2+
pH cua dung dich
← Cu(OH)
4 2-
Hình 4 Giản đồ phân bố các dạng tồn tại của Cu2+
c Cực đại của từng dạng tồn tại và giá trị pH tương ứng
Trang 21Po 4+ 100 < 0 78 1,5 47,4 2,5 46 3 100 10
MoO 2 2+ 100 < 0 47 0,5 51 1 83,3 2,5 100 10
WO 2 2+ 100 < 0 46 1 42 1,5 79 2,5 100 10
Pd 4+ 100 < 0 30 2,5 100 7,5 55 13 100 > 14Tương tự, từ các đồ thị chúng tôi xác định được những giá trị pH mà tại đó
% của từng dạng tồn tại đạt giá trị lớn nhất
2.2.5 Đối với ion kim loại có sáu hằng số thủy phân:
a Các ion kim loại có 6 hằng số thủy phân: 6 ion
Các ion này cũng đều có 6 hằng số thuỷ phân nên chương trình tính giốngnhau Xét trường hợp ion Ga3+ có k1 = 1,26.10-3; k2=1,99.10-4, k3=3,16.10-5,
k4=1,59.10-7, k5=5,00.10-11, k6=1,98.10-12 chương trình tính như sau:
>> M0=100./MS;
>> M1=100.*k1.*10.^p./MS;
>> M2=100.*k1.*k2.* 10.^2.^p./MS;
>> M3=100.*k1.*k2.*k3.* 10.^3.^p./MS;
Trang 22>> M5=100.*k1.*k2.*k3.*k4.*k5.* 10.^5.^p./MS;
>> M6=100.*k1.*k2.*k3.*k4.*k5.*k6.* 10.^6.^p./MS;
>> plot(p,M0,p,M1,p,M2,p,M3,p,M4, p,M5, p,M6);
>> grid on;
>> title('GIAN DO PHAN BO CAC DANG TON TAI CUA Ga^3^+');
>> xlabel('pH cua dung dich');
>> ylabel('% cac dang ton tai cua Ga^3^+');
20 40 60 80
← G a(O H)
3
← G a(O H)
4 -
← G a(O H)
5 2-
← G a(O H)
6 3-
Hình 5 Giản đồ phân bố các dạng tồn tại của Ga3+
c Cực đại của từng dạng tồn tại và giá trị pH tương ứng
Tương tự, từ các đồ thị chúng tôi xác định được những giá trị pH mà tại đó
% của từng dạng tồn tại đạt giá trị lớn nhất
M0 pH M1 pH M2 pH M3 pH M4 pH M5 pH M6 pH
Trang 23– Giản đồ các ion khác được trình bày ở phần PHỤ LỤC
d Một số kết luận
Từ các kết quả thu được chúng tôi xử lí và thu được một số kết quả như sau:
Bảng tổng kết các giá trị pH ở đấy chỉ tồn tại “ion trần” (M0)
Trang 24Giá trị
pH cuối
Dạng tồn tại của các ion kim
loại 6,0 Al(OH)4-, TaO2OH 13 Pu(OH)4, Sc(OH)3, ErOH2+,
Tm(OH)2+,Yb(OH)2+, UO2(OH)2,
7,0 Zr(OH)4, Hf(OH)4,
Mn(OH)2+
13,5 Tb(OH)2+, Dy(OH)2+, Ho(OH)2+
7,5 Sb(OH)3 14 B(OH)4-,Sm(OH)2+, Eu(OH)2+,
NiOH+, Be(OH)42-, Rh(OH)63-, MnOH+, Mg(OH)2, Ga(OH)63-, Ag(OH)2-, Sr(OH)2,
Ge(OH)62-, Pb(OH)3-, Zn(OH)42-,
VO43-, LiOH, Ca(OH)2, Ba(OH)2, NaOH, Cu(OH)3-, Hg(OH)2, KOH, Cd(OH)3-
2-Nhận xét: Dựa vào hai bảng giá trị trên ta thấy với các cation kim loại có
khả năng thuỷ phân mạnh thì trong thực tế hầu như không có dạng “iontrần” đạt 100% vì chúng chỉ tồn tại ở vùng có độ axit rất cao Ngược lại,đối với các cation có khả năng thuỷ phân yếu thì hầu như không có dạng
Trang 25thuỷ phân cao nhất chiếm 100%, vì chúng chỉ tồn tại trong vùng có độkiềm rất cao, nên trong thực tế không thiết lập được.
Biết được giá trị pH và khoảng pH kết tủa hoàn toàn các hiđroxitgiúp chúng ta có thể tách được hoàn toàn các hiđroxit kết tủa để phântích thuận lợi hơn Dựa vào giản đồ phân bố của các ion kim loạichúng ta tìm được những giá trị pH và khoảng pH để tồn tại dạng
KL kiềm thổ M(OH)2 > 14 Pb 2+ Pb(OH)2 8 – 11
Nhận xét: Kết quả thu được phù hợp khá tốt với các tài liệu khác.
TÀI LIỆU THAM KHẢO
Tiếng Việt