1 Introduction

In this paper, we consider the following strongly coupled system of singularly perturbed convection-diffusion Robin boundary conditions problems:

$$ \textstyle\begin{cases} \mathcal{L}_{1}\overrightarrow{u}(x):=\varepsilon _{1}u_{1}''(x)+(a_{11}(x)u_{1}(x))'+(a_{12}(x)u_{2}(x))'=f_{1}(x), \quad x \in (0,1), \\ \mathcal{L}_{2}\overrightarrow{u}(x):=\varepsilon _{2}u_{2}''(x)+(a_{21}(x)u_{1}(x))'+(a_{22}(x)u_{2}(x))'=f_{2}(x), \quad x \in (0,1), \\ u_{1}(0)+\varepsilon _{1} \beta _{1} u'_{1}(0)=s_{11}, \qquad u_{1}(1)+ \varepsilon _{1} \gamma _{1} u'_{1}(1)=s_{21}, \\ u_{2}(0)+\varepsilon _{2} \beta _{2} u'_{2}(0)=s_{12}, \qquad u_{2}(1)+ \varepsilon _{2} \gamma _{2} u'_{2}(1)=s_{22}, \end{cases} $$
(1.1)

where \(\overrightarrow{u}(x)=(u_{1}(x),u_{2}(x))^{T}\), \(0\leq \varepsilon _{1},\varepsilon _{2}\ll 1\), are the perturbation parameters, \(\beta _{1}\), \(\beta _{2}\), \(\gamma _{1}\), \(\gamma _{2}\), \(s_{ij}\ (i,j=1,2)\) are given constants. For each \(i,j=1,2\) and \(x\in [0,1]\), \(a_{ij}(x)\) are sufficiently smooth functions, and there exist constants \(\alpha _{i}\ (i=1,2)\) and C such that

$$\begin{aligned} &a_{ii}(x)\geq \alpha _{i}>0,\qquad a_{ij}(x)< 0,\quad i\neq j, \end{aligned}$$
(1.2)
$$\begin{aligned} &a_{ii}(x)\geq \bigl\vert a_{ij}(x) \bigr\vert \quad\text{for } x\in [0,1], i\neq j, \end{aligned}$$
(1.3)
$$\begin{aligned} & \bigl\vert f_{k}^{j}(x) \bigr\vert \leq C \biggl(1+ \varepsilon _{1}^{k-1-j} \exp \biggl(-\frac{\alpha x}{\varepsilon _{1}} \biggr)+ \varepsilon _{2}^{2-k-j} \exp \biggl(-\frac{\alpha x}{\varepsilon _{2}} \biggr) \biggr), \end{aligned}$$
(1.4)

where \(\alpha =\min \{ \alpha _{1},\alpha _{2} \} \), \(k=1,2\). Under these conditions, there exists a unique solution \(\overrightarrow{u}(t)\) of problem (1.1). Such type of problems appear in optimal control problems and in certain resistor-capacitor circuits (see [1]).

It is well known that many numerical methods have been developed for the solution of singularly perturbed problems (see [24] for example). To capture the singularly perturbed nature of these problems, one effective approach is based on the use of meshes that are designed to be very fine where sharp layer appears in the solution. Such meshes contain two classes: special meshes (e.g., Shishkin meshes) that are chosen by a priori information and adaptive meshes that are generated by a grid iterative algorithm. Over the past few decades, the special mesh approach [510] was used to solve some system of singularly perturbed problems. The authors in [11, 12] proposed adaptive grid methods to solve the system of singularly perturbed convection-diffusion problems with Dirichlet boundary conditions. As far as we know, the adaptive grid methods for the system of singularly perturbed convection-diffusion Robin boundary problems are not found in the literature.

In this paper, we propose an adaptive grid method to solve the above problem (1.1). An upwind finite difference scheme is developed to approximate the system of first-order singularly perturbed differential equations transformed from problem (1.1). Then, an a posteriori error estimate for the presented finite difference scheme is derived, which is used to design an adaptive grid algorithm(see [13]). In addition, in order to establish the approximation values of \(u'_{1}(0)\) and \(u'_{2}(0)\), we design a nonlinear optimization problem, which is solved by the Nelder–Mead simplex method [14]. Finally, linear and nonlinear numerical examples are used to verify the effectiveness and practicability of the proposed adaptive grid method.

Notations. Throughout this paper, let C be a generic positive constant that is independent of all perturbation parameters \(\varepsilon _{i}\) (\(i=1,2\)) and mesh parameter N. It may take different values in different place. Besides, in our estimates, we use the \(L_{\infty }\) norm defined by

