Index

Successive Approximations Example:
Chemical Concentrations in an Orthoborate Solution at Equilibrium

In this example, we'll use successive approximations to compute the concentrations of chemical species in an aqueous mixture. We'll derive the functions needed for this method from static equilibrium equations and conservation equations. The following describes some notation used in the example:

We will consider an aqueous orthoborate solution made from equal volumes of 0.100M Na3BO3 and 0.0500M Na2HBO3, and we'll compute the concentrations of H+, OH-, BO33-, HBO32-, H2BO3- and H3BO3. Because the concentrations must be positive real numbers, we'll only compute real-valued successive approximations, and we'll reject any negative-valued answers that might appear.

We have six unknown concentrations, so we'll need six equations to solve them. We can write one equation describing the mixture's total-orthoborate concentration as the sum of the concentrations of all orthoborate species in the mixture. Because equal volumes of the 0.100M Na3BO3 and 0.050M Na2HBO3 solutions were mixed, the total orthoborate concentration of the mixture equals the average of the orthoborate concentrations in the two unmixed solutions:

Eq. 1ATotal orthoborate = [H3BO3] + [H2BO3] + [HBO3] + [BO3] = (0.100M + 0.050M) /2 = 0.075M

We'll write another equation balancing the positive and negative ionic charges in the mixture. The mixture is electrically neutral, and thus the products of species-concentration and species-charge must add-up to zero. We'll express this by equating the sum of (+) ion-concentrations multiplied by degrees of ionic charge, to the sum of (-) ion-concentrations multiplied by degrees of ionic charge:

Eq. 2A 1*[Na +] + 1*[H +] = 1*[H2BO3 -] + 2*[HBO3 2-] + 3*[BO3 3-] + 1*[OH -]

The sodium ion concentration is the average of the sodium ion concentrations in the original 0.100M Na3BO3 and 0.050M Na2HBO3 solutions:

[Na] = (3*[0.100M] + 2*[0.050M]) /2 = 0.200M

Thus we can simplify Eq. 2A by substituting the value of [Na], and also omitting the coefficients "1*" and the charges:

Eq. 2A0.200M + [H] = [H2BO3] + 2*[HBO3] + 3*[BO3] + [OH]

For our third equation, we'll relate the water dissociation constant to the product of the hydronium and hydroxide concentrations:

Eq. 3AKw = 1E-14 = [H]*[OH]

For the last three equations, we'll use the equilibrium expressions for either the three acid dissociation reactions of H3BO3, or the three base dissociation reactions of BO3. Note that each set of three expressions can be derived from the other set. The CRC Handbook of Chemistry and Physics provides orthoboric acid's dissociation constants, which equal the ion-products of the corresponding dissociation reactions:

 Acid Dissociation Constant and Ion Product Corresponding Acid Dissociation Reaction
 Ka1 = 7.3E-10 = [H]*[H2BO3]/[H3BO3] H3BO3   <-->  H + H2BO3
 Ka2 = 1.8E-13 = [H]*[HBO3]/[H2BO3] H2BO3   <-->  H + HBO3
 Ka3 = 1.6E-14 = [H]*[BO3]/[HBO3] HBO3   <-->  H + BO3

The near-zero size of the acid dissociation constants might cause computation errors in our successive approximations. So instead, we'll calculate the base dissociation constants, which are much larger, and relate them to the ion-products of the corresponding reactions:

  Base Dissociation Constant and Ion Product Corresponding Base Dissociation Reaction
Eq. 4A Kb1 = Kw/Ka3 = 0.625 = [OH]*[HBO3]/[BO3] BO3  + H2O  <-->  OH + HBO3
Eq. 5A Kb2 = Kw/Ka2 = 0.05556 = [OH]*[H2BO3]/[HBO3] HBO3 + H2O  <-->  OH + H2BO3
Eq. 6A Kb3 = Kw/Ka1 = 1.370E-05 = [OH]*[H3BO3]/[H2BO3] H2BO3 + H2O  <-->  OH + H3BO3

We can manipulate Eqs. 1A through 6A into six optimal equations, all equal to zero and easy to differentiate:

