1. Trang chủ
  2. » Khoa Học Tự Nhiên

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

13 549 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 150,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 Newton-Raphson giải gần đúng phương trình phi tuyến đã trở thành kinh điển và được sử

Trang 1

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 Newton-Raphson 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

Trang 2

Tuy nhiên do đòi hỏi của sự phát triển kinh tế xã hội, sự giao lưu thương mại toàn cầu, các phương pháp hóa học dùng trong phân tích đã không đáp ứng được sức ép ngày một tăng lên là cần có một kết quả phân tích đáng tin cậy Vì vậy bên cạnh các phương pháp hóa học người ta còn sử dụng các phương pháp vật

lí, sinh học và cả toán học

Ngôn ngữ lập trình Pascal là một ngôn ngữ lập trình bậc cao có cấu trúc rõ ràng làm cho người dùng dễ sử dụng Do đó việc áp dụng các phương pháp toán học và ngôn ngữ Pascal trong việc tính toán kết quả phân tích định lượng là hết sức cần thiết, đặc biệt là trong việc xác định nồng độ cân bằng các ion trong dung dịch

Vì vậy trong tiểu luận này tôi đã chọn đề tài là: “Áp dụng phương pháp giải

lặp Newton-Raphson 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” và áp dụng tính toánvới bài toán cân bằng tạo phức trong dung dịch Cu2+ và EDA( Ethylenediamine C2H4(NH2)2.)

Trang 3

I CƠ SỞ LÝ THUYẾT

1 Lý thuyết bài toán hóa học.

Xét sự tạo phức trong dung dịch của một kim loại M với các phối tử L, đây

là các ion hoặc phân tử có khả năng tạo lien kết cho nhận với kim loại M

Trong bài toán này chẳng hạn ta xét cụ thể cân bằng tạo phức trong dung dịch Cu2+ và EDA có dạng:

(1) Cu2+ + EDA → CuEDA2+ K1

(2) CuEDA2+ + EDA → Cu(EDA)22+ K2

Cho biết nồng độ mol ban đầu của Cu2+ là C1 và của EDA là C2 Tính nồ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 x y

Ta có các phương trình liên hệ sau:

Khi đó:

y =

y’ =

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

Trang 4

Hệ phức Me n+ 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:

Và 5 phương trình còn lại là:

HX = H+ + X

-H2O = H+ + OH

-Mtotal = [ Mn+] +

Mtotal = [X-] + [HX] +

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:

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:

G(x,y,z) =

trong đó Ka và Kw là hằng số phân li của axit HX và của nước

Trang 5

2 Thuật toán.

Phương pháp Newton-Raphson

Còn gọi là phương pháp Newton hay phương pháp tiếp tuyến Phương pháp Newton-Raphson giải một (hệ) phương trình thực bằng cách xấp xỉ dần giá trị của nghiệm thông qua một dãy số hội tụ về giá trị thật của nghiệm

Nguyên tắc của phương pháp là nghiệm gần đúng thứ i+1của phương trình F(x)= 0 có thể tính gần đúng thứ i theo hệ thức sau đây với điều kiện F khả vi tại xi

và F’(x) # 0

Trong trường hợp tổng quát không phải lúc nào hệ phương trình phi tuyến cũng quy được về phương trình 1 ẩn Lúc đó chúng ta phải giải bài toán hệ phương trình phi tuyến

Ta xét nguyên tắc của phương pháp giả trên một trường hợp riêng của hệ 3 phương trình 3 ẩn số sau đây:

F(x,y,z)=0

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

Trang 6

Điều kiện để giải lặp hệ phương trình phi tuyến bằng phương pháp Newton-Raphson là các hàm F, G, H phải khả vi với mọi biến

Việc tính đạo hàm riêng của F, G, H, được thực hiện trong PROCEDURE FFF Tiêu chuẩn hội tụ của chương trình là:

Phương pháp hệ phương trình tuyến tính

Hệ phương trình phi tuyến có thể giải được theo cách quy về hệ phương trình tuyến tính khi khai triển Taylor các hàm F, G, H

Khi bỏ qua các số hạng bậc cao hơn 1 chúng ta được hệ phương trình tuyến tính:

Sử dụng PROCEDURE giải hệ phương trình tuyến tính chúng ta có thể tính được nghiệm kế tiếp

Trang 7

xi+1 = xi + h

yi+1 = yi + k

zi+1 = zi + l

II CHƯƠNG TRÌNH

1 Chương trình chạy