$$\begin{aligned} \bigl\Vert v(x) \bigr\Vert _{\infty }=\operatorname{ess} \sup _{x\in [0,1)} \bigl\vert v(x) \bigr\vert . \end{aligned}$$

For vector-valued functions \(\mathbf{v}= (v_{1}(x),v_{2}(x) )^{T}\), let \(|\mathbf{v}|= (|v_{1}(x)|,|v_{2}(x)| )^{T}\) and \(\|\mathbf{v}\|_{\infty }=\max \{ \|v_{1}\|_{\infty },\|v_{2}\|_{ \infty } \} \). For a real-valued mesh function \(\varphi:= \{ \varphi (x_{i}) \} _{i=0}^{N}\), define the discrete maximum norm for such functions by \(\|\varphi \|_{\infty }=\max_{i=0,1,\ldots,N}|\varphi (x_{i})|\). For vector mesh functions \(\mathbf{V}:= \{ (V_{1}(x_{i}),V_{2}(x_{i}))^{T} \} _{i=0}^{N}\), we set \(\|\mathbf{V}\|_{\infty }=\max \{ \|V_{1}\|_{\infty }, \|V_{2}\|_{ \infty } \} \).

2 Reformulation of the boundary value problem

Our numerical method for solving (1.1) is based on reformulating it as a system of first-order singularly perturbed differential equations, for which we will design an adaptive grid method.

Now, we integrate the two sides of the first two equations of problem (1.1) from 0 to x and write it into the following matrix form:

$$ \textstyle\begin{cases} \mathcal{L}\overrightarrow{u}(x):=E\overrightarrow{u}'(x) +A(x) \overrightarrow{u}(x)=\overrightarrow{F}(x)+E\overrightarrow{u}'(0)+A(0) \overrightarrow{u}(0),\\ \quad x\in \Omega =(0,1), \\ \overrightarrow{u}(0)=\overrightarrow{\eta },\qquad \overrightarrow{u}'(0)= \overrightarrow{\theta }, \end{cases} $$
(2.1)

where \(\overrightarrow{u}(x)=(u_{1}(x),u_{2}(x))^{T}\), \(E=\operatorname{diag}(\varepsilon _{1},\varepsilon _{2})\), \(\overrightarrow{F}(x)=\int _{0}^{x}\overrightarrow{f}(t)\,\mathrm{d}t\), \(\overrightarrow{f}(t)= (f_{1}(t),f_{2}(t) )^{T}\), \(\overrightarrow{\eta }=(\eta _{1}, \eta _{2})^{T}\), \(\overrightarrow{\theta }=(\theta _{1},\theta _{2})^{T}\), and

$$ A(x)= \begin{pmatrix} a_{11}(x), a_{12}(x) \\ a_{21}(x), a_{22}(x) \end{pmatrix}. $$

Then, from the Robin boundary conditions of problem (1.1), we have

$$\begin{aligned} \overrightarrow{\eta }+E\beta \overrightarrow{\theta }= \overrightarrow{s}_{1}, \end{aligned}$$

where β= ( β 1 0 0 β 2 ) , s 1 = ( s 11 , s 12 ) T . It should be pointed out that the constant vector \(\overrightarrow{\eta }\) is an initial condition which will be adjusted so that the solution satisfies the right Robin boundary condition of problem (1.1). In recent years, the numerical methods of this type of equations were discussed in [15, 16]. Our numerical method for solving (1.1) is based on discretizing (2.1). That is, we solve our original Robin boundary problems by applying the adaptive grid approach to solve problem (2.1). This numerical method is cheap: a direct method to settle (1.1) would entail solving a linear system of equations with \(2N+2\) unknowns, but when using (2.1) instead, we only solve N second-order linear systems.

For the later analysis of our numerical method, further information about the structure of the continuous solution \(\overrightarrow{u}(x)\) of (2.1) is needed. We shall mainly consider the following stability result for problem (2.1).

Lemma 2.1

(Stability result)

The solution \(\overrightarrow{u}(x)\) of the initial value problem (2.1) satisfies the following inequality:

$$\begin{aligned} \bigl\Vert \overrightarrow{u}(x) \bigr\Vert _{\infty }\leq C\max \bigl\{ \vert \overrightarrow{\eta } \vert , \bigl\Vert \mathcal{L} \overrightarrow{u}(x) \bigr\Vert _{\infty } \bigr\} ,\quad \forall x\in (0,1). \end{aligned}$$
(2.2)

Proof

The proof can be seen in Theorem 2.4 of [15]. □

Corollary 2.1

For two given function vectors \(\overrightarrow{v}(x)\) and \(\overrightarrow{w}(x)\), let

