Next Article in Journal
An Integer Linear Programming Formulation for the Minimum Cardinality Segmentation Problem
Next Article in Special Issue
Local Convergence of an Efficient High Convergence Order Method Using Hypothesis Only on the First Derivative
Previous Article in Journal
A Particle Filter Track-Before-Detect Algorithm Based on Hybrid Differential Evolution
Previous Article in Special Issue
On Some Improved Harmonic Mean Newton-Like Methods for Solving Systems of Nonlinear Equations
Article Menu

Export Article

Algorithms 2015, 8(4), 982-998; https://doi.org/10.3390/a8040982

Article
Some Matrix Iterations for Computing Generalized Inverses and Balancing Chemical Equations
1
Department of Chemistry, Roudehen Branch, Islamic Azad University, 39731 Roudehen, Iran
2
Faculty of Sciences and Mathematics, University of Niš, Višegradska 33, 18000 Niš, Serbia
3
Department of Applied Mathematics, Ferdowsi University of Mashhad, 91779 Mashhad, Iran
*
Author to whom correspondence should be addressed.
Academic Editors: Alicia Cordero, Juan R. Torregrosa and Francisco I. Chicharro
Received: 25 June 2015 / Accepted: 26 October 2015 / Published: 3 November 2015

Abstract

:
An application of iterative methods for computing the Moore–Penrose inverse in balancing chemical equations is considered. With the aim to illustrate proposed algorithms, an improved high order hyper-power matrix iterative method for computing generalized inverses is introduced and applied. The improvements of the hyper-power iterative scheme are based on its proper factorization, as well as on the possibility to accelerate the iterations in the initial phase of the convergence. Although the effectiveness of our approach is confirmed on the basis of the theoretical point of view, some numerical comparisons in balancing chemical equations, as well as on randomly-generated matrices are furnished.
Keywords:
generalized inverses; balancing chemical equations; hyper-power method; order of convergence; matrix inverse

1. Introduction

A chemical equation is only a symbolic representation of a chemical reaction and represents an expression of atoms, elements, compounds or ions. Such expressions are generated based on balancing through reactant or product coefficients, as well as through reactant or product molar masses [1]. In fact, equilibrating the equations that represent the stoichiometry of a reacting system is a matter of mathematics, since it can be reduced to the problem of solving homogeneous linear systems.
Balancing chemical equations is an important application of generalized inverses. To discuss further, the reflexive g-inverse of a matrix has been successfully used in solving a general problem of balancing chemical equations (see [2,3]). Continuing in the same direction, Krishnamurthy in [4] gave a mathematical method for balancing chemical equations founded by virtue of a generalized matrix inverse. The method used in [4] is based on the exact computation of reflexive generalized inverses by means of elementary matrix transformations and the finite-field residue arithmetic, as it was described in [5].
It is well known that the symbolic data processing, including both rational arithmetic and multiple modulus residue arithmetic, are time consuming, both for the implementation and for execution. On the other hand, the finite-field exact arithmetic is inapplicable to chemical reactions, which include atoms with fractional and/or integer oxidation numbers. This hard class of chemical reactions is investigated in [6].
Additionally, the balancing chemical equations problem can be readily resolved by computer algebra software, as was discussed in [7]. The approach used in [7] is based on the usage of the Gaussian elimination (also known as the Gauss–Jordan algorithm), while the approach that is exploited in [2] is based on singular value decomposition (SVD). On the other hand, it is widely known that Gaussian elimination, as well as SVD require a large amount of numerical operations [8]. Furthermore, small pivots that could appear in Gaussian elimination can lead to large multipliers [9], which can sometimes lead to the divergence of numerical algorithms. Two methods of balancing chemical equations, introduced in [10], are based on integer linear programming and integer nonlinear programming models, respectively. Notice that the linear Diophantine matrix method was proposed in [11]. The method is applicable in cases when the reaction matrices lead to infinite stoichiometrically-independent solutions.
In the present paper, we consider the possibility of applying a new higher order iterative method for computing the Moore–Penrose inverse in the problem of balancing chemical equations. In general, our current research represents the first attempt to apply iterative methods in balancing chemical reactions.
A rapid numerical algorithm for computing matrix-generalized inverses with a prescribed range and null space is developed in order to implement this global idea. The method is based on an appropriate modification of the hyper-power iterative method. Furthermore, some techniques for the acceleration of the method in the initial phase of its convergence is discussed. We also try to show the applicability of proposed iterative schemes in balancing chemical equations. Before a more detailed discussion, we briefly review some of the important backgrounds incorporated in our work.
The outer inverse with prescribed range T and null space S of a matrix A r m × n , denoted by A T , S ( 2 ) , satisfies the second Penrose matrix equation X A X = X and two additional properties: R ( X ) = T and N ( X ) = S . The significance of these inverses is reflected primarily in the fact that the most important generalized inverses are particular cases of outer inverses with a prescribed range and null space. For example, the Moore–Penrose inverse A , the weighted Moore–Penrose inverse A M , N , the Drazin inverse A D and the group inverse A # can be derived by means of the appropriate choices of subspaces T and S in what follows:
A = A R ( A * ) , N ( A * ) ( 2 ) , A M , N = A R ( A ) , N ( A ) ( 2 ) A D = A R ( A k ) , N ( A k ) ( 2 ) , k ind ( A ) , A # = A R ( A ) , N ( A ) ( 2 ) , ind ( A ) = 1
wherein A = M A N - 1 and ind ( A ) denotes the index of a square matrix A (see, e.g., [12]).
Although there are many approaches to calculate these inverses by means of direct methods, an alternative and very important approach is to use iterative methods. Among many such matrix iterative methods, the hyper-power iterative family has been introduced and investigated (see, for example, [13,14,15]). The hyper-power iteration of the order p is defined by the following scheme (see, for example, [13]):
X k + 1 = X k ( I + R k + + R k p - 1 ) = X k i = 0 p - 1 R k i , R k = I - A X k
The iteration Equation (2) requires p matrix-matrix multiplications (from now on denoted by mmm) to achieve the p-th order of convergence. The adoption p = 2 yields to the Schulz matrix iteration, originated in [16],
X k + 1 = X k ( 2 I - A X k )
with the second rate of convergence. Further, choice p = 3 gives the cubically-convergent method of Chebyshev [17], defined as follows:
X k + 1 = X k ( 3 I - A X k ( 3 I - A X k ) )
For more details about the background of iterative methods for computing generalized inverses, please refer to [18].
The main motivation of the paper [19] was the observation that the inverse of the reaction matrix cannot always be obtained. For this purpose, the author used an approach based on row-reduced echelon forms of both the reaction matrix and its transpose. Since the Moore–Penrose inverse always exists, replacement of the ordinary inverse by the corresponding pseudoinverse resolves the drawback that the inverse of the reaction matrix does not always exist. Furthermore, two successive transformations into the corresponding row-reduced echelon forms are time-consuming and badly-conditioned numerical processes, again based on Gaussian elimination. Our intention is to avoid the above-mentioned drawbacks that appear in previously-used approaches.
Here, we decide to develop an application of the Schulz-type methods. The motivation is based on the following advantages arising from the use of these methods. Firstly, they are totally applicable on sparse matrices possessing sparse inverses. Secondly, the Schulz-type methods are useful for providing approximate inverse preconditions. Thirdly, such schemes are parallelizable, while Gaussian elimination with partial pivoting is not suitable for the parallelism.
It is worth mentioning that an application of iterative methods in finding exact solutions that involve integers or rational entries requires an additional transformation of the solution and utilization of tools for symbolic data processing. To this end, we used the programming package Mathematica.
The rest of this paper is organized as follows. A new formulation of a very high order method is presented in Section 2. The method is fast and economical at the same time, which is confirmed by the fact that it attains a very high rate of convergence by using a relatively small number of mmm. Acceleration of the convergence via scaling the initial iterates is discussed, and some novel approaches in this trend are given in the same section. An application of iterative methods in balancing chemical equations is considered in Section 3. A comparison of numerical results obtained by applying the introduced method is shown against the results defined by using several similar methods. Some numerical experiments concerning the application of the new iterations in balancing chemical equations are presented in Section 4. Finally, some concluding remarks are drawn in the last section.

