Abstract

In this paper, we present a new reduction algorithm for solving system of linear differential-algebraic equations with power series coefficients. In the proposed algorithm, we transform the given system of differential-algebraic equations into another simple equivalent system using the elementary algebraic techniques. This algorithm would help to implement the manual calculations in commercial packages such as Mathematica, Maple, MATLAB, Singular, and Scilab. Maple implementation of the proposed algorithm is discussed, and sample computations are presented to illustrate the proposed algorithm.

1. Introduction

In many applications of science and engineering, for example, simulation of electric circuits [14], mechanical systems [5, 6], and chemical reactions subject to invariants [713], the systems of differential-algebraic equations (DAEs) arise naturally, and these systems of DAEs consist of algebraic equations and differential operations. Many engineers and scientists have studied the system of DAEs from a theoretical as well as a numerical point of view and created many new approaches to solve the system of linear differential-algebraic equations; see, for example, [1425].

In this paper, we are concerned with a linear system of differential-algebraic equations of the following form:where is a complex variable, and are matrices with analytic functions entries, is an -dimensional column matrix with analytic functions entries, is an -dimensional unknown column matrix which is going to be determined, and is a differential operator. In this paper, we focus on creating a new reduction algorithm using elementary algebraic techniques as well as the implementation of the proposed algorithm in Maple. Using this algorithm, we can transform a given system of DAEs into another equivalent system, where we can solve the reduced system easily.

The rest of the paper is organized as follows: in Section 2, we present a new reduction algorithm to solve the given system of DAEs with certain examples to illustrate the proposed reduction algorithm and Section 3 discusses the Maple implementation of the proposed algorithm with sample computations.

2. A New Reduction Algorithm

Let be a subfield of the field of complex numbers . Note that (). We denote the ring of formal power series by in the variable and denotes its quotient field, that is, . The ring of differential operators is denoted by with coefficients in , that is, the set of finite sums with is equipped with the addition and the multiplication defined bywhere . Recall the system of DAEs in equation (1):where , , and . The corresponding matrix differential operator of system (3) is . We recall the basic concepts of the matrix differential operators; see [23, 2629] for further details.

Definition 1. A matrix differential operator is said to be unimodular matrix if there exists such that .

Definition 2. Two matrix differential operators are said to be equivalent if there exist two unimodular matrices and such that .
The following section presents a new reduction algorithm using elementary algebraic techniques.

2.1. Reduction Algorithm

The following lemma is one of the essential steps to create a new reduction algorithm. It shows that any matrix of formal power series centered at origin can be transformed into a block matrix.

Lemma 1 (see [23, 26, 29]). Let . Then there exist two unimodular matrices such that

where denote the -th row and -th column block of matrix , is a block matrix, and is the rank of matrix .

Suppose that is a given matrix differential operator. Using Lemma 1, we can construct two unimodular matrix differential operators and , by finding the basis of left null space and right null space of the matrix differential operator , such thatwhere and . Now using Lemma 1 to matrix of (5), we can get an unimodular matrix such thatwhere and is invertible matrix, and . Again, using Lemma 1 to matrix of (6), we can construct an unimodular matrix such thatwhere and . If we denote and , then we have two unimodular matrix differential operators and such that the given system is in reduced form as follows:where has the form and is invertible matrix differential operator; has the form ; and has the form . Note that the ranks of and may not be the same, but the ranks of and are the same only when the coefficient matrices and have the same rank. We generalize the above reduction algorithm in the following theorem.

Theorem 1. Let be a matrix differential operator. Then we can construct two unimodular matrices and such that the given system is in reduced form:where has the form and is invertible matrix differential operator; has the form ; and has the form .

Proof. Using Lemma 1 to , we can construct two unimodular matrices and . If we use the substitution in (3) and left multiplying the resultant equation with , we have the following reduced form:where , , , and .
Indeed, (i) if rank () rank () and rank () rank (), then the reduced system of DAEs (10) has the following form:where . Hence, the system of DAEs in (3) is decomposed into two systems as follows:with some necessary conditions on the right-hand side expressed by .(ii)If rank () rank () rank (), then the reduced DAS (10) has the following form:where . Hence, the system of DAEs in (3) is decomposed as with some necessary conditions on the right-hand side expressed by .
In the following section, we present certain examples to illustrate the proposed method presented in Theorem 1.

2.2. Examples