$$ \overrightarrow{v}(0)=\overrightarrow{w}(0) $$

and

$$\begin{aligned} \mathcal{L}\overrightarrow{v}(x)-\mathcal{L}\overrightarrow{w}(x)= \overrightarrow{G}(x), \end{aligned}$$
(2.3)

where \(\overrightarrow{G}(x)\) is a piecewise continuous function vector. Then we have

$$\begin{aligned} \bigl\Vert \overrightarrow{v}(x)-\overrightarrow{w}(x) \bigr\Vert _{\infty } \leq C \bigl\Vert \mathcal{L}\overrightarrow{v}(x)-\mathcal{L} \overrightarrow{w}(x) \bigr\Vert _{\infty }. \end{aligned}$$
(2.4)

3 Discretization and nonuniform mesh

3.1 Finite difference discretization

Let \(\bar{\Omega }_{N}=\{x_{i}|0=x_{0}< x_{1}<\cdots <x_{N}=1\}\) be an arbitrary nonuniform mesh and \(h_{i}=x_{i}-x_{i-1}, i=1,\ldots,N\), be the local mesh size. Then the finite difference scheme of (2.1) can be constructed as follows:

$$\begin{aligned} \begin{aligned} &\mathcal{L}^{N} \overrightarrow{U}_{i}:=E D^{-} \overrightarrow{U}_{i}+A_{i} \overrightarrow{U}_{i}=\sum_{j=1}^{i} \int _{x_{j-1}}^{x_{j}}\overrightarrow{f}(x_{j})\,{ \mathrm{ d}t}+E \overrightarrow{\theta }+A(0)\overrightarrow{\eta },\quad 1\leq i \leq N, \\ &\overrightarrow{U}_{0}=\overrightarrow{u}(0)=\overrightarrow{\eta }, \end{aligned} \end{aligned}$$
(3.1)

where \(D^{-}\overrightarrow{U}_{i}= \frac{\overrightarrow{U}_{i}-\overrightarrow{U}_{i-1}}{h_{i}}\), \(A_{i}=A(x_{i})\), and \(\overrightarrow{U}_{i}=(U_{1i},U_{2i})^{T}\) is the approximation solution of \(\overrightarrow{u}(x_{i})\). Here, we use \(\sum_{j=1}^{i}\int _{x_{j-1}}^{x_{j}}\overrightarrow{f}(x_{j})\,\mathrm{ d}t\) to approximate the integral term \(\int _{0}^{x_{i}}\overrightarrow{f}(t)\,{\mathrm{ d}t}\).

Next, we give the stability property for the discrete scheme (3.1). The discrete maximum principle implies the following discrete stability result.

Theorem 3.1

Let \(\{ \overrightarrow{U}_{i} \} _{i=0}^{N}\) be the solution of difference scheme (3.1) computed on an arbitrary mesh \(\{ x_{i} \} _{i=0}^{N}\). Then we have

$$\begin{aligned} \Vert \overrightarrow{U} \Vert _{\infty }\leq C\max \bigl\{ \bigl\Vert \overrightarrow{U}(0) \bigr\Vert _{\infty }, \bigl\Vert \mathcal{L}^{N} \overrightarrow{U} \bigr\Vert _{\infty } \bigr\} ,\quad 0\leq i\leq N. \end{aligned}$$

Proof

The proof can be seen in Lemma 3.2 of [14]. □

3.2 Nonuniform mesh generation algorithm

It is well known that many researchers developed an adaptive grid method to solve the single singularly perturbed differential equation (see, e.g., [1519]). In these works, the authors used the arc-length monitor function to design a grid generation algorithm. Recently, Liu and Chen [13] proposed an adaptive grid method for a system of singularly perturbed differential equations.

In this paper, similar to [13, 17], we also choose the following monitor function:

$$\begin{aligned} \widetilde{M} \bigl(\overrightarrow{U}(x),x \bigr) =\sqrt{1+\max _{x\in (0,1]} \bigl\{ \bigl[\widetilde{U}'_{1}(x) \bigr]^{2}, \bigl[\widetilde{U}'_{2}(x) \bigr]^{2} \bigr\} }, \end{aligned}$$

where \(\widetilde{U}_{j}(x)\in C(0,1]\) is a piecewise linear interpolation function through the knots \((x_{i},U_{j,i} )\), \(j=1,2\), \(i=0,1,\ldots,N\). Thus, the key technologies of the adaptive mesh method is to find \((x_{i},U_{j,i} )\) such that