2. An Efficient Method and Its Acceleration

A Schulz-type method of high order p = 31 with two improvements is derived and chosen as one of the options for balancing chemical equations. The first improvement is based on a proper factorization, which reduces the number of mmm required in each cycle. The second straightening is based on a proper accelerating of initial iterations.
Toward this goal, we consider Equation (2) in the case p = 31 as follows:
X k + 1 = X k i = 0 30 R k i , R k = I - A X k
In its original form, the hyper-power iteration Equation (5) is of the order 31 and requires 31 mmm. It is necessary to remark that a kind of effectiveness of a computational iterative (fixed point-type) method can be estimated by the real number (called the computational efficiency index) E I = p 1 θ , wherein θ and p stand for the whole computational cost and the rate of convergence per cycle, respectively. Here, the most important burden and cost per cycle is the number of matrix-matrix products.
Clearly, in Equation (5), this proportion between the order of convergence and the needed number of mmm is not suitable, since its efficiency index:
E I = 31 1 31 1.1171
is relatively small. This shows that Equation (5) is not a useful iterative method. To improve the applicability of Equation (5) and, so, to derive a fast matrix iteration with a reduced number of mmm, i.e., to obtain an efficient method, we keep going as in the following subsection.

2.1. An Efficient Method

We rewrite Equation (5) as:
X k + 1 = X k ( I + R k ( I + R k ) ( I - R k + R k 2 ) ( I + R k + R k 2 ) ( I - R k + R k 2 - R k 3 + R k 4 ) × ( I + R k + R k 2 + R k 3 + R k 4 ) ( I - R k + R k 3 - R k 4 + R k 5 - R k 7 + R k 8 ) × ( I + R k - R k 3 - R k 4 - R k 5 + R k 7 + R k 8 ) )
Subsequently, Equation (7) results in the following formulation of Equation (5):
X k + 1 = X k I + ( R k + R k 2 + R k 3 + R k 4 + R k 5 + R k 6 ) I + R k 6 + R k 12 + R k 18 + R k 24
Now, we could deduce our final fast matrix iteration by simplifying Equation (8) more:
X k + 1 = X k I + ( R k + R k 2 ) ( I + R k 2 + R k 4 ) I + ( R k 2 + R k 8 ) ( R k 4 + R k 16 )
where only nine mmm are required. Therefore, the efficiency index of the proposed fast iterative method becomes:
E I = 31 1 9 1.4645
The efficiency index 1.4645 of Equation (9) is higher than the efficiency index 1.4142 of Equation (3), higher than the efficiency index 1.4422 of Equation (4) and finally higher than the efficiency index 1.4592 of the 30th order method proposed recently by Sharifi et al. [20].
At this point, it would be useful to provide the following theorem regarding the convergence behavior of Equation (9).
Theorem 1. Let A C r m × n be a given matrix of rank r and G C s n × m be a given matrix of rank 0 < s r , which satisfy rank ( G A ) = rank ( G ) . Then, the sequence { X k } k = 0 k = generated by the iterative method Equation (9) converges to A R ( G ) , N ( G ) ( 2 ) with 31st-order if the initial approximation X 0 = α G satisfies:
F 0 = A A T , S ( 2 ) - A X 0 < 1
Proof. The proof of this theorem would be similar to the ones in [21]. Hence, we skip it over and just include the following error bound:
E k + 1 A R ( G ) , N ( G ) ( 2 ) A 31 E k 31
wherein E k = A R ( G ) , N ( G ) ( 2 ) - X k . ☐
The derived iterative method is very fast and effective, in contrast to the existing iterative Schulz-type methods of the same type. However, as was pointed out by Soleimani et al. [22], such iterative methods are slow at the beginning of the iterative process, and the real convergence rate cannot be observed. An idea to remedy this disadvantage is to apply a multiple root-finding algorithm on the matrix equation F ( X ) = X - 1 - A = 0 and to try to accelerate the hyper-power method in its initial iterations. Such a discussion about a scaled version of the hyper-power method is the main aim of the next subsection.