Example 1. Consider a matrix differential operator of DAS.Using Lemma 1 to , one can construct two unimodular matrices and (obtained using a basis of left null space and right null space of ) as follows:Now the unimodular matrices and areThus, multiplying operator on the left and right by and yields the operatorwhereNow, using Lemma 1 to matrix , we can construct an unimodular matrix , using a basis of left null space of , as follows:We havewhereAgain, using Lemma 1 to matrix of the matrix differential operator , we can construct an unimodular matrix using a basis of right null space of as follows:We havewhereIf we denote and , then we have two unimodular matrix differential operators:We have that the given system is in reduced form as follows:where has the form andis invertible matrix differential operator.

Example 2. Consider a matrix differential operator as given below:Applying the proposed algorithm in Theorem 1 to matrix differential operator (28) similar to example 1, one can construct two unimodular matrix differential operators and assuch that the given system is in reduced form as follows:where has the form andis invertible matrix differential operator.

Example 3. Consider the following system of differential-algebraic equations to verify that the reduced system and the given system of DAEs have the same solution:The solution of the given system (32) is and . In particular, if we take , then the solution becomes and .
The operator notation of the given system (14) is given bywhere . Now, apply the proposed algorithm to matrix differential operator to get a reduced operator with two unimodular matrix differential operators and . We getSystem (33) is reduced to , where and . On simplification, we can get and .
Therefore, we haveNow the reduced system of DAEs isSolution of the reduced system (36), for , is and .
One can observe that the solution of the given system of DAEs (32) and the reduced system of DAEs (36) have the same solution. We can also observe that solving the reduced system (36) (contains two equations only) is simple compared to solving the given system (32) (contains three equations).

3. Maple Implementation

In this section, we discuss the Maple implementation of the algorithm by creating different data types. Using the Maple package, one can obtain the two unimodular matrix differential operators and the reduced matrix differential operator of the given system. In Maple implementation, is complex variable and is the differential operator.Input: and , the coefficient matrices of a given matrix differential operator .Output:, , and , the reduced matrix differential operator of a given matrix differential operator and two unimodular matrix differential operators and .

3.1. Pseudocode

(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20)

3.2. Maple Code

Using the procedure ArrangeZeroLines, we can replace the zero rows at the bottom and zero columns at right side of the matrix.ArrangeZeroLines := proc (M::Matrix)local m,n,ZR,L1,DR,m1,ZM,A1,ZC,L2,DC,m2,ZM2,A2;uses LinearAlgebra;m,n := op(1, M);ZR := LinearAlgebra: −ZeroVector[row](n);L1 := [seq(‘if‘(LinearAlgebra: −Equal(M[i],ZR),i,NULL), i = 1..m)];DR := LinearAlgebra: −DeleteRow(M, L1);m1 := op([1, 1], DR);ZM := LinearAlgebra: −ZeroMatrix(m − m1, n);A1:= convert(linalg[blockmatrix](2, 1, [DR, ZM]), Matrix);ZC:= LinearAlgebra: −ZeroVector(m);L2 := [seq(‘if‘(LinearAlgebra: −Equal(A1[()..(),i],ZC),i,NULL), i = 1..n)];DC := LinearAlgebra: −DeleteColumn(A1, L2);m2 := op([1, 2], DC);ZM2 := LinearAlgebra: −ZeroMatrix(m, n − m2);A2 := linalg[blockmatrix](1, 2, [DC, ZM2]);return convert(A2, Matrix);end proc:

The following procedure is DAEs_Reduction: the reduced matrix differential operator of a given matrix differential operator with two unimodular matrix differential operators. In this procedure, is differential operator and is complex variable.DAEs_Reduction := proc (A::Matrix, B::Matrix)local L,m,n,r,k,Id,transpose_L,NS_Ls,Id_partA, NS_partA,S1,NS_Lt,Id_part3,NS_part3,T1,L1na,L1,A1,B1,transpose_A1,NS_A1,Id_partA1,NS_partA1,S2,L2na,L2,A2,B2,NS_B2,Id_partB2,NS_partB2,T2,L3na,L3,A3,B3,S,T;uses MatrixPolynomialAlgebra;L := Adelta + B;m := LinearAlgebra: −RowDimension(L);n := LinearAlgebra: −ColumnDimension(L);r := MTM: −rank(A);k := MTM: −rank(B);Id := LinearAlgebra: −IdentityMatrix(n);transpose_L := LinearAlgebra: −Transpose(L);NS_Ls := LinearAlgebra: −NullSpace(transpose_L);Id_partA := LinearAlgebra: −Transpose(Matrix(‘‘[LinearAlgebra: −Transpose](‘‘[convert]([seq(Id[i],i = 1..m-nops(NS_Ls))],Matrix))));NS_partA := LinearAlgebra: −Transpose (Matrix(‘‘[convert]([seq(NS_Ls[i], i = 1 .. Nops(NS_Ls))], Matrix)));S1 := convert(linalg: −blockmatrix(2,1,[Id_partA, NS_partA]),Matrix);NS_Lt := ‘‘[simplify](LinearAlgebra: −NullSpace(L));Id_part3 := Matrix(‘‘[LinearAlgebra: −Transpose](‘‘[convert]([seq(Id[i], i = 1 .. n-nops(NS_Lt))], Matrix)));NS_part3 := Matrix(‘‘[convert]([seq(NS_Lt[i], i = 1 .. Nops(NS_Lt))], Matrix));T1 := convert(linalg: −blockmatrix(1,2,[Id_part3,NS_part3]),Matrix);L1na := ‘‘[simplify](S1.L.T1);L1 := ArrangeZeroLines(L1na);A1:= seq(MatrixPolynomialAlgebra: −Coeff(L1,delta,i),i = 0..1)[2];B1 := seq(MatrixPolynomialAlgebra: −Coeff(L1,delta,i),i = 0..1)[1];transpose_A1:= LinearAlgebra: −Transpose(A1);NS_A1:= LinearAlgebra: −NullSpace(transpose_A1);Id_partA1:=LinearAlgebra: −Transpose(Matrix(‘‘[LinearAlgebra: −Transpose](‘‘[convert]([seq(Id[i], i = 1 .. m-nops(NS_A1))], Matrix))));NS_partA1 := LinearAlgebra: −Transpose(Matrix(‘‘[convert]([seq(NS_A1[i], i = 1 .. Nops(NS_A1))], Matrix)));S2 := convert(linalg: −blockmatrix(2,1,[Id_partA1,NS_partA1]),Matrix);L2na := ‘‘[simplify](S2.L1);L2 := ArrangeZeroLines(L2na);A2 := seq(MatrixPolynomialAlgebra: −Coeff(L2,delta,i),i = 0..1)[2];B2 := seq(MatrixPolynomialAlgebra: −Coeff(L2,delta,i),i = 0..1)[1];NS_B2 := ‘‘[simplify](LinearAlgebra: −NullSpace(B2));Id_partB2 := Matrix(‘‘[LinearAlgebra: −Transpose](‘‘[convert]([seq(Id[i],i = nops(NS_B2)+1..n)],Matrix)));NS_partB2 := Matrix(‘‘[convert]([seq(NS_B2[i], i = 1..nops(NS_B2))], Matrix));T2 := LinearAlgebra: −IdentityMatrix(n);L3na := ‘‘[simplify](L2.T2);L3 := ArrangeZeroLines(L3na);A3 := seq(MatrixPolynomialAlgebra: −Coeff(L3,delta,i),i = 0..1)[2];B3 := seq(MatrixPolynomialAlgebra: −Coeff(L3,delta,i),i = 0..1)[1];S := ‘‘[simplify](S2.S1);T := ‘‘[simplify](T1.T2);return S, T, L3end proc:

3.3. Sample Computations

Example 4. Consider the following matrix differential operator as given in Example 2:where and . Using Maple implementation, with DAEs_Reduction in the proposed algorithm, we have the following:>A := Matrix([[1, x + 1, 0, 1], [0, −x, 1, 0], [1, 1, 1, 1], [−1, −2x − 1, 1, −1]]).>B := Matrix([[0, 0, 1, 1], [1, 0, 0, −1], [1, 0, 1, 0], [1, 0,−1, −2]]).>S, T, Lred := DAEs_Reduction(A, B).From Maple implementation, we have that two unimodular matrices differential operators areand the reduced matrix differential operator of the given DAS (37) isOne can also verify in Maple that as follows:>L := Matrix([[delta, delta(1 + x), 1, delta + 1],[1, −deltax, delta, −1], [delta + 1, delta, delta + 1, delta],[−delta + 1, −delta(1 + 2x), delta − 1, −delta − 2]]);>simplify(S.L.T);

4. Conclusion

In this paper, we discussed a new reduction algorithm to solve a given system of linear differential-algebraic equations with power series coefficients. With the proposed algorithm, one can transform the given matrix differential operator into another simple equivalent matrix differential operator using the elementary algebraic techniques. Certain examples are presented to illustrate the algorithm. The implemented Maple package is discussed and sample computations are presented.

Data Availability

The datasets generated and analyzed during the current study are included within the article.

Additional Points

In this paper, the authors presented a new reduction algorithm to solve a system of linear DAEs with power series coefficients. In this algorithm, they transform the given matrix differential operator to simple equivalent matrix differential operator using the elementary algebraic techniques. Several examples are presented to illustrate the algorithm and also the Maple package is discussed with sample computations.

Conflicts of Interest

The authors declare that they have no conflicts of interest.