$$\begin{aligned} \int _{x_{i}}^{x_{i+1}}\widetilde{M} \bigl( \overrightarrow{U}(x),x \bigr)\,\mathrm{ d}x=\frac{1}{N} \int _{0}^{1} \widetilde{M} \bigl( \overrightarrow{U}(x),x \bigr)\,\mathrm{ d}x, \end{aligned}$$
(3.2)

where \(j=1,2, i=0,1,\ldots,N-1\).

Here, in order to solve the above equidistribution problem (3.2), we construct the following grid iteration algorithm [17].

Step 1. Let \(k=0\), choose \(\bar{\Omega }_{N}^{(k)}= \{ x_{i}|x_{i}=i/N,i=0,1,\ldots,N \} \) as an initial mesh.

Step 2. For given k, assume that the mesh \(\bar{\Omega }_{N}^{(k)}= \{ x_{0}^{(k)},x_{1}^{(k)},\ldots,x_{N}^{(k)} \} \) and the corresponding computational solutions \(\{ U_{j,i}^{(k)} \} \) satisfy (3.2). Let \(h_{i}^{(k)}=x_{i}^{(k)}-x_{i-1}^{(k)}\) for each i and

$$\begin{aligned} l_{i}^{(k)}=\sqrt{ \bigl(h_{i}^{(k)} \bigr)^{2}+\max_{1 \leq j\leq 2} \bigl[ \bigl(U_{j,i}^{(k)}-U_{j,i-1}^{(k)} \bigr)^{2} \bigr]} \end{aligned}$$

be the maximum arc-length between the points \((x_{i-1}^{(k)},U_{j,i-1}^{(k)} )\) and \((x_{i}^{(k)},U_{j,i}^{(k)} )\) in the piecewise linear computed solutions \(\widetilde{U}_{j}^{(k)}(x)\), where \(j=1,2\). Then

$$\begin{aligned} L^{(k)}=\sum_{i=1}^{N}\sqrt { \bigl(h_{i}^{(k)} \bigr)^{2} +\max _{1\leq j\leq 2 } \bigl[ \bigl(U_{j,i}^{(k)}-U_{j,i-1}^{(k)} \bigr)^{2} \bigr]}. \end{aligned}$$

Step 3. Choose a user-chosen constant \(C_{0}>1\). If \(C_{0}\) satisfies the following stopping criterion:

$$\begin{aligned} \frac{\max_{1\leq i\leq N} \{ l_{i}^{(k)} \} }{L^{(k)}}\leq \frac{C_{0}}{N}, \end{aligned}$$
(3.3)

then go to Step 5. Otherwise, continue to Step 4.

Step 4. Generate a new mesh \(\bar{\Omega }_{N}^{(k+1)}= \{ 0=x_{0}^{(k+1)}< x_{1}^{(k+1)}< \cdots <x_{N}^{(k+1)}=1 \} \) such that

$$\begin{aligned} \int _{x_{i-1}^{(k+1)}}^{x_{i}^{(k+1)}} \sqrt{1+\max _{x\in (0,1]} \bigl\{ \bigl[ \bigl(\widetilde{U}_{1}^{k}(x) \bigr)' \bigr]^{2}, \bigl[ \bigl(\widetilde{U}_{2}^{k}(x) \bigr)' \bigr]^{2} \bigr\} }\,\mathrm{ d}x=L^{(k)}/N, \end{aligned}$$
(3.4)

where \(i=1,2,\ldots,N \). \(k=k+1\), return to Step 2.

Step 5. Set \(x_{i}^{*}=x_{i}^{(k+1)}\) and \(U_{j,i}^{*}=U_{j,i}^{(k+1)}\), \(j=1,2\), \(i=0,1,\ldots,N\), then stop.

4 A posterior error analysis

Let \(\overrightarrow{U}^{N}(x)\) be a piecewise linear interpolation function vector of the solution \(\{ \overrightarrow{U}_{i} \} _{i=0}^{N}\), this yields

$$\begin{aligned} \overrightarrow{U}^{N}(x)=\overrightarrow{U}_{i}+(x-x_{i}) D^{-} \overrightarrow{U}_{i},\quad x\in (x_{i-1},x_{i}). \end{aligned}$$
(4.1)

Then, based on this interpolation function (4.1), we can derive the following a posteriori error estimate for the discrete scheme (3.1).

Theorem 4.1

Let \(\overrightarrow{u}(x)\) be the exact solution of equation (2.1), \(\overrightarrow{U}_{i}\) be the discrete solution of equation (3.1), and \(\overrightarrow{U}^{N}(x)\) be its piecewise linear interpolation function vector defined in (4.1). Then we have