2.2. Accelerating the Initial Phase

Another useful motivation of the present paper is processed here. The iterative scheme:
X k + 1 = X k ( β + 1 ) I - β A X k , 1 β 2
was applied in [22] to achieve the convergence phase in the main (modified Householder) method much more rapidly and to accelerate the beginning of the process. In the second iteration phase, it is sufficient to apply the introduced fast and efficient modified Householder method, which then reaches its own full speed of convergence [22].
In the same vein, the iterative expression Equation (13) can be rewritten in the following equivalent, but more practical form:
X k + 1 = X k ( 1 - β ) I + β i = 0 1 R k i , R k = I - A X k , 1 β 2
One can now observe that Equation (14) is the particular case ( p = 2 ) of the following new scheme:
X k + 1 = X k I + β ( p - 1 ) I + i = 1 p - 1 ( - 1 ) i p i + 1 ( A X k ) i = X k ( 1 - β ) I + β i = 0 p - 1 ( - 1 ) i p i + 1 ( A X k ) i = X k ( 1 - β ) I + β i = 0 p - 1 R k i , R k = I - A X k , 1 β 2
Therefore, Equation (15) can be considered as an important acceleration of the Schulz-type method Equation (2) in the initial phase, before the convergence rate is practically achievable. We note that such accelerations are useful for large matrices, whereas the iterative methods require too much iterations to converge. Particularly, by following Equation (15), one can immediately notice that the accelerating in the initial phase of iteration Equation (9) is of the form:
X k + 1 = X k ( 1 - β ) I + β I + ( R k + R k 2 ) ( I + R k 2 + R k 4 ) I + ( R k 2 + R k 8 ) ( R k 4 + R k 16 )
Remark 1. The particular choice β = 1 in Equation (15) reduces these iterations to the usual hyper-power family of the iterative methods possessing the order p 2 :
X k + 1 = X k p I - p 2 A X k + + ( - 1 ) p - 1 p p ( A X k ) p - 1 = X k i = 0 p - 1 R k i , R k = I - A X k
The choice p = 2 in Equation (15) leads to the scaled Schulz matrix iteration considered recently in [23], and the choice p = 2 , β = 1 produces the original Schulz matrix iteration, originated in [12].
Finally, a hybrid algorithm may be written now by incorporating Equations (9) and (16) as follows.
Algorithm 1 The new hybrid method for computing generalized inverses.
1:
The input is given X 0 C n × m .
2:
Use Equation (16) until X l + 1 - X l < δ (for an inner loop counter l or ϵ < δ ).
3:
set X 0 = X l
4:
for k = 0 , 1 , until convergence ( X k + 1 - X k < ϵ ), use Equation (9) to converge with high order.
5:
end for
Instead of the hybrid Algorithm 1, based on the usage of Equation (16) in the initial phase and Equation (9) in the final stage, our third result here is to define a unique iterative method, which can be derived by applying variable acceleration parameter β = 1 + β k , 0 β k 1 . This approach yields scaled hyper-power iterations of the general form:
X 0 = α G
X k + 1 = X k - β k I + ( 1 + β k ) i = 0 p - 1 R k i , 0 β k 1 , k 0 = X k I + ( 1 + β k ) i = 1 p - 1 R k i
where the initial approximation X 0 = α G is chosen according to Equation (11).
Furthermore, it is possible to propose various modifications of β k in a manner that guarantees 1 + β k 1 . For example:
β 0 = 1 , β k + 1 = β k 2 , k 0

