phương pháp giải lặp NewtonRaphson giải hệ phương trình phi tuyến để xác định nồng độ cân bằng của các ion trong dung dịch - Pdf 34

MỞ ĐẦU
Các bài toán thực tế dẫn đến việc cần phải giải các phương trình phi
tuyến, tuy nhiên, các phương trình này thường phức tạp, do đó nói chung khó có
thể giải được (đưa được về các phương trình cơ bản) bằng các biến đổi đại số. Hơn
nữa, vì các công thức nghiệm của phương trình phi tuyến thường phức tạp, cồng
kềnh, nên cho dù có công thức nghiệm, việc khảo sát các tính chất nghiệm qua
công thức cũng vẫn gặp phải rất nhiều khó khăn. Vì vậy, ngay từ thời Archimedes,
các phương pháp giải gần đúng đã được xây dựng trong đó phương pháp NewtonRaphson giải gần đúng phương trình phi tuyến đã trở thành kinh điển và được sử
dụng rộng rãi trong thực tế. Tuy nhiên, để giải một phương trình bằng tay trên
giấy, có khi phải mất hàng ngày với những sai sót dễ xảy ra song với sự phát triển
của công cụ tin học công việc này chỉ cần thực hiện trong vài phút thậm chí vài
giây và các phương pháp giải gần đúng lại càng có ý nghĩa thực tế lớn.
Nghiên cứu và phát triển khoa học luôn được xem là một trong những vấn
đề quan trọng hàng đầu trong việc định hướng sự phát triển của toàn xã hội. Các
cơ sở máy móc, thiết bị trong các phòng thí nghiệm luôn được trang bị đầy đủ và
không ngừng cải tiến nhằm tạo nhiều điều kiện thuận lợi hơn cho người làm khoa
học. Tuy nhiên trong thực tế không phải lúc nào chúng ta cũng có đủ các điều kiện
cần thiết để thực hiện các thí nghiệm như mong muốn. Lúc này máy tính đóng vai
trò là một công cụ thực sự hữu ích. Sự xuất hiện của máy tính không chỉ dùng
trong việc nghiên cứu, phân tích, đo đạc các kết quả thực nghiệm mà nó còn được
sử dụng như một công cụ để mô phỏng thí nghiệm, cung cấp cho chúng ta những
kết quả mà các thí nghiệm thuần túy thường gặp phải nhiều khó khăn và hạn chế
trong quá trình thực hiện.
Hóa học phân tích là môn học nghiên cứu xây dựng, phát triển và ứng dụng
các phương pháp cho phân tích hóa học. Hóa phân tích lúc ban đầu chủ yếu dựa
vào các phương pháp hóa học với các phương pháp: phân tích hóa học định lượng
và phân tích hóa học định tính.

1




K1
K2

Cho biết nồng độ mol ban đầu của Cu 2+ là C1 và của EDA là C2. Tính nồng
độ cân bằng của các ion và phân tử trung hòa trong quá trình chuẩn độ Cu 2+ bằng
EDA?

Bài giải
Cân bằng (1) và (2) được viết lại dưới dạng sau:
2Cu2+ +

3EDA → CuEDA2+ + Cu(EDA)22+

C0

C1

C2

0

0

[C]

C1 – x – y

C2 – x – 2y


y’ =
(K 2 +2x) 2

Từ đó ta có thể qui về phương trình 1 ẩn, tìm x và suy ra nồng độ cân bằng
của các ion.

3


Hệ phức Men+ với m phối tử X
Trong dung dịch phức với m=6, khi đạt tới cân bằng có 11 laọi tiểu phân
Mn+, MXn-1, MXn-2, MXn-3, MXn-4, MXn-5, MXn-6, H+, OH-, X-, HX. Để tìm nồng độ
cân bằng chúng ta cần phải giải hệ 11 phương trình tuyến tính, trong đó m phương
trình dạng:
 MX in −i 
Ki =
 MX in−+11−i  +  X − 

Và 5 phương trình còn lại là:
HX = H+ + XH2O = H+ + OHm

Mtotal = [ Mn+] +

∑  MX
i =1

n −i
i




n −i
i

 = 0

ở đây Na+ nằm trong thành phần của muối NaX (có nồng độ C x) và ClO4- nằm
trong thành phần muối M(ClO4)n (có nồng độ Cm).
Hệ phương trình trên đây có thể viết dưới dạng:
i

 MX in −i  = βi  M n +  ×  X −  với β I = K1 K2 … Ki

  

Nếu ký hiệu [X-], [Mn+] và [H+] là x,y,z thì ba ẩn số này được xác định từ 3
phương trình cân bằng vật chất và bảo toàn điện tích:
F(x,y,z) = x +

xz m
+ ∑ i βi yx i − C x = 0
K a i =1
m

i
G(x,y,z) = y + ∑ β i yx − Cm = 0
i =1

H(x,y,z) = z + C x


G(x,y,z)=0
H(x,y,z)=0
Nếu gọi xi, yi, zi, là hệ nghiệm gần đúng trong bước lặp thứ i thì hệ nghiệm
gần đúng trong bước lặp thứ i+1 được xác định bởi:
xi+1 = xi + ∆ x
yi+1

= yi + ∆ y

zi+1 = zi + ∆ z
trong đó ∆ x, ∆ y, ∆ z được xác định từ hệ thức
D = A-1XB
Với

5


 − Fi 
B =  −Gi 
 − H i 

 ∆x 
D =  ∆y 
 ∆z 

 − Fx F ' y F 'z 
i
i
 i



x = xi

Fi + h

∂F
∂F
∂F
+k
+l
+ ... = 0
∂xi
∂yi
∂zi