$$\begin{aligned} \bigl\Vert \overrightarrow{U}^{N}(x)- \overrightarrow{u}(x) \bigr\Vert _{\infty }\leq C\max_{1\leq i\leq N} \Bigl\{ h_{i}+h_{i}\max_{1\leq j\leq 2} \bigl\vert D^{-}{U}_{ji} \bigr\vert \Bigr\} . \end{aligned}$$
(4.2)

Proof

By the definition of the differential operator \(\mathcal{L}\), we have

$$\begin{aligned} \begin{aligned} \mathcal{L}\overrightarrow{U}^{N}(x)- \mathcal{L}\overrightarrow{u}(x)={}&ED^{-} \overrightarrow{U}_{i}+A(x) \overrightarrow{U}^{N}(x)- \biggl( \int _{0}^{x} \overrightarrow{f}(t)\,{\mathrm{ d}t}+E\overrightarrow{\theta }+A(0) \overrightarrow{\eta } \biggr) \\ ={}&\sum_{j=1}^{i} \int _{x_{j-1}}^{x_{j}}\overrightarrow{f}(x_{j})\, \mathrm{ d}t-A_{i}\overrightarrow{U}_{i}+A(x) \overrightarrow{U}^{N}(x)- \int _{0}^{x}\overrightarrow{f}(t)\,{\mathrm{ d}t} \\ ={}&\sum_{j=1}^{i} \int _{x_{j-1}}^{x_{j}}\overrightarrow{f}(x_{j})\, \mathrm{ d}t - \int _{0}^{x_{i}}\overrightarrow{f}(t)\,{\mathrm{ d}t}+ \int _{x}^{x_{i}} \overrightarrow{f}(t)\,{\mathrm{ d}t} \\ &{}+A(x)\overrightarrow{U}^{N}(x)-A_{i}\overrightarrow{U}_{i} \\ ={}&\overrightarrow{p}+\overrightarrow{q}+\overrightarrow{r}, \end{aligned} \end{aligned}$$
(4.3)

where

$$\begin{aligned} &\overrightarrow{p}=\sum_{j=1}^{i} \int _{x_{j-1}}^{x_{j}} \bigl(\overrightarrow{f}(x_{j})- \overrightarrow{f}(t) \bigr)\,{\mathrm{ d}t}, \\ &\overrightarrow{q}= \int _{x}^{x_{i}}\overrightarrow{f}(t)\,{\mathrm{ d}t}, \\ &\overrightarrow{r}=A(x)\overrightarrow{U}^{N}(x)-A_{i} \overrightarrow{U}_{i}. \end{aligned}$$

For the first term of (4.3), we have

$$\begin{aligned} \begin{aligned} \vert \overrightarrow{p} \vert &\leq \sum _{j=1}^{i} \biggl\vert \int _{x_{j-1}}^{x_{j}}\overrightarrow{f}(x_{j})- \overrightarrow{f}(t)\,{\mathrm{ d}t} \biggr\vert \\ &\leq \sum_{j=1}^{i} \int _{x_{j-1}}^{x_{j}} \bigl\vert \overrightarrow{f}'(t) \bigr\vert (t-x_{j-1})\,{\mathrm{ d}t} \\ &\leq \sum_{j=1}^{i} h_{j} \int _{x_{j-1}}^{x_{j}} \bigl\vert \overrightarrow{f}'(t) \bigr\vert \,{\mathrm{ d}t} \\ &\leq C\max_{1\leq i\leq N} h_{i} \begin{pmatrix} \int _{0}^{1} \vert f_{1}'(t) \vert \,{\mathrm{ d}t} \\ \int _{0}^{1} \vert f_{2}'(t) \vert \,{\mathrm{ d}t} \end{pmatrix} \\ &\leq C\max_{1\leq i\leq N} h_{i} \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \end{aligned} \end{aligned}$$
(4.4)

where condition (1.4) is used.

Obviously, the second term of (4.3) satisfies the following estimation:

$$\begin{aligned} \vert \overrightarrow{q} \vert \leq Ch_{i} \begin{pmatrix} 1 \\ 1 \end{pmatrix}. \end{aligned}$$
(4.5)

For the third term of (4.3), we have