3. Balancing Chemical Equations Using Iterations

In accordance with the intention that was motivated in the first section, in this section, we investigate the applicability of some iterations from the hyper-power family in balancing chemical equations. It is shown that the iterative methods can be applied successfully without any limitations.
It is assumed that a chemical system is modeled by a single reaction of the general form (see, for example, [2]):
j = 1 r x j i = 1 m Ψ a i j i j = r + 1 r + s x j i = 1 m Ω b i j i
In Equation (20), x j , j = 1 , , r (resp. x j , j = r + 1 , , r + s ) are unknown rational coefficients of the reactants (resp. the products), Ψ i , Ω i , i = 1 , , m are chemical elements in reactants and products, respectively, and a i j , i = 1 , , m , j = 1 , , r and b i j , i = 1 , , m , j = r + 1 , , r + s are the numbers of atoms Ψ i and Ω i , respectively, in the j-th molecule.

3.1. Balancing Chemical Equations Using Iterative Methods

The coefficients x i are integers, rational or real numbers, which should be determined on the basis of three basic principles: (1) the law of conservation of mass; (2) the law of conservation of atoms; (3) the time-independence of Equation (20), an assumption usually valid for stable/non-sensitive reactions. Let there be m distinct atoms involved in the chemical reaction Equation (20) and n = r + s distinct reactants and products. It is necessary to form an m × n matrix A, called the reaction matrix, whose columns represent the reactants and products and the rows represent the distinct atoms in the chemical reaction. More precisely, the ( i , j ) -th element of A, denoted by a i , j , represents the number of atoms of type i in each compound/element (reactant or product). An arbitrary element a i , j is positive or negative according to whether it corresponds to a reactant or a product. Hence, the balancing chemical equation problem can be formulated as the homogeneous matrix equation:
A x = 0
with respect to the unknown vector x R n , where A R m × n denotes the reaction matrix and 0 denotes the null column vector of the order m. In this way, an arbitrary chemical reaction can be formulated as a matrix equation.
We would like to use the symbolic and numerical possibilities of the Mathematica computer algebra system in conjunction with the above-defined iterative method(s) for computing generalized inverses to automatize the chemical reactions balancing process.
The general solution of the balancing problem in the matrix form Equation (21) is given by:
s = I - A A c
where c is the arbitrarily-selected n-dimensional vector. Let us assume that the approximation of A generated by an arbitrary iterative method is given by X : = X k + 1 .
If the iterative method for computing X is performed in the floating point arithmetic, it is necessary to perform a transition from the solution whose coordinates are real numbers into an exact (integer and/or rational) solution. Thus, the iterative approach in balancing chemical equations assumes three general algorithmic steps, as is described in Algorithm 2.
Algorithm 2 General algorithm for balancing chemical equations by an iterative solver.
1:
Apply (for example) Algorithm 1 and compute the approximation X : = X k + 1 of A .
2:
Compute the vector s using Equation (22).
3:
Transform real numbers included in s into an exact solution.
A clear observation about Algorithms 2 is the following:
-
Steps 1 and 2 require usage of real arithmetic (with very high precision);
-
Step 3 requires usage of symbolic processing and exact arithmetic capabilities to deal with rational numbers.
As a result, in order to apply iterative methods to the problem of balancing chemical equations, it is necessary to use a software that meets two diametrically-opposite criteria: the ability to carry out numerical calculations (with very high precision) and the ability to apply the exact arithmetic and symbolic calculations. The programming language Mathematica possesses both of these properties. More details about this programming language can be found in [24].
The following (sample) Mathematica code can be used to determine the exact solution using real values contained in the vector s (defined in Equation (22)).
Id = IdentityMatrix[n]; s = (Id - X.A).ConstantArray[1, n];
s = Rationalize[s, 10^(-300)]; c = s*LCM @@ Denominator /@ s;
(* Multiply s by the Least Common Multiple of denominators in s *)
s = c/Min @@ Numerator /@ c
(* Divide c by the Minimum of numerators in c *)
The standard Mathematica function Rationalize[x,dx] yields the rational number with the smallest denominator within a given tolerance d x of x. Sometimes, to avoid the influence of round-off errors and possible errors caused by the usage of the function Rationalize, it is necessary to perform iterative steps with a very high precision.
An improvement of the vector s can be attained as follows. It is possible to propose an amplification of the vector s = I - A A c , where c is an n-dimensional column vector. The improvement can be obtained using s = I - A A I - A A c . In the practical implementation, it is necessary to replace the expression s = (Id - X.A).ConstantArray[1, n] by s = (Id - X.A).((Id - X.A).ConstantArray[1, n]).
This replacement can be explained by the fact that A ( I - A A ) s is closer to the zero vector zero than A s .