Gi + h

∂G
∂G
∂G
+k
+l
+ ... = 0
∂xi
∂yi
∂zi

Hi + h

∂H

1. Chương trình chạy
program GHPTPT; (*khai trien taylor *)
uses crt;
type
m2 =
array[1..10,1..10] of real;
m1 =
array[1..10] of real;
ft=text;
var
i,k,n,j,d,dem
: integer;
mtbb,mtcc,bb,b
: m2;
x,f,dd
: m1;
delta,esp,K1,K2,C1,C2,CuEDA,CuEDA2,Cu,EDA
:real;
f1,f2
:ft;
procedure xdmt(x: m1;n:integer; VAR bb:m2);
begin
(* writeln(x[1],x[2]); *)
f[1]:=x[1]*x[1]+3*x[1]*x[2]+2*x[2]*x[2]-(C1+C2+K1)*x[1](2*C1+C2)*x[2]+C1*C2;
f[2]:=-x[1]*x[1]-2*x[1]*x[2]+C2*x[1]-K2*x[2];
bb[1,1]:=2*x[1]+3*x[2]-(C1+C2+K1);
bb[1,2]:=3*x[1]+4*x[2]-(2*C1+C2);
bb[2,1]:=-2*x[1]-2*x[2]+C2;
bb[2,2]:=-2*x[1]-K2;
for i:=1 to n do

aa[i,j] :=aa[i,j]/kk;
end;
if i=n then goto 10;
for k:= i+1 to n do
begin
for j:= i+1 to n+1 do aa[k,j]:=aa[k,j]-aa[k,i]*aa[i,j];
end;
end;
10: xx[n] := aa[n,n+1];
Writeln (' Nghiem cua phuong trinh');
Writeln (' Xx[',n,']= ', xx[n]);
for i := (n - 1) downto 1 do
Begin
ak:=0;
for j := i + 1 to n do
Begin
ak := ak + xx[j] * aa[i,j];
end;
XX[i] := aa[i,n+1] - ak;
Writeln ('
XX[',I,']= ',XX[i]);
end;
(* thu lai nghiem cua pt *)
writeln(' Thu lai nghiem cua phuong trinh ');
for i:=1 to n do
begin
test:=0;
for j:=1 to n do
begin
test:= aa[i,j]*xx[j]+test;

write(f1,'nhap nong do EDA= ');write(f1,C2:10:4); writeln(f1,'');
writeln('nhap cac gia tri gan dung ban dau cua he nghiem');
writeln(f1,'nhap cac gia tri gan dung ban dau cua he nghiem');
n:=2;
for i:=1 to n do
begin
write('x[',i,']=?');readln(x[i]);
write(f1,'x[',i,']+?');write(f1,x[i]:10:4);writeln(f1,'');
end;
readln;
close(f1);
dem:=0;
9


Repeat
inc(dem);
xdmt(x,n,mtbb);readln;
for i:=1 to n do
for k:=1 to n do b[i,k]:=mtbb[i,k];
for i:=1 to n do
b[i,n+1]:=f[i];
ghpttt(b,n,dd);
hmt(dd,n,x);
delta:=0;
for i:=1 to n do
delta:=delta+abs (dd[i]/x[i]);
writeln('delta = ',delta);
readln;
until delta < esp;

1.5
0.1
0.5
0.1
0.3
Output
Nghiem cua phuong trinh
XX[2]= 2.0458715596E-01
XX[1]= 4.0733944954E-01
Thu lai nghiem cua phuong trinh
test:= 0.0800 aa[1,n+1]:= 0.0800
test:= 0.0824 aa[2,n+1]:= 0.2046
delta = 3.4696039035E+00
Nghiem cua phuong trinh
XX[2]= 6.3015396282E-02
XX[1]= -2.9962487853E-01
Thu lai nghiem cua phuong trinh
test:= -0.2591 aa[1,n+1]:= -0.2591
test:= -0.2138 aa[2,n+1]:= 0.0630
delta = 4.0783898521E+01
Nghiem cua phuong trinh
XX[2]= 2.3978233923E-02
XX[1]= -3.6428033911E-02
Thu lai nghiem cua phuong trinh
test:= -0.0271 aa[1,n+1]:= -0.0271
test:= 0.0076 aa[2,n+1]:= 0.0240
delta = 4.1167115195E+00
Nghiem cua phuong trinh
XX[2]= -2.2072033137E-04
XX[1]= 1.7899035425E-04

pháp. Như vậy bằng phương pháp giải lặp gần đúng, ta đã xác định được nồng độ
cân bằng của các ion trong dung dịch một cách đơn giản và chính xác. Chương
trình cho phép tính toán nồng độ cân bằng của các ion trong dung dịch bất kì áp
dụng trong các hệ cân bằng tạo phức, acid, base, oxi hóa khử, …
Việc xác định được nồng độ cân bằng của các ion trong dung dịch bằng
cách giải gần đúng có ý nghĩa rất lớn trong việc phân tích, kiểm nghiệm. Áp dụng
thuật toán này với những hệ cân bằng phức tạp sẽ tiết kiệm được nhiều thời gian
và công sức.

12


III. KẾT LUẬN
Như vậy việc áp dụng các thuật toán giải lặp vào bài toán hóa học cho phép
chúng ta có thể xác định được nồng độ cân bằng của các ion trong dung dịch một
cách dễ dàng với những hệ cân bằng phức tạp. Qua đó cho thấy những ứng dụng
của toán học, vật lý, sinh học vào hóa học ngày càng có vai trò quan trọng thu
được những kết quả chính xác và nhanh chóng hơn.

13




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status