$$\begin{aligned} \begin{aligned} \vert \overrightarrow{r} \vert &= \bigl\vert A(x)\overrightarrow{U}^{N}(x)-A_{i} \overrightarrow{U}_{i} \bigr\vert \\ &= \bigl\vert A(x) \bigl(\overrightarrow{U}_{i}+D^{-} \overrightarrow{U}_{i}(x-x_{i}) \bigr)-A_{i} \overrightarrow{U}_{i} \bigr\vert \\ &= \bigl\vert \bigl(A(x)-A_{i} \bigr)\overrightarrow{U}_{i}+A(x)D^{-} \overrightarrow{U}_{i}(x-x_{i}) \bigr\vert \\ &\leq \bigl\vert A(x)-A_{i} \bigr\vert \vert \overrightarrow{U}_{i} \vert + \bigl\vert A(x) \bigr\vert \bigl\vert D^{-}\overrightarrow{U}_{i} \bigr\vert h_{i} \\ &\leq Ch_{i} \begin{pmatrix} 1 \\ 1 \end{pmatrix}+ Ch_{i} \begin{pmatrix} 1 &1 \\ 1& 1 \end{pmatrix} \begin{pmatrix} \vert D^{-}U_{1i} \vert \\ \vert D^{-}U_{2i} \vert \end{pmatrix}, \end{aligned} \end{aligned}$$
(4.6)

where we have used the assumptions of \(a_{ij}(x)\) and Theorem 3.1.

Combined with (4.3)–(4.6) and Corollary 2.1, we can obtain

$$\begin{aligned} \bigl\Vert \overrightarrow{U}^{N}(x)-\overrightarrow{u}(x) \bigr\Vert _{\infty }\leq C \max_{1\leq i\leq N} \Bigl\{ h_{i}+h_{i}\max_{1\leq j \leq 2} \bigl\vert D^{-}U_{ji} \bigr\vert \Bigr\} . \end{aligned}$$
(4.7)

 □

5 Numerical results and discussion

In Sect. 5.1, we first design a numerical method to obtain the parameter vector \(\overrightarrow{\theta }\) defined in (3.1). Then, numerical experiments are presented in Sect. 5.2 to demonstrate the validity and efficiency of the presented adaptive grid method. In the numerical experiments below, we shall take \(C_{0}=1.1\).

For comparison purpose, the presented finite difference scheme (3.1) is also studied on a piecewise-uniform Shishkin mesh, which is constructed as follows [20]: Let N be divisible by 3 and \(\lambda >0\) be a mesh parameter. Fixed mesh transition points \(\sigma _{1}\) and \(\sigma _{2}\) are as follows:

$$\begin{aligned} \sigma _{2}=\min \biggl\{ \frac{2}{3},\frac{\varepsilon _{2}}{\lambda } \ln N \biggr\} , \qquad\sigma _{1}=\min \biggl\{ \frac{\sigma _{2}}{2}, \frac{\varepsilon _{1}}{\lambda }\ln N \biggr\} . \end{aligned}$$

Then the mesh is obtained by dividing each of the intervals \([0,\sigma _{1}]\), \([\sigma _{1},\sigma _{2}]\), and \([\sigma _{2},1]\) into \(N/3\) equal subintervals.

5.1 A calculating method of initial values

At first, from the first Robin boundary conditions of problem (1.1), we have

$$\begin{aligned} \overrightarrow{\eta }=-E\beta \overrightarrow{\theta }+ \overrightarrow{s}_{1}. \end{aligned}$$
(5.1)

Then, for given \(\overrightarrow{\theta }\), combining with (5.1), we can use the presented adaptive grid method to calculate the numerical solution \(\overrightarrow{U}_{i}\) of (2.1). Obviously, the numerical solution \(\overrightarrow{U}_{i}\) depends on the value of \(\overrightarrow{\theta }\). Finally, in order to obtain the approximation value of \(\overrightarrow{\theta }\), we construct the following optimization problem:

$$\begin{aligned} \min Z (\overrightarrow{\theta } )= {}&\biggl\Vert \biggl( \overrightarrow{U}_{0}+E \beta \frac{\overrightarrow{U}_{1}-\overrightarrow{U}_{0}}{h_{1}}- \overrightarrow{s}_{1} \biggr)^{2} \\ &{}+ \biggl(\overrightarrow{U}_{N}+E \gamma \frac{\overrightarrow{U}_{N}-\overrightarrow{U}_{N-1}}{h_{N}}- \overrightarrow{s}_{2} \biggr)^{2} \biggr\Vert , \end{aligned}$$
(5.2)

where γ= ( γ 1 0 0 γ 2 ) , s 2 = ( s 21 , s 22 ) T .

Since the above objective function \(Z (\overrightarrow{\theta } )\) is an implicit function above variable \(\overrightarrow{\theta }\), we choose the Nelder–Mead simplex method [14] to solve the above nonlinear optimization problem (5.2).

5.2 Example 1: a linear problem

In this section, we give a linear test problem to illustrate the theoretical result of the presented adaptive grid method