Eq. 10 = [H3BO3] + [H2BO3] + [HBO3] + [BO3] - 0.075M
Eq. 20 = [H2BO3] + 2*[HBO3] + 3*[BO3] + [OH] - [H] - 0.200M
Eq. 30 = [H]*[OH] - 1E-14
Eq. 40 = [OH]*[HBO3] - 0.625*[BO3]
Eq. 50 = [OH]*[H2BO3] - 0.05556*[HBO3]
Eq. 60 = [OH]*[H3BO3] - 1.370E-05*[H2BO3]

Based on this equation set, we will define a column-vector of six unrestricted functions and a column-vector of six unknown concentrations, which we'll name vectors F and Z respectively. Then we'll compute the Jacobian of F and Z, which we'll name matrix J. Table 1 shows how Z, F, and J might be defined in the top rows of a spreadsheet:

Table 1. Definitions of column-vector Z, column-vector F, and Jacobian matrix J.
Slide your browser's horizontal scrollbar to view the right-hand columns.
 ABCDEFGH 
1
Z
F
J
1
2[H][H3BO3]+[H2BO3]+[HBO3]+[BO3]-0.075M0011112
3[OH][H2BO3]+2*[HBO3]+3*[BO3]+[OH]-[H]-0.200M-1101233
4[H3BO3][H]*[OH]-1E-14[OH][H]00004
5[H2BO3][OH]*[HBO3]-0.625*[BO3]0[HBO3]00[OH]-0.6255
6[HBO3][OH]*[H2BO3]-0.05556*[HBO3]0[H2BO3]0[OH]-0.0555606
7[BO3][OH]*[H3BO3]-1.37E-05*[H2BO3]0[H3BO3][OH]-1.37E-05007
8        8

To compute the successive approximations, we'll enter estimates of the six concentrations as vector Z. A reasonable estimate for all six concentrations might be 0.075M, since 0.075M is the total orthoborate concentration. To the right of Z, we'll compute vector F and matrix J using the equations shown in Table 1. To the right of J, we'll compute the inverse of J (matrix 1/J) and the product of 1/J and F (column-vector DZ) using Excel's matrix functions. In the cells below Z, we'll compute the next approximation of the concentrations by subtracting DZ from Z. Finally, we'll repeat the computations by copying rows downward until Z converges on a solution. Table 2 shows how these functions would appear in an Excel spreadsheet (the values returned by these functions appear in Table 3).

Table 2. Excel functions solving [H], [OH], [H3BO3], [H2BO3], [HBO3] and [BO3].
 ABCDEFGHIJKLMNO 