uses crt;

type

ft=text;

var

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

begin

for j:=1 to n do write(bb[i,j]:10:5);

writeln;

end;

end;

{procedure nghiem(a:m2;n:integer;VAR xx:m1);

Begin

xx[1]:=(a[1,3]*a[2,2]-a[1,2]*a[2,3])/(a[1,1]*a[2,2]-a[1,2]*a[2,1]); xx[2]:=(a[1,1]*a[2,3]-a[2,1]*a[1,3])/(a[1,1]*a[2,2]-a[1,2]*a[2,1]); end;}

Trang 8

procedure ghpttt(a:m2;n:integer; VAR xx:m1);

label 10;

Begin

for i:=1 to n do

for k:=1 to n+1 do aa[i,k]:=a[i,k];

for i := 1 to n do

(* Khu x[i] *)

kk:=aa[i,i];

for j :=i to n + 1 do

Begin

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;

10: xx[n] := aa[n,n+1];

Writeln (' Xx[',n,']= ', xx[n]);

for i := (n - 1) downto 1 do

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;

Trang 9

end;

writeln(' test:=':15,test:10:4,' aa[',i,',n+1]:=',aa[i,n+1]:10:4);

end;

end;

procedure hmt(d:m1;n:integer; VAR x:m1);

var

begin

for i:=1 to n do x[i]:=x[i]-d[i];

end;

BEGIN (* chuong trinh chinh *)

clrscr;

assign(f1,'input1.txt');

rewrite(f1);

writeln('**THANH HA - xac dinh nong do can bang cua ion trong dung dich

Cu2+ va EDA**' );

esp:=1.e-8;

write('nhap hang so can bang K1=');readln(K1);

write('nhap hang so can bang K2=');readln(K2);

write('nhap nong do Cu2+=');readln(C1);

write('nhap nong do EDA= ');readln(C2);

writeln('** Chuong trinh ghptpt bang cach khai trien taylor **' );

esp:=1.e-8;

write(f1,'nhap hang so can bang K1=');write(f1,K1:10:4);writeln(f1,'');

write(f1,'nhap hang so can bang K2=');write(f1,K2); writeln(f1,'');

write(f1,'nhap nong do Cu2+=');write(f1,C1:10:4); writeln(f1,'');

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;

Trang 10

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;

writeln(' gia tri cua nghiem '); for i:=1 to n do write(x[i]:15, ' '); writeln;

writeln;

CuEDA:=x[1];

CuEDA2:=x[2];

Cu:=C1-x[1]-x[2];

EDA:=C2-x[1]-2*x[2];

assign(f2,'ketqua1.txt');

rewrite(f2);

writeln('Cu',Cu:10);

writeln('EDA',EDA:10);

writeln('CuEDA',CuEDA:10);

writeln('CuEDA2',CuEDA2:12); writeln('So lan chay la:',dem);

writeln(f2,'Cu',Cu:10);

writeln(f2,'EDA',EDA:10);

writeln(f2,'CuEDA',CuEDA:10); writeln(f2,'CuEDA2',CuEDA2:12); writeln(f2,'So lan chay la:',dem:10); readln ;

close(f2);

end

Trang 11

2 Kết quả

Input:

1.0

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

Thu lai nghiem cua phuong trinh

test:= 0.0001 aa[1,n+1]:= 0.0001 test:= -0.0001 aa[2,n+1]:= -0.0002 delta = 3.1819305302E-02

Trang 12

Nghiem cua phuong trinh

XX[2]= -2.9102298084E-08

XX[1]= 3.9040997239E-09

Thu lai nghiem cua phuong trinh

test:= -0.0000 aa[1,n+1]:= -0.0000

test:= -0.0000 aa[2,n+1]:= -0.0000

delta = 3.5051563394E-06

Nghiem cua phuong trinh

XX[2]= -1.7537470291E-14

XX[1]= -3.0767439341E-14

Thu lai nghiem cua phuong trinh

test:= -0.0000 aa[1,n+1]:= -0.0000

test:= -0.0000 aa[2,n+1]:= -0.0000

delta = 3.1080636374E-12

Cu 6.283E-02

EDA 4.542E-01

CuEDA 2.853E-02

CuEDA2 8.63996E-03

So lan chay la: 6

3 Biện luận kết quả

Kết quả thu được gần đúng với kết quả thực, cho thấy ưu điểm của phương 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

Trang 13

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

Ngày đăng: 29/03/2016, 23:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w