$$\begin{aligned} &\varepsilon _{1}u''_{1}(x)+ \bigl((2x+1)u_{1}(x) \bigr)'- \bigl(x^{2}u_{2}(x) \bigr)'=f_{1}(x),\quad x\in (0,1), \end{aligned}$$
(5.3)
$$\begin{aligned} &\varepsilon _{2}u''_{2}(x)- \bigl(x^{2}u_{1}(x) \bigr)'+ \bigl(u_{2}(x) \bigr)'=f_{2}(x),\quad x \in (0,1) \end{aligned}$$
(5.4)

with Robin boundary conditions

$$\begin{aligned} &u_{1}(0)+\varepsilon _{1}u'_{1}(0)=1,\qquad u_{1}(1)+\varepsilon _{1} u'_{1}(1)=2+2 \varepsilon _{1}, \\ &u_{2}(0)+\varepsilon _{2}u'_{2}(0)=2,\qquad u_{2}(1)+\varepsilon _{2} u'_{2}(1)=4+3 \varepsilon _{2}-\varepsilon _{2} \cos 1-\sin 1. \end{aligned}$$

Here, we choose \(f_{1}(x)\) and \(f_{2}(x)\) to agree with the following exact solutions:

$$\begin{aligned} &u_{1}(x)=1-\exp (-x/\varepsilon _{1})+x^{2}, \\ &u_{2}(x)=2-2\exp (-x/\varepsilon _{2})+x(1+x)-\sin x. \end{aligned}$$

Recalling that \(\overrightarrow{U}_{i}^{N}\) is the solution of the discrete scheme (3.1), we calculate the errors

$$\begin{aligned} E_{\varepsilon _{1},\varepsilon _{2}}^{N}:=\max_{0\leq i \leq N} \bigl\Vert \overrightarrow{u}(x_{i})-\overrightarrow{U}_{i}^{N} \bigr\Vert _{\infty }, \end{aligned}$$
(5.5)

where \(x_{i}\) are the points in the final mesh generated by the above iteration algorithm. Rates of convergence are calculated by

$$\begin{aligned} r_{\varepsilon _{1},\varepsilon _{2}}^{N}=\log _{2} \biggl( \frac{E_{\varepsilon _{1},\varepsilon _{2}}^{N}}{E_{\varepsilon _{1},\varepsilon _{2}}^{2N}} \biggr). \end{aligned}$$
(5.6)

For different values of \(\varepsilon _{i}\ (i=1,2)\) and N, we use the Nelder–Mead simplex method to calculate the above nonlinear optimization problem (5.2) with \((2,2)^{T}\) as the initial value of \(\overrightarrow{\theta }\). Next, for \(\varepsilon _{1}=2^{-9}\), \(\varepsilon _{2}=2^{-2k}\) and \(\varepsilon _{2}=2^{-9}\), \(\varepsilon _{1}=2^{-2k}\), where \(k=0,1,\ldots,10\), we use the presented adaptive grid method to calculate the test problem with \(N=32,64,128,256,512,1024\), and the errors in the maximum norm, the rates of convergence, and the number of iterations K are given in Tables 12. Besides, to illustrate the advantages of the adaptive grid method, we also compare the numerical results computed on an adaptive grid to those obtained on a Shishkin mesh, see Table 3. It is shown from these results that the convergence order of the presented adaptive grid method is first order and the accuracy of adaptive grid method is higher than that of Shishkin mesh method.

Table 1 Numerical results with \(\varepsilon _{1}=2^{-9}\) for Example 1
Table 2 Numerical results with \(\varepsilon _{2}=2^{-9}\) for Example 1
Table 3 Comparison of numerical results with Shishkin mesh for Example 1

For \(\varepsilon _{1}=10^{-6}\), \(\varepsilon _{2}=10^{-8}\), and \(N=64\), Fig. 1 shows the changing process of mesh movement with the number of iterations K. The right-hand part of this figure is labeled with the value of \(C_{0}\) for which the stopping criterion (3.3) becomes an equation. It is shown from Fig. 1 that the solution of Example 1 has a boundary layer at \(x=0\).

Figure 1
figure 1

Mesh movement with \(\varepsilon _{1}=10^{-6}\), \(\varepsilon _{2}=10^{-8}\), and \(N=64\) for Example 1

5.3 A nonlinear problem

To demonstrate that our presented adaptive grid method can be successfully applied in a nonlinear setting, consider the following system of quasi-linear convection-diffusion equations:

$$\begin{aligned} &\varepsilon _{1} u''_{1}(x)+ \bigl(b_{1} \bigl(x,u_{1}(x),u_{2}(x) \bigr) \bigr)'=f_{1}(x), \end{aligned}$$
(5.7)
$$\begin{aligned} &\varepsilon _{2} u''_{2}(x)+ \bigl(b_{2} \bigl(x,u_{1}(x),u_{2}(x) \bigr) \bigr)'=f_{2}(x) \end{aligned}$$
(5.8)

with Robin boundary conditions

$$\begin{aligned} &u_{1}(0)+\varepsilon _{1} \beta _{1} u'_{1}(0)=s_{11}, \qquad u_{1}(1)+ \varepsilon _{1} \gamma _{1} u'_{1}(1)=s_{21}, \end{aligned}$$
(5.9)
$$\begin{aligned} &u_{2}(0)+\varepsilon _{2} \beta _{2} u'_{2}(0)=s_{12},\qquad u_{2}(1)+ \varepsilon _{2} \gamma _{2} u'_{2}(1)=s_{22}. \end{aligned}$$
(5.10)

As far as we know, the layer-adapted meshes and adaptive grid approaches for a single singularly perturbed quasi-linear two-point boundary value problem have attracted much attention; see [19, 21] and the references therein. However, the adaptive grid method for the system of quasi-linear convection-diffusion equations (5.7)–(5.10) is not found in the literature to the best of our knowledge. Thus, in this paper, we will also use the presented adaptive grid method to solve the following test problem:

$$ \textstyle\begin{cases} \varepsilon _{1}u_{1}''(x)+ (3u_{1}(x)-\frac{1}{4}e^{-u_{1}^{2}(x)}-u_{2}(x) )'=2x,\quad x\in (0,1), \\ \varepsilon _{2}u_{2}''(x)+ (4u_{2}(x)-\cos (u_{2}(x))-u_{1}(x) )'=\exp (x),\quad x\in (0,1), \\ u_{1}(0)+\varepsilon _{1} u'_{1}(0)=-\frac{3}{4}, \qquad u_{1}(1)+ \varepsilon _{1} u'_{1}(1)=\frac{1}{4}, \\ u_{2}(0)+\varepsilon _{2} u'_{2}(0)=2,\qquad u_{2}(1)+\varepsilon _{2} u'_{2}(1)=e+1. \end{cases} $$

The exact solution is unknown, so we take \(\bar{U}_{j}^{2048}(x)\) as our reference solution, which is the piecewise linear interpolation function through points \((x_{i},U_{ji}^{4096} ),i=0,1,\ldots,N\). Then the error in each computed solution can be given as follows:

$$\begin{aligned} E_{\varepsilon _{1},\varepsilon _{2}}^{N}=\max_{0\leq i\leq N} \max _{1\leq j\leq 2} \bigl\vert \bar{U}^{2048}_{j}(x_{i})-U^{N}_{j,i} \bigr\vert . \end{aligned}$$

Here, we also use (5.6) to calculate the rates of convergence.

Let \((-1,1)^{T}\) be the initial value of \(\overrightarrow{\theta }\). Then we utilize the Nelder–Mead simplex algorithm to solve the optimization problem (5.2) for \(\varepsilon _{1}\), \(\varepsilon _{2}\), and N. For \(\varepsilon _{1}=10^{-4}\), \(\varepsilon _{2}=10^{-2k}(k=1,\ldots,5)\), and \(N=32,64,128,256,512,1024\), Table 4 lists the errors and rates of convergence for the numerical solutions of this nonlinear test problem. One can see that the presented adaptive grid method is quite successful: for large N, the errors are robust with respect to \(\varepsilon _{i}\ (i=1,2)\) and the convergence rates are close to one. In addition, the evolution process of the mesh by the above iteration algorithm is given in Fig. 2 for the case \(\varepsilon _{1}=10^{-4}\), \(\varepsilon _{2}=10^{-3}\), and \(N=64\), which shows that this nonlinear test problem also has a boundary layer at \(x=0\).

Figure 2
figure 2

Mesh movement with \(\varepsilon _{1}=10^{-4}\), \(\varepsilon _{2}=10^{-3}\), and \(N=64\) for Example 2

Table 4 Numerical results with \(\varepsilon _{1}=10^{-4}\) for Example 2

6 Conclusion

It was shown that a system of singularly perturbed convection-diffusion equations with Robin boundary conditions could be reformulated in terms of a first-order system of singularly perturbed initial value problems. It also led to the development of an efficient adaptive grid method for solving the original problem.

Our numerical experiment has shown that the presented method can achieve first-order convergence. It should be pointed out that the ideas presented in this paper can be used to deal with the other high-order singularly perturbed differential equations with Robin boundary conditions.