3.2. Balancing Chemical Equations in Symbolic Form

As was explained in [6], balancing chemical reactions that possess atoms with fractional oxidation numbers and non-unique coefficients is an extremely hard problem in chemistry. The case when the system Equation (21) is not uniquely determined can be resolved using the Mathematica function Reduce. If a chemical reaction includes n reaction molecules and m reaction elements, then the reaction matrix A is of the order m × n . In the case n > m , the reaction has n m general solutions. All of them can be found applying the following expression:
Reduce[A.{{x1}, {x2}, ..., {xn}} == {0, 0,...,0},{xk1, xk2,...,xkm}]
where the zero vector in the right-hand side is of the length m and { x k 1 , x k 2 , . . . , x k m } is the list of dependent variables.

4. Experimental Results

Let us denote the iterations Equation (3) by NM (Newton’s Method), the iterations Equation (4) by CM (Chebyshev’s Method) and Equation (9) by PM (Proposed Method). Here, we apply different methods in the Mathematica 10 environment to compute some generalized inverses and to show the superiority of our scheme(s). We also denote the hybrid algorithm given in [22] by HAL (Householder Algorithm) and our Algorithm 1 is denoted by APM (Accelerated Proposed Method). Throughout the paper the computer characteristics are Microsoft Windows XP Intel(R), Pentium(R) 4 CPU, 3.20 GHz with 4 GB of RAM, unless stated otherwise (as in the end of Example 1).

4.1. Numerical Experiments on Randomly-Generated Matrices

Example 1. [22] In this numerical experiment, we compute the Moore–Penrose inverse of a dense, randomly-generated m × n = 800 × 810 matrix, which is defined as follows:
m = 800; n = 810; SeedRandom[12345]; A = RandomReal[{-10, 10}, {m, n}];
The numerical results corresponding to the number of iterations and the CPU time are illustrated in Table 1, wherein IT denotes the number of iterative steps. It shows that APM with m = 2 and five inner loops, while p = 2 , is superior to the other existing methods. We employed HAL with m = 2 and eight inner loops. Note that the initial matrix is chosen as X 0 = 2 A F 2 A * , while the stopping criterion is defined by | | X k + 1 - X k | | | | X k + 1 | | < 10 - 300 . Here, · F stands for the Frobenius norm (Hilbert–Schmidt norm), which is for an m × n matrix A defined as:
A F = i = 1 m j = 1 n | a i j | 2 = trace ( A * A ) = i = 1 min { m , n } σ i 2
where A * denotes the conjugate transpose of A, σ i are the singular values of A and the trace function is used.
Table 1. The results corresponding to the Moore–Penrose inverse of a randomly-generated matrix. IT, number of iterative steps.
Table 1. The results corresponding to the Moore–Penrose inverse of a randomly-generated matrix. IT, number of iterative steps.
MethodsNMCMHALAPM
IT2818149
Time15.765625015.000000014.015625013.4687500
It is important to emphasize that the computational time is directly initiated by computer and software specifications. To clarify this, we execute our implemented algorithms/methods from Example 1 on a more recently-featured computer, whose characteristics are Windows 7 Ultimate, Intel(R) Core(TM) i5-4400 CPU 3.10 GHz with 8 GB of RAM and 64 Operating System. The results corresponding to this hardware/software configuration are given in Table 2 in terms of the elapsed CPU time. Furthermore, we re-ran Example 1 for an m × n = 1010 × 1000 matrix, which was randomly generated by the code:
m = 1010; n = 1000; SeedRandom[12345]; A = RandomReal[{-10, 10}, {m, n}];
to show that our schemes can also simply be applied on matrices satisfying m n . The results generated by these values are arranged in Table 3, where m = 3 inner loops are considered for APM.
Table 2. The results corresponding to the Moore–Penrose inverse of randomly-generated matrices with a better equipped computer.
Table 2. The results corresponding to the Moore–Penrose inverse of randomly-generated matrices with a better equipped computer.
MethodsNMCMHALAPM
Time1.6200931.5700901.3630781.279073
Table 3. The results corresponding to the Moore–Penrose inverse of the randomly-generated matrix A 1010 × 1000 .
Table 3. The results corresponding to the Moore–Penrose inverse of the randomly-generated matrix A 1010 × 1000 .
MethodsNMCMHALAPM
IT2818148
Time2.7144052.6052052.3712042.293204
The numerical example illustrates the theoretical results presented in Section 2. It can be observed from the results included in Table 1, Table 2 and Table 3 that, firstly, like the existing methods, the presented method shows a stable behavior along with a fast convergence. Additionally, according to results contained in Table 1, Table 2 and Table 3, it is clear that the number of iterations required in the APM method during numerical approximations of the Moore–Penrose inverse is smaller than the number of approximations generated by the classical methods. This observation is in accordance with the fact that the efficiency index is clearly the largest in the case of the APM method. In general, APM is superior among all of the existing famous hyper-power iterative schemes. This superiority is in accordance with the theory of efficiency analysis discussed before.
In fact, it can be observed that increasing the efficiency index by a proper factorization of the hyper-power method is a kind of nice strategy that gives promising results in terms of both the number of iterations and the computational time on different computers.
Here, it is also worth noting that Schulz-type solvers are the best choice for sparse matrices possessing sparse inverses. Since, in such cases, the usual SVD technique in the software, such as Mathematica or MATLAB, ruins the sparsity pattern and requires much more time, hence such iterative methods and the SVD-type (direct) schemes are both competitive, but have their own fields of applications.