9
Z
F
J
1/J
DZ
9
10= 0.075= A12+A13+A14+A15-0.075= 0= 0= 1= 1= 1= 1= INDEX(MINVERSE(C10:H15),1,1)= INDEX(MINVERSE(C10:H15),1,2)= INDEX(MINVERSE(C10:H15),1,3)= INDEX(MINVERSE(C10:H15),1,4)= INDEX(MINVERSE(C10:H15),1,5)= INDEX(MINVERSE(C10:H15),1,6)= INDEX(MMULT(I10:N15,B10:B15),1,1)10
11= 0.075= A13+2*A14+3*A15+A11-A10-0.2= -1= 1= 0= 1= 2= 3= INDEX(MINVERSE(C10:H15),2,1)= INDEX(MINVERSE(C10:H15),2,2)= INDEX(MINVERSE(C10:H15),2,3)= INDEX(MINVERSE(C10:H15),2,4)= INDEX(MINVERSE(C10:H15),2,5)= INDEX(MINVERSE(C10:H15),2,6)= INDEX(MMULT(I10:N15,B10:B15),2,1)11
12= 0.075= A10*A11-1E-14= A11= A10= 0= 0= 0= 0= INDEX(MINVERSE(C10:H15),3,1)= INDEX(MINVERSE(C10:H15),3,2)= INDEX(MINVERSE(C10:H15),3,3)= INDEX(MINVERSE(C10:H15),3,4)= INDEX(MINVERSE(C10:H15),3,5)= INDEX(MINVERSE(C10:H15),3,6)= INDEX(MMULT(I10:N15,B10:B15),3,1)12
13= 0.075= A11*A14-0.625*A15= 0= A14= 0= 0= A11= -0.625= INDEX(MINVERSE(C10:H15),4,1)= INDEX(MINVERSE(C10:H15),4,2)= INDEX(MINVERSE(C10:H15),4,3)= INDEX(MINVERSE(C10:H15),4,4)= INDEX(MINVERSE(C10:H15),4,5)= INDEX(MINVERSE(C10:H15),4,6)= INDEX(MMULT(I10:N15,B10:B15),4,1)13
14= 0.075= A11*A13-0.05556*A14= 0= A13= 0= A11= -0.05556= 0= INDEX(MINVERSE(C10:H15),5,1)= INDEX(MINVERSE(C10:H15),5,2)= INDEX(MINVERSE(C10:H15),5,3)= INDEX(MINVERSE(C10:H15),5,4)= INDEX(MINVERSE(C10:H15),5,5)= INDEX(MINVERSE(C10:H15),5,6)= INDEX(MMULT(I10:N15,B10:B15),5,1)14
15= 0.075= A11*A12-1.370E-05*A13= 0= A12= A11= -1.37E-05= 0= 0= INDEX(MINVERSE(C10:H15),6,1)= INDEX(MINVERSE(C10:H15),6,2)= INDEX(MINVERSE(C10:H15),6,3)= INDEX(MINVERSE(C10:H15),6,4)= INDEX(MINVERSE(C10:H15),6,5)= INDEX(MINVERSE(C10:H15),6,6)= INDEX(MMULT(I10:N15,B10:B15),6,1)15
16
Z
F
J
1/J
DZ
16
17= A10-O10= A19+A20+A21+A22-0.075= 0= 0= 1= 1= 1= 1= INDEX(MINVERSE(C17:H22),1,1)= INDEX(MINVERSE(C17:H22),1,2)= INDEX(MINVERSE(C17:H22),1,3)= INDEX(MINVERSE(C17:H22),1,4)= INDEX(MINVERSE(C17:H22),1,5)= INDEX(MINVERSE(C17:H22),1,6)= INDEX(MMULT(I17:N22, B17:B22),1,1)17
18= A11-O11= A20+2*A21+3*A22+A18-A17-0.2= -1= 1= 0= 1= 2= 3= INDEX(MINVERSE(C17:H22),2,1)= INDEX(MINVERSE(C17:H22),2,2)= INDEX(MINVERSE(C17:H22),2,3)= INDEX(MINVERSE(C17:H22),2,4)= INDEX(MINVERSE(C17:H22),2,5)= INDEX(MINVERSE(C17:H22),2,6)= INDEX(MMULT(I17:N22, B17:B22),2,1)18
19= A12-O12= A17*A18-1E-14= A18= A17= 0= 0= 0= 0= INDEX(MINVERSE(C17:H22),3,1)= INDEX(MINVERSE(C17:H22),3,2)= INDEX(MINVERSE(C17:H22),3,3)= INDEX(MINVERSE(C17:H22),3,4)= INDEX(MINVERSE(C17:H22),3,5)= INDEX(MINVERSE(C17:H22),3,6)= INDEX(MMULT(I17:N22, B17:B22),3,1)19
20= A13-O13= A18*A21-0.625*A22= 0= A21= 0= 0= A18= -0.625= INDEX(MINVERSE(C17:H22),4,1)= INDEX(MINVERSE(C17:H22),4,2)= INDEX(MINVERSE(C17:H22),4,3)= INDEX(MINVERSE(C17:H22),4,4)= INDEX(MINVERSE(C17:H22),4,5)= INDEX(MINVERSE(C17:H22),4,6)= INDEX(MMULT(I17:N22, B17:B22),4,1)20
21= A14-O14= A18*A20-0.05556*A21= 0= A20= 0= A18= -0.05556= 0= INDEX(MINVERSE(C17:H22),5,1)= INDEX(MINVERSE(C17:H22),5,2)= INDEX(MINVERSE(C17:H22),5,3)= INDEX(MINVERSE(C17:H22),5,4)= INDEX(MINVERSE(C17:H22),5,5)= INDEX(MINVERSE(C17:H22),5,6)= INDEX(MMULT(I17:N22, B17:B22),5,1)21
22= A15-O15= A18*A19-1.370E-05*A20= 0= A19= A18= -1.37E-05= 0= 0= INDEX(MINVERSE(C17:H22),6,1)= INDEX(MINVERSE(C17:H22),6,2)= INDEX(MINVERSE(C17:H22),6,3)= INDEX(MINVERSE(C17:H22),6,4)= INDEX(MINVERSE(C17:H22),6,5)= INDEX(MINVERSE(C17:H22),6,6)= INDEX(MMULT(I17:N22, B17:B22),6,1)22
23
Z
F
J
1/J
DZ
23
24= A17-O17= A26+A27+A28+A29-0.075= 0= 0= 1= 1= 1= 1= INDEX(MINVERSE(C24:H29),1,1)= INDEX(MINVERSE(C24:H29),1,2)= INDEX(MINVERSE(C24:H29),1,3)= INDEX(MINVERSE(C24:H29),1,4)= INDEX(MINVERSE(C24:H29),1,5)= INDEX(MINVERSE(C24:H29),1,6)= INDEX(MMULT(I24:N29, B24:B29),1,1)24
25= A18-O18= A27+2*A28+3*A29+A25-A24-0.2= -1= 1= 0= 1= 2= 3= INDEX(MINVERSE(C24:H29),2,1)= INDEX(MINVERSE(C24:H29),2,2)= INDEX(MINVERSE(C24:H29),2,3)= INDEX(MINVERSE(C24:H29),2,4)= INDEX(MINVERSE(C24:H29),2,5)= INDEX(MINVERSE(C24:H29),2,6)= INDEX(MMULT(I24:N29, B24:B29),2,1)25
26= A19-O19= A24*A25-1E-14= A25= A24= 0= 0= 0= 0= INDEX(MINVERSE(C24:H29),3,1)= INDEX(MINVERSE(C24:H29),3,2)= INDEX(MINVERSE(C24:H29),3,3)= INDEX(MINVERSE(C24:H29),3,4)= INDEX(MINVERSE(C24:H29),3,5)= INDEX(MINVERSE(C24:H29),3,6)= INDEX(MMULT(I24:N29, B24:B29),3,1)26
27= A20-O20= A25*A28-0.625*A29= 0= A28= 0= 0= A25= -0.625= INDEX(MINVERSE(C24:H29),4,1)= INDEX(MINVERSE(C24:H29),4,2)= INDEX(MINVERSE(C24:H29),4,3)= INDEX(MINVERSE(C24:H29),4,4)= INDEX(MINVERSE(C24:H29),4,5)= INDEX(MINVERSE(C24:H29),4,6)= INDEX(MMULT(I24:N29, B24:B29),4,1)27
28= A21-O21= A25*A27-0.05556*A28= 0= A27= 0= A25= -0.05556= 0= INDEX(MINVERSE(C24:H29),5,1)= INDEX(MINVERSE(C24:H29),5,2)= INDEX(MINVERSE(C24:H29),5,3)= INDEX(MINVERSE(C24:H29),5,4)= INDEX(MINVERSE(C24:H29),5,5)= INDEX(MINVERSE(C24:H29),5,6)= INDEX(MMULT(I24:N29, B24:B29),5,1)28
29= A22-O22= A25*A26-1.370E-05*A27= 0= A26= A25= -1.37E-05= 0= 0= INDEX(MINVERSE(C24:H29),6,1)= INDEX(MINVERSE(C24:H29),6,2)= INDEX(MINVERSE(C24:H29),6,3)= INDEX(MINVERSE(C24:H29),6,4)= INDEX(MINVERSE(C24:H29),6,5)= INDEX(MINVERSE(C24:H29),6,6)= INDEX(MMULT(I24:N29, B24:B29),6,1)29
 ABCDEFGHIJKLMNO 