4.2. Numerical Experiments in Balancing Chemical Equations

In this subsection, we present some clear examples indicating the applicability of our approach in the balancing chemical equations. We also apply the following initial matrix X 0 = 1 σ 1 2 A * .
Example 2. Consider a specific skeletal chemical equation from [10]:
x 1 KNO 3 + x 2 C x 3 K 2 CO 3 + x 4 CO + x 5 N 2
where the left-hand side of the arrow consists of compounds/elements called reactants, while the right-hand side comprises compounds/elements called the products. Hence, Equation (24) is formulated as the homogeneous equation A x = 0 , wherein 0 denotes the null column vector and:
A = 1 0 - 2 0 0 1 0 0 0 - 2 3 0 - 3 - 1 0 0 1 - 1 - 1 0
The results generated after the comparison of numerical results derived in Example 2 are given in Table 4, using 300 precision digits, being large enough to minimize round-off errors, as well as to clearly observe the computed asymptotic error constants in the convergence phase. Although in all practical problems, the machine precision (double precision) is enough (just like Example (1)), here, our focus is to find very accurate coefficients for the chemical equation, since a very accurate tolerance, such as X k - A 10 - 150 , must be incorporated.
The final exact coefficients are defined as ( x 1 , x 2 , x 3 , x 4 , x 5 ) T = ( 2 , 4 , 1 , 3 , 1 ) T . Thus,
2 KNO 3 + 4 C K 2 CO 3 + 3 CO + N 2
Experimental results clearly show that PM is the most efficient method for this purpose. In addition, we remark that since we use iterative methods in floating point arithmetic to obtain the coefficient, we must use the command Round [ ] in the last lines of our written Mathematica code, so as to attain the coefficients in exact arithmetic.
Table 4. The results corresponding to balancing Equation (24).
Table 4. The results corresponding to balancing Equation (24).
MethodsNMCMPM
IT1493
X k + 1 - A 2 . 59961 × 10 - 161 1 . 1697 × 10 - 193 9 . 09312 × 10 - 293
In order to support the improvement described in Section 3, it is worth mentioning that (using Mathematica notations):
A . ( Id - X . A ) . ConstantArray [ 1 , n ] = { - 3 . 9 * 10 - 293 , - 5 . 0 * 10 - 294 , 2 . 0 * 10 - 293 , - 0 . 0 * 10 - 295 }
and A . ( Id - X . A ) ( ( Id - X . A ) . ConstantArray [ 1 , n ] ) = { 0 . * 10 - 295 , 0 . * 10 - 295 , 0 . * 10 - 295 , 0 . * 10 - 295 } .
Example 3. Now, we solve the following skeletal chemical equation from [10]:
x 1 H 3 PO 4 + x 2 MgSiO 3 + x 3 CF 2 Cl 2 + x 4 NaAlF 4 + x 5 KI + x 6 PbCrO 4 + x 7 FeSO 4 + x 8 BrCl + x 9 Ca ( CN ) 2 + x 10 SO 2 + x 11 H 2 , x 12 PI 3 + x 13 MgCO 3 + x 14 Na 2 SiO 3 + x 15 PbBr 2 + x 16 CrCl 3 + x 17 KAl ( OH ) 4 + x 18 Fe ( SCN ) 3 + x 19 CaF 2 + x 20 H 2 O
Equation (27) is formulated as a homogeneous system of linear equations with the following coefficient matrix:
A 19 × 20 = 3 0 0 0 0 0 0 0 0 0 2 0 0 0 0 - 4 0 0 0 - 2 1 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 4 3 0 0 0 4 4 0 0 2 0 0 - 3 - 3 0 0 - 4 0 0 - 1 0 1 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 - 1 0 0 0 0 - 3 0 0 0 0 2 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 2 0 0 0 2 0 0 0 0 1 0 0 0 0 0 0 0 - 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 - 2 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 - 3 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 - 3 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 - 2 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 - 3 0 0
The results of this experiment generated by using the ordinary double precision arithmetic and the stopping termination X k - A 10 - 10 are illustrated in Figure 1. Note that the final coefficients obtained in exact arithmetic are equal to ( x 1 , , x 20 ) T = ( 2 , 3 , 3 , 6 , 6 , 6 , 10 , 12 , 15 , 20 , 88 , 2 , 3 , 3 , 6 , 6 , 6 , 10 , 15 , 79 ) T . The results once again show that PM is the best iterative process.
Figure 1. Convergence history for different methods used in Example 3.
Figure 1. Convergence history for different methods used in Example 3.
Algorithms 08 00982 g001
Example 4. Consider the following example from [19]:
x 1 Mn O 4 - + x 2 H + + x 3 Fe 2 + x 4 Mn 2 + + x 5 H 2 O + x 6 Fe 3 +
The reaction matrix A can be derived by taking into account both the law of conservation of atoms and the law of electrical neutrality, and it is equal to (see [19]):
A = 1 0 0 - 1 0 0 4 0 0 0 - 1 0 0 1 0 0 - 2 0 0 0 1 0 0 - 1 - 1 1 2 - 2 0 - 3
As in the previous examples, let us denote by X the result derived by the iterative method Equation (9). The rational approximation of s = A . ( Id - XA ) ( ( Id - X . A ) . ConstantArray [ 1 , n ] ) is equal to 2 11 , 16 11 , 10 11 , 2 11 , 8 11 , 10 11 , and the exact solution coincides with the result given in [19]: { 1 , 8 , 5 , 1 , 4 , 5 } .
Example 5. In this example, it is shown that our iterative method is capable of producing the solution in the case when the real coefficients are used and the reaction is not unique within relative proportions. Let us consider Reaction 1 with one arbitrary element from [6]:
x 1 X + x 2 O 2 x 3 X 0 . 987 O + x 4 X 2 O 3 + x 5 X 3 O 4
The reaction matrix of the homogeneous system Equation (21) is given by A = { { 1 , 0 , - 0.987 , - 2 , - 3 } , { 0 , 2 , - 1 , - 3 , - 4 } } . The iterative method Equation (9) converges quickly, since the list of consecutive errors X k - A is given by { 0.163381 , 2.220446049250313 × 10 - 16 , 2.7755575615628914 × 10 - 16 } . The approximate solution s = A . ( Id - X . A ) ( ( Id - X . A ) . ConstantArray [ 1 , n ] ) is equal to:
s = { 1.40225926604 , 0.890820221049 , 0.657559993896 , 0.35925113635 , 0.0115817597876 }
and its fractional approximation is:
c = 44517366795613798 367684821979411 , 103259812167103006 1342504707428259 , 67799434016501962 1194167476431641 , 56436772606792756 1819443496152855 , 1 .
Example 6. All possible solutions of the problem considered in Example 5 with respect to x 1 and x 2 can be generated using the Mathematica function Reduce:
Reduce[A.{{x1}, {x2}, {x3}, {x4}, {x5}} == {0, 0}, {x1, x2}
All solutions in the symbolic form are given as follows (using Mathematica notations):
x 1 = 0 . 987 x 3 + 2 . 0 x 4 + 3 . 0 x 5 + 0 . 0 x 2 = 0 . 5 x 3 + 1 . 5 x 4 + 2 . 0 x 5 + 0
wherein x 3 , x 4 , x 5 are arbitrary real quantities. All possible solutions with respect to x 1 and x 3 can be generated using:
Reduce[A.{{x1}, {x2}, {x3}, {x4}, {x5}} == {0, 0}, {x1, x3}]
All possible 5 2 = 10 cases can be solved in the same way.
Example 7. As the last experiment and to show that the proposed iteration could preserve the sparsity pattern of the inverses if the inverses are sparse in nature, the following 4000 × 4000 matrix A = ExampleData [ Matrix , Bai / tols 4000 ] has been taken from Matrix Market database with the stopping termination X k + 1 - X k X k + 1 10 - 10 . The new scheme Equation (9) converges in twelve iterations. The matrix plots of the approximate inverse for this case are brought forward in Figure 2.
Figure 2. The sparsity pattern for the approximate inverses: X 1 (top left); X 2 (top right); X 11 (bottom left); and X 12 (bottom right).
Figure 2. The sparsity pattern for the approximate inverses: X 1 (top left); X 2 (top right); X 11 (bottom left); and X 12 (bottom right).
Algorithms 08 00982 g002aAlgorithms 08 00982 g002b

5. Conclusions

In this paper, we have developed a matrix iterative method for computing generalized inverses. The derived scheme has been constructed based on the hyper-power iteration. We have shown that this scheme achieves the order of convergence equal to 31 by using only nine mmm, which hits a very high computational efficiency index.
We also provided further schemes by extending some of the known results so as to accelerate the initial phase of convergence. Furthermore, we applied our iterative schemes to balancing chemical equations as an important application-oriented area. The derived numerical results clearly upheld our theoretical findings to a great extent.
Further discussions and generalizations can be considered for future works to provide much more robust, reliable and fast hybrid algorithms for computing generalized inverses with potential applications, for example as in [25].

Acknowledgments

The research of the first author (Farahnaz Soleimani) is financially supported by Roudehen Branch, Islamic Azad University, Roudehen, Iran. Furthermore, the second author (Predrag S. Stanimirović) gratefully acknowledges support from the Research Project 174013 of the Serbian Ministry of Science. Interested readers may contact the corresponding author to obtain the Mathematica programs used in the paper.

Author Contributions

The contributions of all of the authors have been similar. All of them have worked together to develop the present manuscript.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Phillips, J.C. Algebraic constructs for the graphical and computational solution to balancing chemical equations. Comput. Chem. 1998, 22, 295–308. [Google Scholar] [CrossRef]
  2. Risteski, I.B. A new generalized matrix inverse method for balancing chemical equations and their stability. Bol. Soc. Qum. Mex. 2008, 2, 104–115. [Google Scholar]
  3. Risteski, I.B. A new pseudoinverse matrix method for balancing chemical equations and their stability. J. Korean Chem. Soc. 2008, 52, 223–238. [Google Scholar]
  4. Krishnamurthy, E.V. Generalized matrix inverse approach for automatic balancing of chemical equations. Int. J. Math. Educ. Sci. Technol. 1978, 9, 323–328. [Google Scholar] [CrossRef]
  5. Mahadeva, R.T.; Subramanian, K.; Krishnamurthy, E.V. Residue arithmetic algorithms for exact computation of g-inverses of matrices. SIAM J. Numer. Anal. 1976, 13, 155–171. [Google Scholar]
  6. Risteski, I.B. A new generalized algebra for the balancing of chemical reactions. Mater. Technol. 2014, 48, 215–219. [Google Scholar]
  7. Smith, W.R.; Missen, R.W. Using Mathematica and Maple to obtain chemical equations. J. Chem. Educ. 1997, 74, 1369–1371. [Google Scholar] [CrossRef]
  8. Xia, Y. A novel iterative method for computing generalized inverse. Neural Comput. 2014, 26, 449–465. [Google Scholar] [CrossRef] [PubMed]
  9. Higham, N.J. Gaussian elimination. WIREs Comp. Stat. 2011, 332–334, 230–238. [Google Scholar] [CrossRef]
  10. Sen, S.K.; Agarwal, H.; Sen, S. Chemical equation balancing: An integer programming approach. Math. Comput. Model. 2006, 44, 678–691. [Google Scholar] [CrossRef]
  11. Balasubramanian, K. Linear variational Diophantine techniques in mass balance of chemical reactions. J. Math. Chem. 2001, 30, 219–225. [Google Scholar] [CrossRef]
  12. Ben-Israel, A. An iterative method for computing the generalized inverse of an arbitrary matrix. Math. Comput. 1965, 19, 452–455. [Google Scholar] [CrossRef]
  13. Climent, J.-J.; Thome, N.; Wei, Y. A geometrical approach on generalized inverses by Neumann-type series. Linear Algebra Appl. 2001, 332–334, 533–540. [Google Scholar] [CrossRef]
  14. Liu, X.; Jin, H.; Yu, Y. Higher-order convergent iterative method for computing the generalized inverse and its application to Toeplitz matrices. Linear Algebra Appl. 2013, 439, 1635–1650. [Google Scholar] [CrossRef]
  15. Soleymani, F.; Stanimirovic, P.S.; Haghani, F.K. On hyper-power family of iterations for computing outer inverses possessing high efficiencies. Linear Algebra Appl. 2015, 484, 477–495. [Google Scholar] [CrossRef]
  16. Schulz, G. Iterative Berechnung der Reziproken matrix. Z. Angew. Math. Mech. 1933, 13, 57–59. [Google Scholar] [CrossRef]
  17. Soleymani, F.; Salmani, H.; Rasouli, M. Finding the Moore–Penrose inverse by a new matrix iteration. J. Appl. Math. Comput. 2015, 47, 33–48. [Google Scholar] [CrossRef]
  18. Soleymani, F. An efficient and stable Newton-type iterative method for computing generalized inverse A T , S ( 2 ) . Numer. Algorithms 2015, 69, 569–578. [Google Scholar] [CrossRef]
  19. Ramasami, P. A concise description of an old problem: Application of matrices to obtain the balancing coefficients of chemical equations. J. Math. Chem. 2003, 34, 123–129. [Google Scholar] [CrossRef]
  20. Sharifi, M.; Arab, M.; Khaksar Haghani, F. Finding generalized inverses by a fast and efficient numerical method. J. Comput. Appl. Math. 2015, 279, 187–191. [Google Scholar] [CrossRef]
  21. Stanimirović, P.S.; Soleymani, F. A class of numerical algorithms for computing outer inverses. J. Comput. Appl. Math. 2014, 263, 236–245. [Google Scholar] [CrossRef]
  22. Soleimani, F.; Soleymani, F.; Cordero, A.; Torregrosa, J.R. On the extension of Householder’s method for weighted Moore–Penrose inverse. Appl. Math. Comput. 2014, 231, 407–413. [Google Scholar] [CrossRef]
  23. Petković, M.D.; Stanimirović, P.S. Two improvements of the iterative method for computing Moore–Penrose inverse based on Penrose equations. J. Comput. Appl. Math. 2014, 267, 61–71. [Google Scholar] [CrossRef]
  24. Wolfram, S. The Mathematica Book, 5th ed.; Wolfram Media: Champaign, IL, USA, 2003. [Google Scholar]
  25. Soleymani, F.; Sharifi, M.; Karimi Vanani, S.; Khaksar Haghani, F. An inversion-free method for finding positive definite solution of a rational matrix equation. Sci. World J. 2014, 2014, 560931. [Google Scholar] [CrossRef] [PubMed]
Algorithms EISSN 1999-4893 Published by MDPI AG, Basel, Switzerland RSS E-Mail Table of Contents Alert
Back to Top