Table 3 shows the values returned by the functions in Table 2. The values for the concentrations (vector Z) converge on a solution by the fourth succesive approximation. This solution appears in cells A38 through A43. Note that the functions in vector F all converge on zero, as they should.

Table 3. Values returned by the functions in Table 2.
 ABCDEFGHIJKLMNO 
9
Z
F
J
1/J
DZ
9
100.0750.225000011110.371-0.22310.366-0.475-1.978-4.9450.075010
110.0750.25000-110123-0.3710.2232.9680.4751.9784.945-6.81E-0611
120.0750.005620.07500.075000000.371-0.223-2.968-0.475-1.9778.3870.075012
130.075-0.0412500.0750000.0750-0.62500.491-0.056-0.7460.5177.527-6.5520.045113
140.0750.0014600.075000.0750-0.055600.1630.2252.9981.340-5.168-2.1690.034714
150.0750.0056200.07500.0750-1.4E-0500-0.0250.0540.716-1.382-0.3830.3330.070215
23
Z
F
J
1/J
DZ
23
17-6.8072E-061.39E-17001111-1.1E-046.7E-0513.3331.4E-046.0E-040.001-6.81E-0617
180.0750068071.11E-16-110123-1.2330.7409.8671.5796.57716.441-1.58E-0518
19-1.3539E-06-5.11E-070.0750-6.8E-0600001.1E-04-2.2E-05-3.0E-046.8E-050.00113.331-6.81E-0619
200.029854242-2.36E-0700.0403000.0750-0.62500.725-0.196-2.6170.2186.280-9.6684.29E-0620
210.040309192-3.07E-0700.029900.0750-0.055600.3160.1331.7691.143-5.987-4.2172.82E-0621
220.004837920-5.11E-070-1.4E-060.0750-1.4E-0500-0.0420.0640.849-1.361-0.2940.554-3.04E-0722
23
Z
F
J
1/J
DZ
23
241.4364E-090.00E+000011112.4E-08-1.4E-0813.329-3.0E-08-1.3E-07-3.1E-071.44E-0924
250.075022633-2.78E-17-110123-1.2330.7409.8631.5796.57616.4362.32E-0925
265.4524E-061.08E-100.07501.4E-0900002.2E-04-9.0E-05-0.001-7.5E-056.7E-0413.3261.44E-0926
270.029849951-4.46E-1100.0403000.0750-0.62500.725-0.196-2.6150.2186.280-9.663-1.76E-0927
280.040306372-6.79E-1100.029800.0750-0.055600.3160.1331.7681.143-5.986-4.2179.17E-1128
290.0048382241.08E-1005.5E-060.0750-1.4E-0500-0.0420.0640.848-1.361-0.2940.5542.32E-1029
23
Z
F
J
1/J
DZ
23
311.3334E-130.00E+000011112.2E-12-1.3E-1213.329-2.8E-12-1.2E-11-2.9E-114.43E-1731
320.0750226310.00E+00-110123-1.2330.7409.8631.5796.57616.4366.25E-1732
335.4509E-063.33E-180.07501.3E-1300002.2E-04-9.0E-05-0.001-7.5E-056.7E-0413.3264.43E-1733
340.0298499534.34E-1900.0403000.0750-0.62500.725-0.196-2.6150.2186.280-9.663-6.52E-1734
350.040306372-3.90E-1800.029800.0750-0.055600.3160.1331.7681.143-5.986-4.2171.57E-1735
360.0048382243.32E-1805.5E-060.0750-1.4E-0500-0.0420.0640.848-1.361-0.2940.5545.22E-1836
23
Z
F
J
1/J
DZ
23
381.3329E-131.39E-170011112.2E-12-1.3E-1213.329-2.8E-12-1.2E-11-2.9E-118.16E-3038
390.0750226310.00E+00-110123-1.2330.7409.8631.5796.57616.436-1.64E-1739
405.4509E-06-1.58E-300.07501.3E-1300002.2E-04-9.0E-05-0.001-7.5E-056.7E-0413.3262.34E-2140
410.0298499534.34E-1900.0403000.0750-0.62500.725-0.196-2.6150.2186.280-9.6631.02E-1741
420.0403063720.00E+0000.029800.0750-0.055600.3160.1331.7681.143-5.986-4.2174.89E-1842
430.004838224-5.29E-2305.5E-060.0750-1.4E-0500-0.0420.0640.848-1.361-0.2940.554-1.17E-1843
 ABCDEFGHIJKLMNO 

To see more examples of successive approximations, examples for finding complex solutions (i.e. solutions having both real and imaginary character), or background theory, browse the "Index" whose link appears below.

Index

URL http://members.aceweb.com/patrussell/approximations/Borate.htm
Unpublished Work. © Copyright 2002 Pat Russell. Updated April 17, 2009.